这几天看了Ng老师的机器学习教程在此写下一些理解:
举一个预测房价的例子:
面积 m^2 | 价格 w |
---|---|
1000 | 101 |
1500 | 130 |
2000 | 210 |
3210 | 293 |
4500 | 434 |
我们有这些训练数据,我们可以这些数据抽象成一个个的数据点,如下图:
我们可以看出这些点并不一条直线上,但是我们想画一条直线尽可能的接近他们,我们该怎么画呢?假设是这样的:
我们可以设这条直线为:h(x)=Q0+Q1x (基本的一元一次斜截式方程 y=kx+b)
但是我们不知道 取怎样的 Q0和 Q1才能使这条直线最接近所有点,那么我们该怎么办呢?
我们可以求出这些点到直线的垂直平均距离,也就是实际值与预测值的距离 实际值是这些点。
列出如下式子,是求点到函数的平均距离。
整合如下:
这是一条关于Theta的 抛物线这里可先把X和Y当成常数
当然我们希望这个值越小越好,因为它的值越小,就说明这条线离所有的点越近。
怎样可以使他最小呢?:
在高数里我们学到 梯度方向是函数上升最快的方向 ,可以得到负梯度方向就是下降最快的方向
所以这里使用梯度下降法来找出该函数的最小值
最后会找到一个最优的theta 使函数更贴近点。