写在前面的话:文章主要参考斯坦福吴恩达教授在Coursera上的《machine learning》视频。
线性回归算法主要适用于线性模型,视频中给了一个生动的例子,是关于房价的:
我们可以从中发现数据的分布可以近似的用一条直线来描述,线性回归算法就是依照已知数据来生成回归直线,对相关问题进行预测。流程如下图所示:
由于是线性问题,我们提出的模型假设是线性函数:
该模型主要是由两个参数决定的,如何确定两个参数就需要引入代价函数:
其中,
为对应于样本Xi的预测值,它减去样本中的Yi,可以将上式看作是预测值与真实值的距离。因此,我们将这个距离最小,就使得我们的模型更加贴近我们给定的训练数据。因此,我们的目标函数为:
梯度下降算法
梯度下降算法可以计算线性回归中的参数,其中a的选择很重要,如果过小就会耗费时间,如果过大会造成不再收敛,无法找到最优解。对于初始值的选定,我们可以用0来初始化参数,视频中,吴恩达大神还探讨了下如果初始值恰好为最优值的情况: