最小二乘法

最小二乘法,又称最小平方法,是机器学习中基础的算法之一,它是一种优化算法,通过最小化误差的平方来寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。在机器学习中,还可以使用最小二乘法来进行曲线拟合。

这里写图片描述
上图介绍的上海市长宁区部分房价的信息,从散点图可以发现,房子的大小和房价彼此之间有一些依赖关系,由房子大小可以决定房子的价格,但是这种关系又是不确定的,这时候我们可以利用统计学中的回归模型来寻找这两个变量之间的关系。具体步骤如下:

  1. 画散点图,直观判断;
  2. 用近似模型来描述它们的关系,如一元线性模型;
  3. 建立回归模型;
  4. 对模型进行参数估计,最小二乘法是这些参数估计的一种常用的方法,这也是本篇博文讲述的重点;
  5. 讨论模型的效果;

为了描述简单,本篇文章将采用一元线性模型(Y=w0+w1X<script type="math/tex" id="MathJax-Element-1">{Y}=w_0+w_1X</script> )建立回归模型来介绍最小二乘法。

Yi^=w0+w1Xi(式1−1)
<script type="math/tex; mode=display" id="MathJax-Element-2">\hat{Y_i}=w_0+w_1X_i(式1-1) </script>
其中,Yi^<script type="math/tex" id="MathJax-Element-3">\hat{Y_i}</script>是根据回归模型求得的值,则Yi<script type="math/tex" id="MathJax-Element-4">{Y_i}</script>和Yi^<script type="math/tex" id="MathJax-Element-5">\hat{Y_i}</script>的差就是该模型的误差。则平方损失函数为:
S=∑i=1n(Yi−Yi^)2=∑i=1n(Yi−w0−w1Xi)2(式1−2)
<script type="math/tex; mode=display" id="MathJax-Element-6">S=\sum_{i=1}^n (Y_i-\hat{Y_i})^2=\sum_{i=1}^n(Y_i-w_0-w_1X_i)^2(式1-2)</script>

分别对w0,w1<script type="math/tex" id="MathJax-Element-7">w_0,w_1</script>求偏导得:

∂S∂w0=−2∑i=1n(Yi−w0−w1Xi)(式1−3)
<script type="math/tex; mode=display" id="MathJax-Element-8">\frac{{\partial S}}{{\partial w_0}} =-2\sum_{i=1}^n(Y_i-w_0-w_1X_i)(式1-3)</script>
∂S∂w1=−2∑i=1n(Yi−w0−w1Xi)(−Xi)(式1−4)
<script type="math/tex; mode=display" id="MathJax-Element-9">\frac{{\partial S}}{{\partial w_1}} =-2\sum_{i=1}^n(Y_i-w_0-w_1X_i)(-X_i)(式1-4)</script>

根据我们的数学知识,函数的极值点为偏导数为0的点。即

∂S∂w0=0(式1−5)
<script type="math/tex; mode=display" id="MathJax-Element-10">\frac{{\partial S}}{{\partial w_0}} =0(式1-5)</script>
∂S∂w1=0(式1−6)
<script type="math/tex; mode=display" id="MathJax-Element-11">\frac{{\partial S}}{{\partial w_1}} =0(式1-6)</script>
亦即
nw0+∑i=1n(Xi)w1=∑i=1nYi(式1−7)
<script type="math/tex; mode=display" id="MathJax-Element-12">n w_0+\sum_{i=1}^n(X_i)w_1=\sum_{i=1}^nY_i(式1-7)</script>
∑i=1n(Xi)w0+(∑i=1nx2i)w1)=∑i=1n(XiYi)(式1−8)
<script type="math/tex; mode=display" id="MathJax-Element-13">\sum_{i=1}^n(X_i)w_0+(\sum_{i=1}^nx_i^2)w_1)=\sum_{i=1}^n(X_iY_i)(式1-8)</script>

对式1-7和式1-8求解得:

w0=∑ni=1Yin−w1∑ni=1Xin(式1−9)
<script type="math/tex; mode=display" id="MathJax-Element-14">w_0=\frac{\sum_{i=1}^nY_i}{n}-\frac{w_1\sum_{i=1}^nX_i}{n}(式1-9)</script>
w1=[n∑ni=1XiYi−(∑ni=1Xi∑ni=1Yi)n∑ni=1X2i−(∑ni=1Xi)2(式1−10)
<script type="math/tex; mode=display" id="MathJax-Element-15">w_1=[\frac{n\sum_{i=1}^nX_iY_i-(\sum_{i=1}^nX_i\sum_{i=1}^nY_i)}{n\sum_{i=1}^nX_i^2-(\sum_{i=1}^nX_i)^2}(式1-10)</script>
此时,把w0,w1<script type="math/tex" id="MathJax-Element-16">w_0,w_1</script>带入式1-1,就是我们要求的回归模型。

更多推荐