目录
1)Multiple Features
2)Gradient descent for multiple variables
3)Gradient descent in practice 1: Feature Scaling
4)Gradient descent in pratice2: Learning rate
5)Features and polynomial regression
6)Normal equation
前面我们探讨了单变量的回归模型,现在我们对房价预测模型增加更多的特征,构成一个多变量的模型。
1)Multiple Features
下面是我们增加后的新的特征,有面积大小,卧室数量,楼层数,房子年龄。
增加了新的特征后,我们解释一下我们后面用到的符号,分别是:
- 特征数量 n;
- 训练集输入样例 x(i);
- 以及每个输入样例对应的第 j 个特征;
此时,我们要重新定义我们对多个特征的预测模型:
为了方便向量表示,我们定义X0=1,此时预测模型可以写成两个向量相乘,这就是多变量线性回归。
2)Gradient descent for multiple variables
与单变量线性回归类似,我们也构建一个代价函数,这个代价函数是所有误差的平方和,于是我们得到的梯队下降算法如下,还是要 同时更新每个参数。
我们把之前的单变量线性回归梯度下降和多变量梯队下降进行比较,如下:
3)Gradient descent in practice 1:Feature Scaling
我们希望的是所有特征都具有相近的尺度,这能帮助梯度下降算法更快收敛,下面左边这幅图显示了特征数值范围不一致的时候,收敛速度很慢,而右边这幅图进行缩放之后,收敛速度更快。
解决办法是尝试使所有特征的尺度都收敛到-1到1之间,如下图所示:
最简单的办法就是均值化,特征减去它的均值再除以标准差:
4)Gradient descent in pratice2:Learning rate
先回顾我们之前的梯度下降算法求参数的公式,我们要决定的是如何选择学习率以及判断我们的梯度下降算法是正确的:
我们可以绘制迭代次数和代价函数的图来观测算法何时收敛,如下图示所示,每次迭代,代价函数都下降:
下图显示了,梯度下降算法是否正常工作,这和学习率有很大关系,如果学习率较大的话,很可能会越过代价函数局部最小点,变得发散:
学习率太大或太小都不合适,一般的选择是这样选择的,每次递增三倍:
5)Features and polynomial regression
再来看之前我们的房价预测的例子,预测模型与长宽有关,但其实也跟面积有关,我们可以得到一个新的预测模型,这里进行了特征的重新整合。
下面两次图显示了如果我们的模型不是一次的,可以把非线性转换成线性模型来表示:
6)Normal equation
前面我们使用梯度下降算法求参数,但我们也可以使用正规方程来求参数。下面显示了我们可以直接令偏导数为零来求参数这类似与求极值点。
下面是正规方程的求解公式:
下面来比较一下梯度下降和正规方程之间的优缺点,这和特征数量大小有很强的的关系。