机器学习2——Linear Regression with Multiple Variables
Debug 调试。。bug 问题 iteration 迭代。。。 convergence 收敛。
以上是对上期的补充。以下进入正题。
多特征
Gradient Descent for Multiple Variables
多变量代价函数相对于单变量代价函数,没有什么变化。唯一变化就在于,原先是一个数,现在成了一个矩阵的数。公式等没有其他变化。
Gradient Descent in Practice I (实践1)- Feature Scaling(特征缩放)
下图中,左图是以原始数据绘制的代价函数轮廓图,右图为采用特征缩放。左图中呈现的图像较扁,相对于使用特征缩放方法的右图,梯度下降算法需要更多次的迭代。
这里特征缩放叫做均值归一化(Mean normalization)方法。它的公式如下:
Gradient Descent in Practice II - Learning Rate
梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,我们
可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。
也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001)
进行比较,但通常看上面这样的图表更好。
梯度下降算法的每次迭代受到学习率的影响,如果学习率 α 过小,则达到收敛所需的迭
代次数会非常高;如果学习率 α 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。
通常可以考虑尝试些学习率:
α=0.01, 0.03, 0.1, 0.3, 1, 3, 10
Features and Polynomial(多项式) Regression
特征选取时,可以自己归纳总结,定义一个新的特征,用来取代或拆分旧的一个或多个特征。比如,对于房屋面积特征来说,我们可以将其拆分为长度和宽度两个特征,反之,我们也可以合并长度和宽度这两个特征为面积这一个特征。
线性回归只能以直线来对数据进行拟合,有时候很多数据需要使用曲线来对数据进行拟合,即多项式回归(Polynomial Regression)。
通常我们需要先观察数据然后再决定准备尝试怎样的模型。 另外,我们可以令:
从而将模型转化为线性回归模型。
根据函数图形特性,我们还可以使:
正规方程(Normal Equation)
正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:
推导出:
注:对于那些不可逆的矩阵(通常是因为特征之间不独立,如同时包含英尺为单位的尺
寸和米为单位的尺寸两个特征,也有可能是特征数量大于训练集的数量),正规方程方法是不能用的。
总结一下,只要特征变量的数目并不大,标准方程是一个很好的计算参数 θ 的替代方
法。具体地说,只要特征变量数量小于一万,我通常使用标准方程法,而不使用梯度下降法。对于这个特定的线性回归模型,标准方程法是一个比梯度下降法更快的替代算法。推导过程放在下面仅供参考,需要再证明。
Normal Equation Noninvertibility(不可逆)
这部分前面提过了两次,这里做个总结。
Matlab Tutorial(指导,教程)
见 后面跟新的作业。
参考文献:1.黄海广博士的机器学习笔记。
2.知乎Scruel的机器学习笔记。