最小二乘法

最小二乘法说白了就是最小平方法,最小二乘法到底是怎么一回事呢?
网上找了很多资料,对最小二乘法也有了一些认识
最小二乘法是一种数学优化技术,其通过最小化误差的平方和寻找数据的最佳函数匹配;利用最小二乘法可以简便的求得未知的数据,并使得这些求得得数据与实际数据之间误差的平方和最小。
简而言之,最小二乘法和梯度下降法类似,都是一种求解无约束最优化问题的常用方法,并也可以用于曲线拟合,来解决回归问题。

一、简单理解二乘法

比如采样获取到一批样本, ( x 1 , y 1 ) (x_1,y_1) (x1,y1), ( x 2 , y 2 ) (x_2,y_2) (x2,y2) ( x n , y n ) (x_n,y_n) (xn,yn),得到这批数据之后,接下来要处理这堆数据,假设 y y y x x x呈线性关系,即 y = β 0 + β 1 x y=\beta_0+\beta_1x y=β0+β1x,接下来所需要做的就是根据采样获得的数据来求解 β 0 \beta_0 β0 β 1 \beta_1 β1了。

二、最小二乘法的误差

假设有五个尺子测量同一个线段,会得到五个不同的值10.2,10.3,9.8,9.9,9.8,之所以出现不同值的原因可能是尺子材质不一样;厂家生产的精度不一样等等…总之就是会产生误差,而一般在这种情况,会取平均值作为最终线段的长度,即 x ‾ = 10.2 + 10.3 + 9.8 + 9.9 + 9.8 5 = 10 \overline{x}=\frac{10.2+10.3+9.8+9.9+9.8}{5}=10 x=510.2+10.3+9.8+9.9+9.8=10,但是为什么一定要用 x ‾ \overline{x} x呢,用中位数不行吗,用调和平均数不行吗?下面我们来思考一下这个问题。

如图,将这五个点画入坐标系中,记作 y i y_i yi,其次把要猜测的真实值用平行于横轴的直线表示(虚线表示),这个 y y y是用 y = β 0 + β 1 x y=\beta_0+\beta_1x y=β0+β1x算出来的猜测值,记作 y y y,每个点都向 y y y做垂线,每一段垂线的长度是 ∣ y i − y ∣ |y_i-y| yiy,也就是真实值和测量值之间的误差,因为误差是长度,且计算起来很麻烦,所以干脆就会用平方和来代表误差:
∣ y i − y ∣ → ( y i − y ) 2 |y_i-y|\rightarrow(y_i-y)^2 yiy(yiy)2
由此,误差用数学公式表示就是: Q = ∑ i = 1 n ( y − y i ) 2 Q=\sum_{i=1}^n(y-y_i)^2 Q=i=1n(yyi)2
由于 y y y是猜测的,故可以不断变换,同时 Q Q Q也会不断变化
在这里插入图片描述
知道误差的表示之后,让总的误差最小的 y y y就是真值,这是基于,如果误差是随机的,应该围绕真值上下波动。
Q = m i n ∑ i = 1 n ( y − y i ) 2 Q=min\sum_{i=1}^n(y-y_i)^2 Q=mini=1n(yyi)2求这个就好求了;
一般套路:求导 → \rightarrow 导数为0 → \rightarrow 求出来的 y y y就是真值
d Q d y = d d y ∑ i = 1 n ( y i − y ) 2 = 2 ∑ i = 1 n ( y i − y ) \frac{dQ}{dy}=\frac{d}{dy}\sum_{i=1}^n(y_i-y)^2=2\sum_{i=1}^n(y_i-y) dydQ=dydi=1n(yiy)2=2i=1n(yiy)
= 2 [ ( y 1 − y ) + ( y 2 − y ) + ( y 3 − y ) + ( y 4 − y + ( y 5 − y ) ] = 0 =2[(y_1-y)+(y_2-y)+(y_3-y)+(y_4-y+(y_5-y)]=0 =2[(y1y)+(y2y)+(y3y)+(y4y+(y5y)]=0
y = y 1 + y 2 + . . . y 5 5 y=\frac{y_1+y_2+...y_5}{5} y=5y1+y2+...y5求出来的y正好是平均数,原来算数平均数可以让误差最小啊,那看来选它也不无道理。
需要注意的是,误差的分布是一个正态分布,为什么呢?
假设直线对于坐标 x i x_i xi 给出的预测 f ( x i ) f(x_i) f(xi) 是最靠谱的预测,所有纵坐标偏离 f ( x i ) f(x_i) f(xi) 的那些数据点都含有噪音,是噪音使得它们偏离了完美的一条直线,一个合理的假设就是偏离路线越远的概率越小,具体小多少,可以用一个正态分布曲线来模拟,这个分布曲线以直线对 x i x_i xi 给出的预测 f ( x i ) f(x_i) f(xi) 为中心,实际纵坐标为 y i y_i yi 的点 ( x i , y i ) (x_i, y_i) (xi,yi)发生的概率就正比于 e [ − ( Δ y i ) 2 ] e^{[-(Δy_i)^2]} e[(Δyi)2],这也就是误差分布服从正态分布的原因所在了。
在解决第一个问题之后,我们来思考下一个问题,根据采样得到的数据,该怎么求得参数 β 0 \beta_0 β0 β 1 \beta_1 β1

三、最小二乘法的求解

知道了前面的cost function之后,下面的求解过程就很简单了
样本的回归方程为: Q = ∑ i = 1 n ( y i − β 0 − β 1 x i ) Q=\sum_{i=1}^n(y_i- \beta_0-\beta_1x_i) Q=i=1n(yiβ0β1xi)
现在需要确定 β 0 \beta_0 β0 β 1 \beta_1 β1来使得cost function最小,即 m i n Q minQ minQ,所以依旧是那几步求解过程:求导 → \rightarrow (偏)导数为0 → \rightarrow 求出 β 0 \beta_0 β0, β 1 \beta_1 β1
具体过程如下:
∂ Q ∂ β 0 = 2 ∑ i = 1 n ( y i − β 0 − β 1 x i ) ( − 1 ) = 0 \frac{\partial{Q}}{\partial{\beta_0}}=2\sum_{i=1}^n(y_i-\beta_0-\beta_1x_i)(-1)=0 β0Q=2i=1n(yiβ0β1xi)(1)=0
∂ Q ∂ β 1 = 2 ∑ i = 1 n ( y i − β 0 − β 1 x i ) ( − x i ) = 0 \frac{\partial{Q}}{\partial{\beta_1}}=2\sum_{i=1}^n(y_i-\beta_0-\beta_1x_i)(-x_i)=0 β1Q=2i=1n(yiβ0β1xi)(xi)=0
将这两个方程整理一下,应用克莱姆法则即可求解出来,鉴于初学者可能有的不知道克莱姆法则,可以看一下克莱姆法则(用这个求解要求 D ≠ 0 D\not=0 D=0)

D = ∣ n ∑ i = 1 n x i ∑ i = 1 n x i ∑ i = 1 n x i 2   ∣ = n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 D=\left| \begin{array}{cccc} n & \sum_{i=1}^nx_i \\ \sum_{i=1}^nx_i & \sum_{i=1}^n x_i^2\ \end{array} \right| =n\sum_{i=1}^n x_i^2-(\sum_{i=1}^nx_i)^2 D=ni=1nxii=1nxii=1nxi2 =ni=1nxi2(i=1nxi)2
D 1 = ∣ ∑ i = 1 n y i ∑ i = 1 n x i ∑ i = 1 n x i y i ∑ i = 1 n x i 2   ∣ = ∑ i = 1 n x i 2 y i − ∑ i = 1 n x i ∑ i = 1 n x i y i D_1=\left| \begin{array}{cccc} \sum_{i=1}^ny_i & \sum_{i=1}^nx_i \\ \sum_{i=1}^nx_iy_i & \sum_{i=1}^n x_i^2\ \end{array} \right| =\sum_{i=1}^nx_i^2y_i -\sum_{i=1}^nx_i \sum_{i=1}^nx_iy_i D1=i=1nyii=1nxiyii=1nxii=1nxi2 =i=1nxi2yii=1nxii=1nxiyi
D 2 = ∣ n ∑ i = 1 n y i ∑ i = 1 n x i ∑ i = 1 n x i y i   ∣ = n ∑ i = 1 n x i y i − ∑ i = 1 n x i y i D_2=\left| \begin{array}{cccc} n & \sum_{i=1}^ny_i \\ \sum_{i=1}^nx_i & \sum_{i=1}^n x_iy_i\ \end{array} \right| =n \sum_{i=1}^n x_iy_i-\sum_{i=1}^nx_iy_i D2=ni=1nxii=1nyii=1nxiyi =ni=1nxiyii=1nxiyi
β 0 = D 1 D = ∑ i = 1 n x i 2 y i − ∑ i = 1 n x i ∑ i = 1 n x i y i n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 \beta_0=\frac{D1}{D}=\frac{\sum_{i=1}^nx_i^2y_i -\sum_{i=1}^nx_i \sum_{i=1}^nx_iy_i}{n\sum_{i=1}^n x_i^2-(\sum_{i=1}^nx_i)^2} β0=DD1=ni=1nxi2(i=1nxi)2i=1nxi2yii=1nxii=1nxiyi
β 1 = D 2 D = n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 n ∑ i = 1 n x i 2 − ( ∑ i = 1 n x i ) 2 \beta_1=\frac{D2}{D}=\frac{n \sum_{i=1}^n x_i^2-(\sum_{i=1}^nx_i)^2}{n\sum_{i=1}^n x_i^2-(\sum_{i=1}^nx_i)^2} β1=DD2=ni=1nxi2(i=1nxi)2ni=1nxi2(i=1nxi)2
根据这个公式,就可求解出对应的参数。

四、推广到矩阵形式

假设一个样本有更多的特征,也就是一个样本会有多个模型变量,(注:这里面表示样本用 x 1 , x 2 . . . x n x_1,x_2...x_n x1,x2...xn,表示多个特征(模型变量)用 x 1 , x 2 . . . x n x^1,x^2...x^n x1,x2...xn
在一个样本里,可以用如下线性函数表示: y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β m x m y=\beta_0+\beta_1x^1+\beta_2x^2+...+\beta_mx^m y=β0+β1x1+β2x2+...+βmxm
而对于n个样本来说,可以用如下线性方程组表示:
β 0 + β 1 x 1 1 + β 2 x 1 2 + . . . + β m x 1 m = y 1 \beta_0+\beta_1x_1^1+\beta_2x_1^2+...+\beta_mx_1^m=y_1 β0+β1x11+β2x12+...+βmx1m=y1
β 0 + β 1 x 2 1 + β 2 x 2 2 + . . . + β m x 2 m = y 2 \beta_0+\beta_1x_2^1+\beta_2x_2^2+...+\beta_mx_2^m=y_2 β0+β1x21+β2x22+...+βmx2m=y2
β 0 + β 1 x 3 1 + β 2 x 3 2 + . . . + β m x 3 m = y 3 \beta_0+\beta_1x_3^1+\beta_2x_3^2+...+\beta_mx_3^m=y_3 β0+β1x31+β2x32+...+βmx3m=y3

β 0 + β 1 x n 1 + β 2 x n 2 + . . . + β m x n m = y n \beta_0+\beta_1x_n^1+\beta_2x_n^2+...+\beta_mx_n^m=y_n β0+β1xn1+β2xn2+...+βmxnm=yn
上述线性方程组可以表示为为:
[ 1 x 1 ( 1 ) x 1 ( 2 ) ⋯ x 1 ( m ) 1 x 2 ( 1 ) x 2 ( 2 ) ⋯ x 2 ( m ) ⋮ ⋮ ⋮ ⋱ ⋮ 1 x n ( 1 ) x n ( 2 ) ⋯ x n ( m ) ] . [ β 0 β 1 ⋯ β m ] = [ y 0 y 1 ⋯ y n ] \begin{bmatrix} 1 & x_1^{(1)} & x_1^{(2)} & \cdots & x_1^{(m)} \\ 1 & x_2^{(1)} & x_2^{(2)} & \cdots & x_2^{(m)} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ 1 & x_n^{(1)} & x_n^{(2)} & \cdots & x_n^{(m)} \\ \end{bmatrix}. \begin{bmatrix} \beta_0 & \\ \beta_1 & \\ \cdots \\ \beta_m \end{bmatrix}= \begin{bmatrix} y_0 & \\ y_1 & \\ \cdots \\ y_n \end{bmatrix} 111x1(1)x2(1)xn(1)x1(2)x2(2)xn(2)x1(m)x2(m)xn(m).β0β1βm=y0y1yn
将样本矩阵 x i j x_i^j xij记为矩阵A,将参数记为向量 β \beta β,将真实值记为向量 Y Y Y
A β = Y A\beta=Y Aβ=Y
对于最小二乘法来说,最终矩阵表达形式可记为 m i n ∣ ∣ A β − Y ∣ ∣ 2 min||A\beta-Y||_2 minAβY2
最后的最优解即为: β = ( A T A ) − 1 A T Y \beta=(A^TA)^{-1}A^TY β=(ATA)1ATY
方程解法如下:
在这里插入图片描述
其中倒数第二行中的中间两项为标量,所以二者相等。然后利用该式对向量 β \beta β求导:
在这里插入图片描述由矩阵的求导法则:
在这里插入图片描述
可知该式的结果为:
在这里插入图片描述
令上式结果=0可得:
在这里插入图片描述
即为最小二乘法的解析解,它是一个全局最优解。

五、最小二乘法的改进

经典的最小二乘法使用起来足够简单粗暴,其考虑了每个样本的贡献,即每个样本具有相同的权重,但是有一个问题就是对噪声的容忍度很低(很敏感),即使得他对异常点比较敏感,因此提出了加权最小二乘法,相当于给每个样本设置了一个权重,以此来反映样本的重要程度或者是对解的影响程度。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值