首页 > 代码库 > Machine Learning:Linear Regression With One Variable
Machine Learning:Linear Regression With One Variable
Machine Learning:Linear Regression With One Variable
首先我们从一个简单的监督学习入手:假如给我们一组训练集(在这里就是Size和Price),我们如何才能建立一个可以预测房价的模型呢?
这里(x,y)称为一个训练样本,(xi,yi)称为第i个训练样本,所有训练样本的集合称为训练集。在这里CostFunction是关于theta0和theta1的函数,而h(x)是关于x的函数,其参数是theta。我们需要找到合适的theta值使得h(x)与y之间的差的绝对值最小(也就是使整体上预测更加准确),在这里我们使用平方差以便于处理。
下面的两幅图是Cost Function的曲面图和等高图,我们可以形象的把这种曲面形状成为bow-shaped,可以看到它是仅有一个全局最优解的(一般而言线性回归的Cost Function是满足这个特性的)。
下面我们介绍如何确定theta的值使得CostFunction的值最小,我们称之为gradient descent(梯度下降法)。
注意theta的更新需保持同步。
在我们进行迭代的过程中,theta总是逐步趋近于最优解的,所以theta的初值并不重要。
关于学习率alpha的选择问题:因为alpha太小则收敛太慢,而alpha太大则有可能无法收敛,所以alpha的选择有一定的难度,需要进行一些尝试。(可以尝试0.001,0.003,0.01…)。其次是alpha一旦选择后,无需再进行改变,因为当我们趋近于最小值时,斜率同样也逐渐减小,这样最终会趋于最小值,当然前提是alpha的值选择恰当。
如何判断Cost Function是否收敛?我们可以看两次迭代之后Cost Function值的变化,其次我们可以画出Cost Function的图形,看其最后是否收敛与某一值。
-------------------------------------------------------------------------------------------------------------
本内容摘自斯坦福大学Andrew Ng老师《机器学习》课件
Machine Learning:Linear Regression With One Variable