第五次作业:5.线性回归算法

 (2)监督学习:关于回归与分类的理解。

 (3)线性回归定义:

 (4)算法矩阵、数组:

数组:0/1/2/3维数组;3维数组为RGB。

矩阵:1.必须为二维数组;2.矩阵满足了特殊的运算的要求。

 (5)为了减少误差,引入了误差函数:

 学习网站:https://blog.csdn.net/wangqianqianya/article/details/82960410?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158731140119725219920099%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=158731140119725219920099&biz_id=0&utm_source=distribute.pc_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-10

(6)统计学习算法优化:(最小二乘法)1.正规方程;2.梯度下降。

 

梯度下降优化动态图:

循环10次,loss值变化如下:w、b逐渐靠近值12、4。

循环100次,loss值变化如下:w、b越靠近值12、4。

 

 

执行代码:

import random

import time

import matplotlib.pyplot as plt

 

#新建数据

_xs = [0.1 * x for x in range(0, 10)]

_ys = [12 * i + 4 for i in _xs]

print(_xs)

print(_ys)

w = random.random()   #权重

print(w)

b = random.random()   #偏置

print(b)

# y=wx+b

a1 = []

b1 = []

for i in range(10):

    for x, y in zip(_xs, _ys):  #遍历_xs和_ys

        print("x=",x,"y=",y)

        o = w * x + b           #预测值

        print("o=")

        e = (o - y)             #误差

        print("e=",e)

        loss = e ** 2           #损失函数

        dw = 2 * e * x

        db = 2 * e * 1

        w = w - 0.1 * dw        #梯度下降w

        b = b - 0.1 * db        #梯度下降b

        print('loss={0},w={1},b={2}'.format(loss, w, b))

    a1.append(i)

    b1.append(loss)

    plt.plot(a1, b1)

    plt.pause(0.1)

plt.show()

2.思考线性回归算法可以用来做什么?

答:线性回归是连续性变量预测,可预测具体房价、天气温度等连续性变化数据,用作预测工具,更科学、更准确地预测数据。

 

posted @ 2020-04-22 14:44  zxf001  阅读(146)  评论(0编辑  收藏  举报