最小二乘是每个上过大学的同学都接触过的概念与知识点(当然可能纯文科的同学没接触过,但是一般纯文科的同学也不会看这篇文章好像)。最小二乘理论其实很简单,用途也很广泛。但是每次说到最小二乘,总感觉差了点什么似的,好像对于最小二乘的前世今生没有一个特别详细与系统的了解。so,本博主趁着周末的时间,赶紧给详细整理整理,力争把最小二乘是个什么鬼做一个特别详细的说明,争取让学英语学中文学历史学画画唱歌的同学都能看明白。
1.最小二乘的背景
2.举个最简单的例子理解最小二乘
3.最小二乘的cost function
4.最小二乘法的求解
∂ Q ∂ β 0 = 2 ∑ i n ( y i − β 0 − β 1 x i ) ( − 1 ) = 0 ∂ Q ∂ β 1 = 2 ∑ i n ( y i − β 0 − β 1 x i ) ( − x i ) = 0 \frac{\partial Q}{\partial \beta_0} = 2\sum_i^n(y_i-\beta_0-\beta_1x_i)(-1) = 0 \\ \frac{\partial Q}{\partial \beta_1} = 2\sum_i^n(y_i-\beta_0-\beta_1x_i)(-x_i) = 0 ∂β0∂Q=2i∑n(yi−β0−β1xi)(−1)=0∂β1∂Q=2i∑n(yi−β0−β1xi)(−xi)=0
5.矩阵表达形式
如果我们推广到更一般的情况,假如有更多的模型变量 x 1 , x 2 , ⋯ , x m x^1,x^2,\cdots,x^m x1,x2,⋯,xm(注意: x 1 x_1 x1是指 一个样本, x 1 x^1 x1是指样本里的一个模型相关的变量),可以用线性函数表示如下:
y ( x 1 , ⋯ , x m ; β 0 , ⋯ , β m ) = β 0 + β 1 x 1 + ⋯ + β m x m y(x^1,\cdots,x^m;\beta_0,\cdots,\beta_m) = \beta_0+\beta_1x^1 + \cdots + \beta_m x^m y(x1,⋯,xm;β0,⋯,βm)=β0+β1x1+⋯+βmxm
对于n个样本来说,可以用如下线性方程组表示:
β 0 + β 1 x 1 1 + ⋯ + β j x 1 j + ⋯ + β m x 1 m = y 1 β 0 + β 1 x 2 1 + ⋯ + β j x 2 j + ⋯ + β m x 2 m = y 2 ⋯ β 0 + β 1 x i 1 + ⋯ + β j x i j + ⋯ + β m x i m = y i ⋯ β 0 + β 1 x n 1 + ⋯ + β j x n j + ⋯ + β m x n m = y n \beta_0 + \beta_1 x_1 ^1 + \cdots + \beta_j x_1 ^j + \cdots + \beta_m x_1^m = y_1 \\ \beta_0 + \beta_1 x_2 ^1 + \cdots + \beta_j x_2 ^j + \cdots + \beta_m x_2^m = y_2 \\ \cdots \\ \beta_0 + \beta_1 x_i ^1 + \cdots + \beta_j x_i ^j + \cdots + \beta_m x_i^m = y_i \\ \cdots \\ \beta_0 + \beta_1 x_n ^1 + \cdots + \beta_j x_n ^j + \cdots + \beta_m x_n^m = y_n β0+β1x11+⋯+βjx1j+⋯+βmx1m=y1β0+β1x21+⋯+βjx2j+⋯+βmx2m=y2⋯β0+β1xi1+⋯+βjxij+⋯+βmxim=yi⋯β0+β1xn1+⋯+βjxnj+⋯+βmxnm=yn
如果将样本矩阵 x i h x_i^h xih记为矩阵A,将参数矩阵记为向量 β \beta β,真实值记为向量Y,上述线性方程组可以表示为:
[ 1 x 1 ( 1 ) ⋯ x 1 ( m ) 1 x 2 ( 1 ) ⋯ x 2 ( m ) ⋯ ⋯ ⋯ ⋯ 1 x n ( 1 ) ⋯ x n ( m ) ] ⋅ [ β 0 β 1 ⋯ β m ] = [ y 1 y 2 ⋯ y n ] \left [ \begin{matrix} 1 & x_1^{(1)} & \cdots & x_1^{(m)} \\ 1 & x_2^{(1)} & \cdots & x_2^{(m)} \\ \cdots & \cdots & \cdots & \cdots \\ 1 & x_n^{(1)} & \cdots & x_n^{(m)} \end{matrix} \right ] \cdot \left [ \begin{matrix} \beta_0 \\ \beta_1 \\ \cdots \\ \beta_m \end{matrix} \right ] = \left [ \begin{matrix} y_1 \\ y_2 \\ \cdots \\ y_n \end{matrix} \right ] ⎣⎢⎢⎢⎡11⋯1x1(1)x2(1)⋯xn(1)⋯⋯⋯⋯x1(m)x2(m)⋯xn(m)⎦⎥⎥⎥⎤⋅⎣⎢⎢⎡β0β1⋯βm⎦⎥⎥⎤=⎣⎢⎢⎡y1y2⋯yn⎦⎥⎥⎤
即 A β = Y A \beta = Y Aβ=Y
对于最小二乘来说,最终的矩阵表达形式可以表示为:
m i n ∣ ∣ A β − Y ∣ ∣ 2 min||A\beta – Y||_2 min∣∣Aβ−Y∣∣2
最后的最优解为:
β = ( A T A ) − 1 A T Y \beta = (A^TA)^{-1}A^TY β=(ATA)−1ATY
6.注意事项
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/177647.html原文链接:https://javaforall.net
