![Python机器学习算法: 原理、实现与案例](https://wfqqreader-1252317822.image.myqcloud.com/cover/317/27563317/b_27563317.jpg)
上QQ阅读APP看书,第一时间看更新
1.2 最小二乘法
线性回归模型通常使用均方误差(MSE)作为损失函数,假设训练集有m个样本,均方误差损失函数定义为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P11_9156.jpg?sign=1739694314-Of2WUFsP4WKY1fjG72EQv0KmQpzMVHk2-0-3db9ead86c50fc716a9fae0cc0f156af)
均方误差的含义很容易理解,即所有实例预测值与实际值误差平方的均值,模型的训练目标是找到使得损失函数最小化的。式中的常数
并没有什么特殊的数学含义,仅是为了优化时求导方便。
损失函数最小值点是其极值点,可先求
对
的梯度并令其为0,再通过解方程求得。
计算的梯度:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P12_9181.jpg?sign=1739694314-Q7PcvCO431a5EC1hE24KiVrQ6KTKvi7n-0-10228937b6ac6091f3251b904310daf9)
以上公式使用矩阵运算描述形式更为简洁,设:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P12_9184.jpg?sign=1739694314-VUjmhHSeKHmPHVsPqwYzSl1SFUwZbk1H-0-804b0df1cb1fd65b3366197481bd8744)
那么,梯度计算公式可写为:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P12_9187.jpg?sign=1739694314-LSnl8e3HwwbQgQmOL5GBItUeiYDHciIz-0-3e80e609f80fc8e7fdebd28179758c39)
令梯度为0,解得:
![](https://epubservercos.yuewen.com/889FA0/15825992205221106/epubprivate/OEBPS/Images/Figure-P12_9190.jpg?sign=1739694314-QHu9qDdDFknM0HWUH2JoLbBtAwxAyihz-0-c30b98ee935c1350c56786e7045e0bba)
式中,即为使得损失函数(均方误差)最小的
。需要注意的是,式中对
求了逆矩阵,这要求
是满秩的。然而实际应用中,
不总是满秩的(例如特征数大于样本数),此时可解出多个
,选择哪一个由学习算法的归纳偏好决定,常见做法是引入正则化项。
以上求解最优的方法被称为普通最小二乘法(Ordinary Least Squares,OLS)。