在第四讲中,主要学习了多变量线性回归(Linear Regression with Multiple Variables)的多维特征、多变量梯度下降、特征缩放、特征和多项式回归以及正规方程等。
# 多维特征(Multiple Features)
为房价模型增加更多的特征,如房间楼层数等,则构成了一个含有多个变量的模型。
假设$h_\theta(x)=\theta_0+\theta_1*x_1+\theta_2*x_2+…+\theta_n*x_n$,
设x_0=1,则存在$h_\theta(x)=\theta^T*X$,其中T表示矩阵转置且
$\theta= \left [ \begin{matrix} \theta_0\\ \theta_1 \\\vdots \\ \theta_n \end{matrix} \right] \quad X=\left[ \begin{matrix} x_0 \\x_1 \\ \vdots \\x_n \end{matrix} \right] $
# 多变量梯度下降(Gradient Descent for Multiple Variables)
多变量线性回归和单变量线性回归类似,代价函数也为所有建模误差的平方和,即
$J(\theta_0,\theta_1,\cdots,\theta_n)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2 \quad 其中,h_\theta(x)=\theta^T*X=\theta_0+\theta_1*x_1+\theta_2*x_2+…+\theta_n*x_n$
# 梯度下降法实践1-特征缩放(Feature Scaling)
在面对多维特征向量时,我们要保证这些特征都具有相近的维度。以房价问题为例,若房屋尺寸为0-2000平方英尺,而房间数量为0-5,以这两个参数分别为横纵坐标绘制代价函数的等高线图时,图形会特别扁,导致梯度下降算法需要非常多次的迭代才能收敛。此时,解决方法一般为尝试将所有特征的尺度都尽量缩放到-1到1之间。
# 梯度下降法实践2-学习率(Learning Rate)
我们通过绘制当前迭代次数和代价函数的图表来观测梯度下降算法是否正确工作
梯度下降算法的每次迭代受到学习率的影响,如果学习率α 过小,则达到收敛所需的迭代次数会非常高;如果学习率α 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。 通常可以考虑尝试些学习率:
α=0.01,0.03,0.1,0.3,1,3,10
# 特征和多项式回归(Features and Polynomial Regression)
线性回归并不适用于所有数据,有时我们需要用曲线来拟合我们的数据,如多元二次方程或三次方程。
注:若我们采用多项式回归模型,在运行梯度下降算法前,特征缩放非常重要。
# 正规方程(Normal Equation)
相比于线性回归中的梯度下降法(通过多次迭代算法来得到代价函数的局部最小值),有时候正规方程解决线性回归问题更高效。正规方程是通过求解代价函数导数为0来找出使得代价函数最小的参数的。
假设我们的训练集特征矩阵为X(包含了$x_0=1$),并且我们的训练集结果为向量y,则利用正规方程可解出向量$\theta=(X^TX)^{-1}X^Ty$
总结一下,只要特征变量数量小于一万,通常使用正规方程法,而不使用梯度下降法。 随着我们要讲的学习算法越来越复杂,例如,当我们讲到分类算法,像逻辑回归算法, 我们会看到, 实际上对于那些算法,并不能使用正规方程法。对于那些更复杂的学习算法, 我们将不得不仍然使用梯度下降法。因此,梯度下降法是一个非常有用的算法,可以用在有 大量特征变量的线性回归问题。或者我们以后在课程中,会讲到的一些其他的算法,因为标 准方程法不适合或者不能用在它们上。但对于这个特定的线性回归模型,标准方程法是一个 比梯度下降法更快的替代算法。所以,根据具体的问题,以及你的特征变量的数量,这两种 算法都是值得学习的。
参考链接
1.https://github.com/fengdu78/Coursera-ML-AndrewNg-Notes
2.https://github.com/HuangCongQing/MachineLearning_Ng
注:码字不易,若您转载,请务必注明出处:https://www.cnblogs.com/jngwl/
原文地址:https://www.cnblogs.com/jngwl/p/10146184.html