美文网首页
python线性回归基本实现

python线性回归基本实现

作者: hirolin | 来源:发表于2018-06-14 23:48 被阅读0次

通过这个笔记记录以下学习的过程。
在使用python实现机器学习,可以使用anaconda (清华镜像下载)去实现。
线性回归是常见的拟合算法,本文通过梯度下降实现数据拟合。

1.到入库
import numpy as np #导入数据处理模块numpy
import matplotlib.pyplot as plt #绘图模块
2. 产生随机数据
x = np.arange(-2, 2, 0.1) # -2到2按照0.1为步距
length = len(x)
y = 2*x+4+(np.random.random(length)-0.5)*3 #y=2*x+4 加上随机数
x = x.reshape(length, 1)
y = y.reshape(length, 1)
plt.figure()
plt.scatter(x, y)
plt.show()

效果图:


image.png
3.梯度下降

(这一块内容推荐看吴恩达视频分析。)
在求取线性回归的过程中,最主要步骤是使得预测值和样本值之间的差异最小,如下公式表示样本和预测值之间的差值平方。1/2参数是为了求导时与平方2约去。


image.png

对m b进行求导


image.png

记err = h(x[i]) - y[i],则得到:
m,b的导数分别时 err*x 和 err
得到导数之后,就需要使得m,b朝着使得ERROR值小的方向变化。下面结合代码分析:

m = 1 #m, b初始化 一般用随机值
b = 0
learning_rate = 0.005 #学习率
def gredient(x, y, m, b) :
    
    for i in range(0, length) :
        err = (m*x[i] + b) - y[i]
        m -= err * x[i] * learning_rate
        b -= err * learning_rate
    return [m, b]

#训练次数
times = 100
for i in range(times) :
    m, b = gredient(x, y, m, b)
    print(m, b)

#绘制最终结果
x_b = [-2,2]
y_b = [-2*m + b,2*m +b]
plt.figure()
plt.plot(x_b, y_b)
plt.scatter(x, y)
plt.show()

对样本进行遍历时,更新m,b的值,这个变化的值由导数(理解为斜率)和learning_rate(理解为斜率方向移动步长)组成。
实验结果:


image.png
image.png

相关文章

  • 线性回归--sklearn框架实现

    线性回归--原理 线性回归--python实现(不使用框架) 线性回归--sklearn框架实现 这里使用skle...

  • 线性回归--python实现(不使用框架)

    线性回归--原理 线性回归--python实现(不使用框架) 线性回归--sklearn框架实现 这里使用pyth...

  • 线性回归--原理

    线性回归--原理 线性回归--python实现(不使用框架) 线性回归--sklearn框架实现 通常我们学习机器...

  • python线性回归基本实现

    通过这个笔记记录以下学习的过程。在使用python实现机器学习,可以使用anaconda (清华镜像下载)去实现。...

  • 第一次打卡

    线性回归主要内容包括: 线性回归的基本要素线性回归模型从零开始的实现线性回归模型使用pytorch的简洁实现线性回...

  • 动手学深度学习(一) 线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 线性回归

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 第一天-线性回归,Softmax与分类模型,多层感知机

    线性回归 主要内容包括: 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用pytorch的简洁实现...

  • 「动手学深度学习」线性回归

    1. 主要内容 线性回归的基本要素 线性回归模型从零开始的实现 线性回归模型使用PyTorch的简洁实现 2. 线...

  • 线性回归模型

    参考:1.使用Python进行线性回归2.python机器学习:多元线性回归3.线性回归概念 线性回归模型是线性模...

网友评论

      本文标题:python线性回归基本实现

      本文链接:https://www.haomeiwen.com/subject/ombueftx.html