最小二乘法是什么?让误差平方和最小的拟合方法
最小二乘法(Least Squares Method)是一种用来拟合数据、估计模型参数的数学方法:选择那组能让模型的预测值与实际观测值之间误差的平方和最小的参数。“二乘”就是平方的意思。它是线性回归的基础,也是统计学和数据分析中历史最悠久、使用最广泛的方法之一。
它的由来
最小二乘法诞生于 19 世纪初的天文学和测地学研究中。当时,天文学家需要根据大量带有误差的观测数据,推算出行星和彗星的轨道。1805 年,法国数学家阿德里安-马里·勒让德在一篇关于彗星轨道的论文中首先公开发表了最小二乘法。德国数学家卡尔·弗里德里希·高斯在 1809 年发表了他的方法,并声称自己早在 1795 年就已经使用这种方法,两人之间还因此产生了优先权的争议。高斯的一个著名应用是:1801 年,意大利天文学家皮亚齐发现了谷神星,但只观测了几十天它就运行到太阳背后消失了;年轻的高斯利用这些有限的观测数据计算出了它的轨道,天文学家根据他的预测在年底重新找到了谷神星,这让高斯一举成名。更重要的是,高斯把最小二乘法与误差服从正态分布的假设联系了起来,为它提供了概率论上的依据。
为什么是平方
拟合数据时,每个观测值与模型预测值之间都有一个误差,有的为正,有的为负。如果直接把误差加起来,正负会相互抵消,即使每个误差都很大,总和也可能接近于零,无法反映拟合的好坏。解决的办法可以是取绝对值,也可以是取平方。取平方有几个好处:平方函数光滑、处处可导,便于用微积分求出最优解;它对大的误差惩罚更重,模型会特别努力地避免出现很大的偏差;而且在线性模型中,最小化平方和可以直接得到一个简洁的公式解。
如何求解
以最简单的直线拟合为例:要找一条直线,让所有数据点到这条直线的竖直距离的平方和最小。对平方和分别关于直线的斜率和截距求导,令导数等于零,就能解出最优的斜率和截距。对于有多个特征的线性回归,用矩阵来表示,最优的参数可以写成一个公式:特征矩阵的转置乘以特征矩阵,求逆,再乘以特征矩阵的转置和目标值向量,这叫正规方程。在实际的数值计算中,为了稳定,通常使用 QR 分解或奇异值分解来求解,而不是直接求逆。当特征很多、数据量很大时,也可以用梯度下降等迭代的方法来求解。如果模型对参数是非线性的,比如指数增长模型,就叫非线性最小二乘问题,没有直接的公式解,需要用高斯-牛顿法、列文伯格-马夸尔特法等迭代方法来求解。
理论性质
高斯-马尔可夫定理指出:在线性回归模型中,如果误差的平均值为零、方差相同并且互不相关,那么最小二乘估计是所有线性无偏估计中方差最小的,即“最佳线性无偏估计”。如果进一步假设误差服从正态分布,那么最小二乘估计就等价于极大似然估计。这为最小二乘法的广泛使用提供了理论上的支持。
局限和改进
由于对误差进行了平方,最小二乘法对异常值非常敏感:少数几个偏离很远的数据点,会产生很大的平方误差,可能把整条拟合线“拉”偏。这时可以使用更稳健的方法,比如最小化绝对误差,或者使用 Huber 损失。当特征之间高度相关或者特征太多时,最小二乘估计会变得不稳定,可以加入正则化项,比如岭回归和 Lasso 回归。在机器学习中,以均方误差作为损失函数来训练模型,本质上也是在使用最小二乘的思想,比如最小二乘回归树、神经网络的回归任务。