Machine Learning Week2 学习笔记

第二周的课程主要是将第一周中单变量线性回归拓展到 多变量线性回归 ,同时不仅涉及到了梯度下降法求解线性回归和用梯度下降法求解时的一些处理如 特征变化(Feature Scaling) 归一化(Normalization) ;还涉及到了 正规方程(Normal Equation) 求解。
1、多变量线性回归
以房子价格预测为例
Size(x1)
Floor(x2)
age(x3)
Price(y)
...
...
...
...








如上表所示,房子价格与房子大小,楼层数,年龄有关。因此这是一个多变量线性回归问题。

和单变量一样:
hypothesis function:

cost function:

梯度下降法:
repeat  {

}
until convergence 
Feature Scaling:
在运用梯度下降法时,有时候由于特征值所取得范围区别过大,例如1<x1<2;而1000<x2<3000这样就会得到非常“椭圆”化的
轮廓图像(每一闭合曲线代表值相同)。例如:
Machine Learning Week2 学习笔记_第1张图片
如上图所示,由于非常椭圆,这样每次迭代沿梯度下降时速度很慢,要经过很长时间才会收敛到最优点。
因此我们可以在处理特征值时,将每个特征值都除以各自的最大值。
例如:

(s为x1特征值的最大值)
有时候我们还会进行 归一化处理(Mean Normalizetion);即:
是xi特征值的平均值
经过这样处理的特征值不难计算最后基本上大约都处于(-1,+1)这个范围,这样在运用梯度算法时,收敛速度就会快多了,如下图所示:


同时有时候为了得到更好的模型,我们需要自己 选择甚至是创造合适的特征值。例如预测房价时,假定有两个特征,房子的长度和宽度,我们有两种选择:第一、我们可以使用

第二、根据我们日常生活中的常识得知,房价是和房子面积大小有关的,因此我们可以使用一个面积特征来代替长度和宽度特征。
从而得到以下模型:

这样可以使得处理起来更容易。另外对于下图这样的房价模型:
显然使用这样的预测模型不能很好的模拟,假如我们使用三次多项式模拟的话:

这样对应于三特征值模型:

其中

这样能达到更好的预测效果。
学习速率的确定
前面介绍过,学习速率过大会造成振荡甚至发散而无法收敛,而过小又会造成收敛过慢。因此我们可以通过刻画 来观察其随着每次迭代而收敛变化的情况,进而更好的确定学习速率的值。一般取学习因子的值时,每隔3倍取一个。例如:
0.033  0.1  0.3  1  3  10  30
最后作者介绍了Normal Equation.是解决线性规划问题的另一个方法。第一列都是1代表x0都是1,这是我们自己加的第0个特征,方便计算。
由、得:

显然用这种方法求解有以下优点:计算非常直接、不用迭代。
而用梯度下降法时,需要确定学习速率,需要迭代,比较麻烦。
但是当特征数目n非常大时,计算 的复杂度为 ,因此计算复杂度很高,这样的话,计算起来很慢;此时就应使用梯度下降法。

你可能感兴趣的:(机器学习)