最小二乘法
最小二乘法,可以理解为最小平方和,即误差的最小平方和,在线性回归中,
误
差
=
真
实
值
−
预
测
值
误差=真实值-预测值
误差=真实值−预测值。最小二乘法的核心思想就是——通过最小化误差的平方和,使得拟合对象无限接近目标对象,最小二乘法一般解决线性问题。
最小二乘法——代数法
假设线性回归的假设函数为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ h_\omega(x_0,x…
其中
n
−
1
n-1
n−1是特征数。如果针对所有的
ω
i
(
i
=
1
,
2
,
⋯
,
n
)
\omega_i\quad(i=1,2,\cdots,n)
ωi(i=1,2,⋯,n)而言,假设函数是非线性的,但是针对某一个
ω
i
\omega_i
ωi的话,由于变量只剩下一个
ω
i
\omega_i
ωi,假设函数就是线性的,既可以使用最小二乘法求解。
通过线性回归的假设函数既可以得到目标函数为
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ J(\omega_0,\om…
其中
m
m
m为样本数。
利用目标函数分别对
ω
i
\omega_i
ωi求偏导,并且令导数为0,即
∑
j
=
1
m
∑
i
=
0
n
(
ω
i
x
i
(
j
)
−
y
(
j
)
)
x
i
(
j
)
=
0
\sum_{j=1}^m \sum_{i=0}^n (\omega_ix_i^{(j)} - y^{(j)})x_i^{(j)} = 0
j=1∑mi=0∑n(ωixi(j)−y(j))xi(j)=0
通过求解上式,可以得到
n
+
1
n+1
n+1元一次方程组,通过求解这个方程组就可以的得到所有的
ω
i
\omega_i
ωi。
最小二乘法——矩阵法
最小二乘法矩阵法比代数法简单不少。我们把代数法中线性回归的假设函数可以写成
h
ω
(
X
)
=
X
ω
h_\omega(X) = X\omega
hω(X)=Xω
其中
h
ω
(
X
)
h_\omega(X)
hω(X)是
m
∗
1
m*1
m∗1维的向量,
X
X
X是
m
∗
n
m*n
m∗n维的矩阵,
ω
\omega
ω是
n
∗
1
n*1
n∗1维的向量,
m
m
m为样本数,
n
n
n为特征数。
通过上述矩阵形式的假设函数可以得到矩阵形式的目标函数为
J
(
ω
)
=
1
2
(
X
ω
−
Y
)
T
(
X
ω
−
Y
)
J(\omega)={\frac{1}{2}}(X\omega-Y)^T(X\omega-Y)
J(ω)=21(Xω−Y)T(Xω−Y)
其中
1
2
{\frac{1}{2}}
21只是为了方便计算。
目标函数对
ω
\omega
ω求导取0,可以得
∇
ω
J
(
ω
)
=
X
T
(
X
ω
−
Y
)
=
0
\nabla_\omega{J(\omega)} = X^T(X\omega-Y) =0
∇ωJ(ω)=XT(Xω−Y)=0
上述求偏导使用了矩阵求导链式法则和两个矩阵求导的公式
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & \nabla_X(X^T…
通过对上述式子整理可得
KaTeX parse error: No such environment: align at position 8: \begin{̲a̲l̲i̲g̲n̲}̲ & X^TX\omega=X…
通过上述的化简可以直接对向量
ω
\omega
ω求导,而不需要对
ω
\omega
ω中的每一个元素求偏导。
最小二乘法优缺点
优点
- 简洁高效,比梯度下降法方便
缺点
- 最小二乘法需要计算 X T X X^TX XTX的逆矩阵,可能 X T X X^TX XTX没有逆矩阵(一般需要考虑使用其他的优化算法,或者重新处理数据让 X T X X^TX XTX有逆矩阵)
- 当特征数 n n n非常大的时候, X T X X^TX XTX的计算量非常大(使用随机梯度下降法或使用降维算法降低特征维度)
- 最小二乘法只有拟合函数为线性的时候才可以使用(想办法通过某些机巧让拟合函数转化为线性的)