机器学习——最小二乘法

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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值