机器学习笔记007 | 正规方程算法

机器学习笔记007 | 正规方程算法_第1张图片

为了预测更加准确,我们需要找到让代价函数最小的参数。

除了使用梯度下降算法,通过迭代的方式求解之外,还有另外一种方式,叫做正规方程(Normal equation)算法

通过正规方程算法,我们可以一步得到想要的结果。

例如我们的预测函数:

hθ(xi) = θ0 + θ1xi

它的代价函数是:

所以,它可以看作一个二次函数:

J(θ) = aθ2 + bθ + c

对于这样的函数,我们怎么求其的最小值呢?

如果对微积分还有点印象的话,应该就知道,对它求导数,然后让这个导数等于0,再求解:

通过这样的方式,你就可以求得让J(θ)值最小的参数θ,也就是图中的绿点:

机器学习笔记007 | 正规方程算法_第2张图片

那么对于多特征的情况,我们需要对这样每一个θ进行同样的计算。

这样,我们就逐个求得 θ0 , θ1 , θ2 , …… , θn ,使得J(θ)最小。

当然这样的微积分计算会非常复杂,相信你也可能不感兴趣(其实笔者也不清楚怎么给你推演)。

不过对于如何使得算法能够继续运行,我们只要知道这样一个公式就行了:

θ = ( XTX )-1XTy

这就是所谓的正规方程。

XT就是X的转置矩阵, XTX是转置矩阵XT和X相乘,而( XTX )-1就是( XTX )的逆矩阵。

其中:

机器学习笔记007 | 正规方程算法_第3张图片

为了让你更容易理解公式,我们举一个栗子。

还是看我们之前房子的例子:

机器学习笔记007 | 正规方程算法_第4张图片

假如我们只有这5行数据,然后我们在前面增加一列x0,其中每一个值都是 1 :

机器学习笔记007 | 正规方程算法_第5张图片

那么我们对特征和预测结果可以构造这样的矩阵:

机器学习笔记007 | 正规方程算法_第6张图片

X是 m × (n+1) 的矩阵,y是 m × 1 的矩阵(向量),其中m为训练样本数量5,n为特征数量4。

通过这样的方式,我们在代码中一步就得到了答案:

机器学习笔记007 | 正规方程算法_第7张图片

看起来这样的算法,要比梯度下降算法要简单的多,那么两者相比,有什么优劣呢?

机器学习笔记007 | 正规方程算法_第8张图片

相对于梯度下降算法,正规方程有一定的优势,但是当特征数量n非常大的时候,就不适用了。

n多大才算是非常大呢?

这其实取决于计算机的运算能力。

如果运算的时候让你感觉到明显的缓慢,那么就不合适了,可能是 n = 1000 ,也可能是 n = 10000 ,甚至可能是 n = 100000。

文章转载自公众号:止一之路

机器学习笔记007 | 正规方程算法_第9张图片

你可能感兴趣的:(机器学习笔记007 | 正规方程算法)