真正理解最小二乘法(更新中)
最小二乘法是一种拟合方法,用于对数据进行线性拟合。
例如,我们有以下房价数据,size
列为在售房屋的面积(平方米),price
为房屋的总价(千元)。
size | price |
---|---|
60 | 3581.583 |
61 | 2849.362 |
62 | 2911.82 |
63 | 2946.295 |
64 | 3731.809 |
… | … |
196 | 10248.65 |
197 | 10702.55 |
198 | 10100.39 |
199 | 9964.464 |
200 | 10614.15 |
从图中可以看出,很显然,size
和price
是线性正相关的,我们希望得到一个线性函数
y
i
=
m
x
i
+
b
y_i=mx_i+b
yi=mxi+b 帮助我们量化考察房屋面积和其售价的关系。首先,我们需要制定一个标准,来考察我们得到的函数拟合结果的优劣。
如下图,对于一个点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0),如果拟合的越好,则点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)到直线 y = m x + b y=mx+b y=mx+b的距离也就越小,我们使用真实值( y 0 y_0 y0)与预测值( m x 0 + b mx_0 + b mx0+b)差的在平方 ( y − m x 0 − b ) 2 (y - mx_0 - b)^2 (y−mx0−b)2考察函数 y = m x + b y=mx+b y=mx+b 拟合结果对点 ( x 0 , y 0 ) (x_0,y_0) (x0,y0)的好坏,使用所有点 ( x i , y i ) , i = 1 , 2 , … , n (x_i,y_i),i=1,2,\dots,n (xi,yi),i=1,2,…,n真实值( y 0 y_0 y0)与预测值( m x 0 + b mx_0 + b mx0+b)差的平方之和 E = ∑ i = 1 n ( y i − m x i − b ) 2 E=\sum_{i=1}^{n}(y_i-mx_i-b)^2 E=∑i=1n(yi−mxi−b)2考察拟合结果对所有数据的好坏。于是,“最好的直线”可以定义为使得误差 E = ∑ i = 1 n ( y i − m x i − b ) 2 E=\sum_{i=1}^{n}(y_i-mx_i-b)^2 E=∑i=1n(yi−mxi−b)2最小的直线 y = m x + b y=mx+b y=mx+b。问题也被抽象化为求得参数 m , b m,b m,b,使得 min ( E ) \min(E) min(E)
数据: ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) (x_1,y_1), (x_2,y_2),\dots, (x_n,y_n) (x1,y1),(x2,y2),…,(xn,yn)
待拟合直线方程: y i = m x i + b y_i=mx_i+b yi=mxi+b
找到 ( m , b ) (m,b) (m,b)以最小化误差方程: E = ∑ i = 1 n ( y i − m x i − b ) 2 E=\sum_{i=1}^{n}(y_i-mx_i-b)^2 E=∑i=1n(yi−mxi−b)2
上述用矩阵表示即为如下:
Y
=
[
y
1
⋮
y
n
]
X
=
[
x
1
1
⋮
⋮
x
n
1
]
B
=
[
m
b
]
Y = \begin{bmatrix} y_1 \\ \vdots \\ y_n \end{bmatrix} \ \ \ \ \ \ X= \begin{bmatrix} x_1 & 1 \\ \vdots & \vdots \\ x_n & 1 \end{bmatrix} \ \ \ \ \ \ B = \begin{bmatrix} m \\ b \end{bmatrix}
Y=⎣⎢⎡y1⋮yn⎦⎥⎤ X=⎣⎢⎡x1⋮xn1⋮1⎦⎥⎤ B=[mb]
E
=
∣
∣
Y
−
X
B
∣
∣
2
=
(
Y
−
X
B
)
T
(
Y
−
X
B
)
=
Y
T
Y
−
2
(
X
B
)
T
Y
+
(
X
B
)
T
(
X
B
)
E = ||Y-XB||^2 =(Y-XB)^T(Y-XB) \\ = Y^TY-2(XB)^TY+(XB)^T(XB)
E=∣∣Y−XB∣∣2=(Y−XB)T(Y−XB)=YTY−2(XB)TY+(XB)T(XB)
求极值常用的一种方式就是求导(对
B
B
B 求导就去掉
B
T
B^T
BT),令:
KaTeX parse error: Undefined control sequence: \derivative at position 2: \̲d̲e̲r̲i̲v̲a̲t̲i̲v̲e̲{E}{B} = 2X^T(X…
(16条消息) 矩阵求导、几种重要的矩阵及常用的矩阵求导公式_Norstc的博客-CSDN博客_矩阵求导
如果
X
T
X
X^TX
XTX 可逆,有
X
T
X
B
=
X
T
Y
B
=
(
X
T
X
)
−
1
X
T
Y
X^TXB = X^TY \\ B = (X^TX)^{-1}X^TY
XTXB=XTYB=(XTX)−1XTY
结果如下: