Coursera机器学习课程笔记(2) Linear Regression

线性回归(Linear Regression)

在监督学习中,我们需要找到一个最佳的预测函数h(x),比如我们可以选取特征向量的线性组合函数,即可以把h(x)定义为:

机器学习里面一般默认变量为列向量,因此这里是参数向量\theta的转置矩阵。同时我们还加上了“feature 0”即x_0 = 1 以便方便表示成为向量乘积的形式。为了寻找最优的参数\theta,我们可以最小化loss function即cost function。

使用的是最小二乘法(least squares)算法, 通过最小化这个函数来寻找最优参数。

多变量线性回归的批梯度下降算法为:

求导数后得到:

我们开始随机选择一系列的参数值, 计算所有的预测结果后,再给参数一个新值,如此循环直到收敛。

梯度下降法实践1 - 特征放缩

在我们面对多维特征问题的时候,要保证这些都具有相近尺度将帮助梯度下降算法更快地收敛。

最简单的方法是令:

梯度下降法实践2 - 学习率


特征和多项式回归

线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型(或者三次方模型):


通常我们需要先观察数据然后再决定准备尝试怎样的模型。另外,我们可以令:

从而将模型转化为线性回归。
注:如果我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常有必要。

正规方程(the normal equations)

到目前为止,我们到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,正规方程是更好的解决方案。如:

假设我们的训练集特征矩阵为 X(包含了x0=1)并且我们的训练集结果为向量 y,则利用正规方程解出向量
(这个式子将在后期课程中说明,其实是把y投影到X)
上标T代表矩阵转置,上标-1代表矩阵的逆,设矩阵 A=XTX,则:(XTX)-1=A-1

梯度下降与正规方程的比较:


总结一下,只要特征变量的数目并不大标准方程是个很好计算参θ替代法。具体地说,只要特征变量数小于一万我通常使用标准方程法而不梯度下降。
随着我们要讲的学习算法越来复杂,例如当我们讲到分类算法,像逻辑回归算法,我们会看到,实际上对于那些算法, 并不能使用标准方程。对于那些更复杂的学习算法,我们将不得仍然使用梯度下降法。因此,梯度下降法是一个非常有用的算法。可以用在大量特征变的线性回归问题。或者我们以后在课程中,会讲到一些其他的算法,因为标准方程法不适合或者能用在它们上。但对于这个特定的线性回归模型,标准方程是一个比梯度下降法更快的替代算法。所以,根据具体问题,及你的特征变量的数量,这两种算法都是值得学习的。

你可能感兴趣的:(机器学习,R数据分析,机器学习,线性回归)