机器学习(三)- normal equation

normal equation

对于线性规划问题来说,除了使用梯度下降,我们还是可以使用normal equation(正规方程),非常简单的函数完成一步求解,不需要反复迭代:
θ = ( X T X ) − 1 X T y \theta=(X^TX)^{-1}X^Ty θ=(XTX)1XTy
接下来举个例子就一目了然了。
这里写图片描述
既然有如此简洁的方法,相比之下梯度下降算法一下就落于下风。
当然对于这两种方法,各有各的优势和适用场景。

Gradient DescentNormal Equation
需要手动设置 α \alpha α不需要设置 α \alpha α
需要反复迭代不需要迭代
O ( k n 2 ) O(kn^2) O(kn2) O ( n 3 ) O(n^3) O(n3) 需要计算 ( X T X ) − 1 (X^TX)^{-1} (XTX)1
x x x很大的时候,速度优于normal equation x x x很大的时候,速度就会变得缓慢

Andrew Ng教授指出,一般当n大于10000才需要考虑摒弃正规方程,在此之前正规方程的用时是少于梯度下降的。
但是对于classification,比如逻辑回归或者更复杂的学习算法,正规方程并不适用,我们还是不得不选择使用梯度下降。

Noninvertibility

对于矩阵 X T X X^TX XTX 来说,如果它是奇异矩阵或者退化矩阵,那么它是不可逆的,这将导致无法求得 ( X T X ) − 1 (X^TX)^{-1} (XTX)1。在这里对应了两种情况:
第一种就是对应了下图中的第一点,选取了冗余的特征然后导致矩阵存在线性相关的列,导致矩阵不满秩。
第二种对应下图中的第二点,对于矩阵 A A A 来说,它的row小于column,这样就说明我们选取了太多的特征,导致我们没有足够多的sample去fit这些特征,这就好比我们在求解线性方程时,我们的方程数比我们所要求的未知数还有少,导致我们有无穷多解,同理,sample数小于特征数,我们很难很好的fit这些特征。
这里写图片描述
对于以上的情况,我们可以先检查是否存在冗余的特征量,如果存在就删除冗余特征,然后再检查我们是否存在过多的特征,如果存在就删除一些或者使用正则化手段。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值