机器学习——最小二乘法

最小二乘法是用来做函数拟合或者求函数极值的方法。

  1. 最小二乘法的原理
    目标函数=∑(观测值−理论值)2目标函数=\sum(观测值-理论值)^2=()2观测值就是我们的多组样本,理论值就是我们的假设拟合函数,目标函数就是机器学习中的损失函数,我们的目标就是得到使目标函数最小时的拟合函数的模型。
  2. 代数法求解
    对参数θiθ_iθi分别求偏导,令偏导数为0,求解方程组。
  3. 矩阵法求解
    损失函数定义为J(θ)=12(Xθ−Y)T(Xθ−Y)J(θ)=\frac12(Xθ-Y)^T(Xθ-Y)J(θ)=21(XθY)T(XθY),其中Y是样本的输出向量。
    对损失函数求偏导,偏导取0:ααθJ(θ)=XT(Xθ−Y)=0\frac\alpha{\alphaθ}J(θ)=X^T(Xθ-Y)=0αθαJ(θ)=XT(XθY)=0
    整理得:θ=(XTX)−1XTYθ=(X^TX)^{-1}X^TYθ=XTX)1XTY
    这样可以直接求出θ 的向量表达式,免去了代数法一个个求导的麻烦。
  4. 局限性与适用场景
    1)最小二乘法需要计算XTXX^TXXTX的逆矩阵,它的逆矩阵有可能不存在,这样就没办法直接使用最小二乘法了,此时梯度下降法仍然可以使用。当然,我们可以对样本数据进行整理,去掉冗余特征,让XTXX^TXXTX行列式不等于0,继续使用最小二乘法。
    2)当样本特征n非常大的时候,计算XTXX^TXXTX的逆矩阵是一个非常耗时的工作(nxn矩阵求逆),甚至不可行。此时以梯度下降为代表的迭代法仍然可以使用。那这个n到底多大就不适合最小二乘法呢?如果你没有很多的分布式大数据计算资源,建议超过10000个特征就用迭代法吧。或者通过主成分分析降低特征的维度后再用最小二乘法。
    3)如果拟合函数不是线性的,则无法使用最小二乘法,需要一些技巧转化为线性才可以使用。此时梯度下降法仍可以使用。
    4)当样本容量m小于特征数量n时,拟合方程是欠定的,常用的优化方法都无法拟合数据;当m=n时,用方程组求解即可;当m>n时,拟合方程是超定的,常用最小二乘法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值