当前位置:   article > 正文

机器学习 线性回归----Sklearn & fit方法(多种梯度下降方法)_fit方法属于什么算法

fit方法属于什么算法

机器学习 线性回归

一、一元线性回归算法

1.回归的理解

大自然让我们回归到一定的区间范围之内;反过来说就是,有一个平均的水平,可以让突出的事物能向他靠拢。

回归是由达尔文(Charles Darwin)的表兄弟Francis Galton发明的。 Galton于1877年完成了第一次回归预测,目的是根据上一代豌豆种子(双亲)的尺寸来预测下一代豌豆种子(孩子)的尺寸。Galton在大量对象上应用了回归分析,甚至包括人的身高。他注意到,如果双亲的高度比平均高度高,他们的子女也倾向于比平均高度高,但尚不及双亲。孩子的高度向着平均高度回退(回归)。Galton在多项研究上都注意到这个现象,所以尽管这个英文单词跟数值预测没有任何关系,但这种研究方法仍被称作回归 。

那些高个子的后代的身高,有种回归到大众身高的趋势。 eg: 姚明身高2米26,叶莉身高1米90, 但是他们后代的身高是会逐渐回归到正常的身高水平。

2.回归应用

销售量预测
制造缺陷预测。
预测名人的离婚率。
预测所在地区的房价。

3.线性回归

线性:利用算法生成的模型是一条直线。
回归:让数据聚集到一个特定的模型中。
线性回归:如果模型是一条直线,就是让数据靠近这条直线。

(1)利用Sklearn做线性回归的预测

预测步骤如下:

  1. 导包: from sklearn.linear_model import LinearRegression
  2. 导数据:导入文件或者随机生成
  3. 建模:利用 sklearn中 LinearRegression的fit方法:
    1> 实例化一个线性回归类:lin_reg= LinearRegression()
    2> 训练模型,确定参数:lin_reg.fit(X,Y)
    3> 参数存入对象lin_reg中,可以通过lin_reg.intercept_(截距)、lin_reg.coef_(系数)查看参数。
  4. 预测:利用 sklearn中 LinearRegression的predict()方法:
    1> 准入预测数据X_predict
    2> lin_reg.predict(X_predict)

(2)例:预测一组数据中当输入为12 对应输出的值。

import numpy as np
from sklearn.linear_model import LinearRegression #在线性模型中导入线性回归
X=np.array([1,2,3,4,5,6,7,8,9,10,11]).reshape(-1,1)#x从一维转为二维
Y=np.array([3,4,5,7,9,11,13,15,17,19,21])#Y:一维
#实例化对象
lin_reg= LinearRegression()
#调用fit方法 训练模型找规律
lin_reg.fit(X,Y)
#找到规律 截距与斜率
print(lin_reg.intercept_,lin_reg.coef_)
#预测x=12对应的Y
X_new=np.array([[12]]) #创建数组
print(lin_reg.predict(X_new))


执行结果:
0.03636363636363171 [1.87272727]
[22.50909091]

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

4.线性回归拟合原理(fit方法)

  1. 拟合就是把平面上一系列的点,用一条光滑的曲线连接起来。因为这条曲线有无数种可能,从而有各种拟合方法。拟合的曲线一般可以用函数表示。
  2. 对于一元线性回归(单变量线性回归)来说,学习算法为 y = ax + b 换一种写法: hθ(x) = θ0 + θ1x1
  3. 线性回归实际上要做的事情就是: 选择合适的参数(θ0, θ1),使得hθ(x)方程,很好的拟合训练集。实现如何把最有可能的直线与我们的数据相拟合。
  4. 我们选择的参数决定了我们得到的直线相对于我们的训练集的准确程度,模型所预测的值与训练集中实际值之间的差距就是建模误差(modeling
    error)。
  5. 我们的目标便是选择出可以使得建模误差的平方和能够最小的模型参数。 即使得损失函数最小。
  6. 模型=规律=函数=函数所表示的图像

(1)损失函数

  • 判断模型最优拟合方式:损失函数
  • 损失函数含义:所有的点与模型距离平均和的公式。距离为0表示所有点都在直线上,参数为最优参数,拟合最准确。距离不为0时,要尽量找到损失函数的最小值时所对应的参数。
    在这里插入图片描述

(2)梯度下降

使得损失函数最小的方法:梯度下降法

  • 思想:
    1:随机初始化参数确定模型θ0 、θ1,得到一个损失函数值
    2:使用特殊的更新方法更新参数θ0 、θ1,使得每一次所对应的损失函数的值越来越小。
    3:直到更新参数损失函数的值变化波动不大,表示斜率到达最平稳处参数不变化进而损失函数不变化,找到损失函数最小值,此时对应的参数为最优解。
    在这里插入图片描述
    即:
    在这里插入图片描述
    在这里插入图片描述
  • 损失函数是一个凸函数,斜率变化是逐渐平缓的
    如果α太小的话,梯度下降会很慢
    如果α太大的话,梯度下降越过最小值,不仅不会收敛,而且有可能发散
  • 即使学习率α是固定不变的,梯度下降也会熟练到一个最低点
    因为随着梯度下降迭代次数的递增,斜率会趋于平缓,也就是说,导数部分
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/477549
推荐阅读
相关标签