python多条直线拟合_线性回归训练数据拟合过程及

python多条直线拟合_线性回归训练数据拟合过程及
PythonLinearRegress。。。
对于机器学习来说,最简单的模型就是线性回归,线性回归往往作为机器学习的⼊门模型来学习,线性回归,顾名思义就是数据集合的分布可以⽤⼀条直线(⼆维)或者⼀个平⾯(三维)或者更多维度的线性⽅程 来进⾏划分界限的分布,举个很直观的例⼦:
图1
图2
上⾯是⼆维和三维的线性回归的界限分隔⽰意图,线性回归最典型的例⼦就是房价的问题,如上⾯图
中,图1显⽰了 房屋的⼤⼩对房价的影响,只关注⼀个变量(房屋⼤⼩)对房价的影响。
上⾯图中图2是显⽰了两个变量:房屋⼤⼩、附近学校的质量 对房价的影响。
那么怎么能得出这个划分的界限的⽅程的系数呢?计算机是怎么学习出来的?
以最简单的⼆维数据为例,如果 数据分隔的界限 是直线 y = w1 * x + w2,那么线性回归的最终⽬标是通过对已知数据集的学习来算出 直线y = w1 * x + w2的参数值 w1 和w2
拟合直线那么怎么才能算出这两个参数呢?具体学习的过程是如何的呢?
⼀、线性回归拟合数据
⾸先,计算机会随机⽣成w1 和w2,也就⽣成了⼀条直线,然后看下各个数据点与这条直线的距离,看看如何对这条直线进⾏调整使得各个点与这个直线的距离达到最优的状态,就得到了最终的模拟曲线,具体过程见下图:
拟合数据
如上图所⽰,在随机⽣成了⼀条直线后,各个点都想让直线离得更近⼀点更近⼀点,具体如何调整呢?这⾥有调整的策略及算法:
(1) 绝对值技巧
从图中看出,绝对值技巧是这样的,当⼀个点(p,q),如果想让直线 y = w1 *x +w2,离得更近⼀点,那么需要将直线变成 y =
(w1+p)x +(w2 +1 ),这个步骤循环进⾏,直到达到最优为⽌。
为了让这个调整的过程更细致,更细腻,引⼊了学习率α,⾄此公式调整为: y = (w1+pα)x +(w2 +α)
(2) 平⽅技巧
平⽅技巧的策略与绝对值技巧不同的是:当直线距离点远的时候调整的幅度就⽐较⼤,如果直线距离点的距离⽐较近的时候,调整的幅度就⽐较⼩,这是绝对值技巧所没有的特性,调整的过程如下图所⽰,调整策略的公式为:y = (w1+pα(q-y))x + w2 + α(q-y),由公式可以看出,调整参数仅仅与点(p,q)的横坐标有关系,还与纵坐标与直线上的纵坐标的差(q-y)有关系。
⼆、误差函数
下⾯来说⼀下线性回归的误差,线性回归的误差分为两种:
(1)平均绝对值误差
(2)平均平⽅误差
(3)梯度下降
下⾯来谈谈梯度下降,梯度下降更多的是⼀种思想,他体现在各个学习的模型,他的最重要的思想是使误差值沿着最快的速度下降,就是沿着导数的反⽅向,来进⾏调整参数 就得到误差快速的下降
由上⾯图中可以看出对于参数的调整
由公式可以看出,梯度下降的具体算法取决于 误差函数的公式,例如 误差函数是均⽅误差函数,y-hat 表⽰预测的值,那么对w1 和w2求导的结果如下图右侧⽅程,那么 采⽤梯度下降的思路带⼊之后 确实和之前的平⽅技巧是相同的
同样的,如下图,如果误差函数采⽤的是平均绝对值误差,那么误差函数对w1,w2 的导数如下图所⽰,带⼊梯度下降的公式后可以看出,与绝对值技巧是⼀样的
三、scikit-learn 中的线性回归
(1)最⼩⼆乘法
最后我们来说⼀下python 中 scikit-learn 中的线性回归,在scikit-learn 中的线性回归 LinearRegression 中采⽤的是最⼩⼆乘法,在最⼩⼆乘法中 误差函数是:
他的⽬标是 使得误差达到最⼩值:即 导数为0 时候,求得的参数值

本文发布于:2024-09-22 07:11:03,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/359559.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:回归   线性   误差
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议