Topic
- 什么是线性回归?原理及实现
- 什么是最小二乘法?
- 最小二乘法代数求解
- 最小二乘法矩阵求解
本篇是理论篇,实战篇:线性回归实战
一、线性回归
先来回想下: 回归
回归 面对的一群连续值,从这群连续的点钟找出误差最小的线,从而来预估其他点
![]()
通过找到一条直线去拟合数据点的分布趋势的过程,就是线性回归的过程
然而这种线可能会有很多,那么如何从中找出最合适的线呢?
找到红线?
二、最小二乘法代数求解
最小二乘法是用于求解线性回归拟合参数 w 的一种常用方法,(均方误差最小)
先来理解下 平方损失函数
y(x,w)=b+wx y ( x , w ) = b + w x
对数据进行拟合时,得到拟合的整体误差(即蓝色线段的长度总和)
![]()
平方损失函数
如果一个数据点为( xi,yi x i , y i ),那么它对应的误差(损失)为:
yi−(b+wxi) y i − ( b + w x i )那么损失总和:
∑i=1n(yi−(b+wxi)) ∑ i = 1 n ( y i − ( b + w x i ) )
更倾向于使用均方误差
作为衡量损失的指标
∑i=1n(yi−(b+wxi))2 ∑ i = 1 n ( y i − ( b + w x i ) ) 2
(1) 平方损失函数:
(2)目标求 min(f) m i n ( f ) 最小时, 对应的 w w
分别对 w
和 b
求导,一阶偏导,并令其为零
(3)求得:
均值:
(4)结果
这样,就求出了 平方损失函数最小时对应的 w
参数值,这也就是最佳拟合直线
三、 最小二乘法矩阵求解
为什么又要用矩阵来运算呢?代数计算方法不好吗?
- 并不是代数计算方式不好,只是在小数据集情况下,二者运算的效率相近
- 当面临 十万 或 百万规模的数据时,矩阵计算的效率就会高很多
(1) y=wx+b y = w x + b ,表达矩阵形式为:
即: y=XW y = X W
(2)平方损失函数 : f=∑ni=1(yi−(b+wxi))2 f = ∑ i = 1 n ( y i − ( b + w x i ) ) 2
(3)对 矩阵求偏导数
注意:
这里将 W 看做是系数变量,即 WT=W W T = W ,W是常量,固定的W转置是等价的。
(4)求得
当 矩阵 XTX X T X 满秩(先不考虑不满秩)时, (XTX)−1XTX=E ( X T X ) − 1 X T X = E , 且 EW=W E W = W
所以, (XTX)−1XTXW=(XTX)−1XTy ( X T X ) − 1 X T X W = ( X T X ) − 1 X T y
得到:
最后
看到这边是否有些疲惫,奖励自己一杯肥仔快乐水吧!!!
下一篇将介绍 线性回归实战
加油!!!