最小二乘法是一种在误差估计、不确定度、系统辨识及预测、预报等数据处理诸多学科领域得到广泛应用的数学工具。最小二乘很简单,也在业界得到了广泛使用。
但是对于最小二乘法和它的故事,也许很多人并不了解,今天给大家做一下分享。
1801年,意大利天文学家朱赛普·皮亚齐发现了第一颗小行星谷神星。经过40天的跟踪观测后,由于谷神星运行至太阳背后,使得皮亚齐失去了谷神星的位置。随后全世界的科学家利用皮亚齐的观测数据开始寻找谷神星,但是根据大多数人计算的结果来寻找谷神星都没有结果。
时年24岁的高斯也计算了谷神星的轨道。奥地利天文学家海因里希·奥伯斯根据高斯计算出来的轨道重新发现了谷神星。
高斯使用的最小二乘法的方法发表于1809年他的著作《天体运动论》中,而法国科学家勒让德于1806年独立发现“最小二乘法”,但因不为世人所知而默默无闻。
为了方便大家理解最小二乘法,给大家讲个故事。
假设身高是变量X,体重是变量Y,我们都知道身高与体重有比较直接的关系。生活经验告诉我们:一般身高比较高的人,体重也会比较大。但是这只是我们直观的感受,只是很粗略的定性的分析。
在数学世界里,我们大部分时候需要进行严格的定量计算:能不能根据一个人的身高,通过一个式子就能计算出他或者她的标准体重?
我们可以采样一批人的身高体重数据,
(x1,y1),(x2,y2),⋯,(xn,yn),其中x是身高,y是体重。
生活常识告诉我们:身高与体重是一个近似的线性关系,用最简单的数学语言来描述就是
y=β0+β1x。
于是,接下来的任务就变成:怎么求出这个
β0与
β1呢?
为了计算
β0,
β1的值,我们采取如下规则:
β0,
β1应该使计算出来的函数曲线与观察值的差的平方和最小。用数学公式描述就是:
Q=mini∑n(yie−yi)2
其中,
yie表示根据
y=β0+β1x估算出来的值,
yi是观察得到的真实值。
这样,样本的回归模型很容易得出:
Q=i∑n(yi−β0−β1x)2
现在需要确定
β0、
β1,使cost function最小。
大家很容易想到,对该函数求导即可找到最小值:
∂β0∂Q=2i∑n(yi−β0−β1xi)(−1)=0∂β1∂Q=2i∑n(yi−β0−β1xi)(−xi)=0
将这两个方程整理后使用克莱姆法则,很容易求解得出:
β0=n∑xi2−(∑xi)2∑xi2∑yi−∑xi∑xiyiβ1=n∑xi2−(∑xi)2n∑xiyi−∑xi∑yi
根据这个公式,只需要将样本都带入就可以求解出相应的参数。
如果我们推广到更一般的情况,假如有更多的模型变量
x1,x2,⋯,xm(注意:
x1是指 一个样本,
x1是指样本里的一个模型相关的变量),可以用线性函数表示如下:
y(x1,⋯,xm;β0,⋯,βm)=β0+β1x1+⋯+βmxm
对于n个样本来说,可以用如下线性方程组表示:
β0+β1x11+⋯+βjx1j+⋯+βmx1m=y1β0+β1x21+⋯+βjx2j+⋯+βmx2m=y2⋯β0+β1xi1+⋯+βjxij+⋯+βmxim=yi⋯β0+β1xn1+⋯+βjxnj+⋯+βmxnm=yn
如果将样本矩阵
xih记为矩阵A,将参数矩阵记为向量
β,真实值记为向量Y,上述线性方程组可以表示为:
⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡11⋯1x1(1)x2(1)⋯xn(1)⋯⋯⋯⋯x1(m)x2(m)⋯xn(m)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⋅⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡β0β1⋯βm⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡y1y2⋯yn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
即
Aβ=Y
对于最小二乘来说,最终的矩阵表达形式可以表示为:
min∣∣Aβ−Y∣∣2
最后的最优解为:
β=(ATA)−1ATY
2021华为云 AI 实战营(https://marketplace.huaweicloud.com/markets/ai/gallery_full_stack.html)
——华为云员工都在学的AI实战营,快来报名免费学习吧~
评论(0)