在之前我们都是通过梯度下降法找到最佳的theta值,从而使得损失函数最小,但是正规方程则给出了一种完全不同的思路---直接计算出theta值,注:在octave中矩阵(X'*X)的逆用pinv(X'*X),在使用正规化方法时,不需要使用特征缩放,但是在梯度下降法中特征缩放还是很重要的。正规化方程给出的theta值的最优解就是pinv(X'*X)*X'*y学习 吴恩达--机器学习---正规方程--笔记

整理梯度下降法与正规方程的区别:梯度下降法需要设置学习率,需要进行迭代,但是有一个明显的优势:当特征值很多时会随着迭代的次数的增加,损失函数会逐渐降低,直到找到最佳的收敛值。
                                                        正规方程不需要设置学习率,不需要迭代,但是需要计算(X'*X)的逆,当特征很多时,计算矩阵逆的耗时为n的三次方,所以当特征个数超过10000时,考虑使用迭代法更快一些。
     总结:当特征数不多,使用正规方程解最佳theta值,当特征值超过10000,使用梯度下降法。
     注:对于线性回归特定的模型,正规方程会比梯度下降法适合,但是正规方程不适用于大多数复杂的算法,但是梯度下降法适用于各种复杂的算法。

    如果在使用正规方程时出现(X'*X)的逆不存在,在OCTAVE中使用pinv(),求伪逆,inv()求的是逆。如果矩阵的逆不存在,需要考虑两个方面:1.特征中存在多元的特征(例如特征1与特征2可以线性表示,或有很强的相关性);2.是否是由于训练集数据太少,而特征过多导致的。

相关文章: