其实第二周刚开始的部分是环境配置说明(Environment Setup Instructions),主要是Octave和Matlab的安装说明和一些教程类的东西,那个教程还是比较有用的,我把它写在参考资料里面了。

1 多特征(Multiple Features)

1.1 变量说明

变量名称 变量含义
x(i)j 第i个训练实例中的第j的特征值
x(i) 第i个训练实例
m 训练集中训练实例的数量
n 每个训练实例中特征的个数

1.2 多特征假设函数

适应这些多个特征的假设函数的多变量形式如下:
ML学习笔记第二周(一):多元线性回归
将假设函数转变为向量形式之后,我们就可以很方便的在Matlab里面对数据集进行操作了。

2 多变量的梯度下降(Gradient Descent for Multiple Variables)

之前第一周已经对如何求单变量情况下的代价函数J(θ01)的最小值,以及如何使用梯度下降算法进行了简单的推导。

在多变量情况下,令x0=1,我们就可以推导出更加具有一般性的梯度下降算法公式,如下右图所示。

ML学习笔记第二周(一):多元线性回归

3 实践中的梯度下降I——特征缩放

3.1 特征缩放(Feature Scaling)

还是用之前预测房价的例子,如果直接对训练集的各项特征值进行处理,作图并借助梯度下降算法,求得代价函数最小值的话,代价函数J(θ01)的的轮廓图就会是一个个椭圆(甚至还可能非常陡),梯度下降也需要走很多次才可以到达最低点。

我们可以通过使每个输入值在大致相同的范围内来加速梯度下降。这是因为θ将在小范围内快速下降并且在大范围内缓慢下降,因此当变量非常不均匀时,将无效地振荡到最佳值。 防止这种情况的方法是修改输入变量的范围,使它们大致相同,这种方法就成为特征缩放(Feature Scaling)。

这样会使代价函数的轮廓图近似于一个个圆形,这样迭代的次数会减少,路径也会更加平缓。
ML学习笔记第二周(一):多元线性回归
最理想的缩放结果就是,将特征值全部缩放到[-1,1]区间内部(其他相近的区间也可以接受),同时又不丢失其原本的特征。
ML学习笔记第二周(一):多元线性回归

3.2 均值归一化(Mean Normalization)

感觉这个地方就和概率论里边的标准正态分布很相似了。
以(xii)/si来代替xi(1<=i<=n),其中xi为第i项特征值,μi为所有第i项特征值的平均值,si为第i项特征值的标准差(一般情况下不用这么麻烦,用区间范围代替就可以了)。
ML学习笔记第二周(一):多元线性回归

4 实践中的梯度下降I——学习速率

要想保证梯度下降算法的正常运行,就必须要选择合适的学习速率α。问题就在于α要怎么选择,很简单,慢慢试嘛,太小了就增加一点,太大了就减小一点。

4.1 调试梯度下降

画出J(θ)为纵坐标,迭代步数为横坐标的曲线。如果曲线不是单调减函数,一般来说,是α太大的原因,试试更小的α即可。

当α太大的时候,梯度下降算法就可能会起到上升的效果,即横纵坐标成正比例,代价函数逐渐发散,永不收敛;当α太小的时候,虽然是梯度下降(横纵坐标为反比例),但是下降速率会比较小,也就是曲线斜率的绝对值会比较小。
ML学习笔记第二周(一):多元线性回归

4.2 自动收敛测试

如果在一次迭代之后,J(θ)减小的值小于一个足够小的阈值E(通常取1e-3)。

但是实际情况中很难选择这个阈值,我们可以一直调整α来加快收敛速度。

α的选择经验是…,0.001,0.003,0.01,0.03,0.1,0.3,1,3,…

5 特征和多项式回归(Features and Polynomial Regression)

在获得训练集内的各项特征之后,我们需要去选择合适的特征以及合适的模型来对数据进行拟合,选择那些特征,建立什么模型,就是我们必须要考虑的问题。

5.1 特征选择

我们可以将多个特征进行合并,比如我们可以把特征值x1和x2,合并成为新的特征值x3=x1*x2
ML学习笔记第二周(一):多元线性回归

5.2 多项式回归

最简单的模型肯定是线性模型,但有时候如果不能很好的拟合数据,我们可以考虑多项式模型。

在针对房价做拟合时,二次多项式可以很好的拟合前面的数据,但是二次多项式之后是会回落的,这显然不符合实际情况。于是我们可以选择三次多项式以及平方根多项式来拟合数据。

如果选择三次多项式,x、x2和x3,可以分别作为训练实例的3个特征值x1、x2和x3。假设x1范围为[0,1000],x2范围就是[0,1e6],x3范围就会达到惊人的[0,1e9],这个时候特征缩放和归一化的重要性就会显现出来(归一化不是必须的步骤)。
ML学习笔记第二周(一):多元线性回归

6 参考资料

1、More Octave/MATLAB resources
2、【吴恩达机器学习】学习笔记——4多元线性回归
3、机器学习 - Linear Regression with One Variable | Coursera

相关文章: