A-01 最小二乘法


更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/p/11686958.html

最小二乘法

最小二乘法,可以理解为最小平方和,即误差的最小平方和,在线性回归中,=。最小二乘法的核心思想就是——通过最小化误差的平方和,使得拟合对象无限接近目标对象,最小二乘法一般解决线性问题。

一、最小二乘法——代数法

假设线性回归的假设函数为

(1)hω(x0,x1,,xn)=ω0x0+ω1x1++ωnxn(2)=i=0nωixi

其中n1是特征数。如果针对所有的ωi(i=1,2,,n)而言,假设函数是非线性的,但是针对某一个ωi的话,由于变量只剩下一个ωi,假设函数就是线性的,既可以使用最小二乘法求解。

通过线性回归的假设函数既可以得到目标函数为

(3)J(ω0,ω1,,ωn)=j=1m(hω(x(j))y(j))2(4)=j=1m(i=0nωixi(j)y(j))2

其中m为样本数。

利用目标函数分别对ωi求偏导,并且令导数为0,即

j=1mi=0n(ωixi(j)y(j))xi(j)=0

通过求解上式,可以得到n+1元一次方程组,通过求解这个方程组就可以的得到所有的ωi

二、最小二乘法——矩阵法

最小二乘法矩阵法比代数法简单不少。我们把代数法中线性回归的假设函数可以写成

hω(X)=Xω

其中hω(X)m1维的向量,Xmn维的矩阵,ωn1维的向量,m为样本数,n为特征数。

通过上述矩阵形式的假设函数可以得到矩阵形式的目标函数为

J(ω)=12(XωY)T(XωY)

其中12只是为了方便计算。

目标函数对ω求导取0,可以得

ωJ(ω)=XT(XωY)=0

上述求偏导使用了矩阵求导链式法则和两个矩阵求导的公式

(5)X(XTX)=2X(6)Xf(AX+B)=ATAX+Bf

通过对上述式子整理可得

(7)XTXω=XTX(XTX)1(8)ω=(XTX)1XTY

通过上述的化简可以直接对向量ω求导,而不需要对ω中的每一个元素求偏导。

三、最小二乘法优缺点

3.1 优点

  1. 简洁高效,比梯度下降法方便

3.2 缺点

  1. 最小二乘法需要计算XTX的逆矩阵,可能XTX没有逆矩阵(一般需要考虑使用其他的优化算法,或者重新处理数据让XTX有逆矩阵)
  2. 当特征数n非常大的时候,XTX的计算量非常大(使用随机梯度下降法或使用降维算法降低特征维度)
  3. 最小二乘法只有拟合函数为线性的时候才可以使用(想办法通过某些机巧让拟合函数转化为线性的)
posted @ 2020-12-10 22:43  ABDM  阅读(125)  评论(0编辑  收藏  举报