多变量的线性回归

1.多维特征

多变量的线性回归
这个公式中有n+1个参数和n 个 变量,为了使公式简化,这里引入x0x_0=1,则公式为
hθ(x)=θ0x0+θ1x1.......θnxn=θTXh_\theta(x)=\theta_0x_0+\theta_1x_1.......\theta_nx_n=\theta^TX其中T表示矩阵的转置

2.多变量的梯度下降

代价函数表示:
多变量的线性回归
多变量线性回归的批量梯度下降算法为:
多变量的线性回归
求导后的
多变量的线性回归
多变量的线性回归

3.特征的缩放

多变量的线性回归

4.学习率

梯度下降算法收敛所需要的迭代次数根据模型的不同而不同,我们不能提前预知,我们可以绘制迭代次数和代价函数的图表来观测算法在何时趋于收敛。
多变量的线性回归
也有一些自动测试是否收敛的方法,例如将代价函数的变化值与某个阀值(例如 0.001)进行比较,但通常看上面这样的图表更好。梯度下降算法的每次迭代受到学习率的影响,如果学习率α\alpha过小,则达到收敛所需的迭代次数会非常高;如果学习率α\alpha过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。
通常可以考虑尝试些学习率:
α=0.01,0.03,0.1,0.3,1,3,10\alpha =0.01,0.03,0.1,0.3,1,3,10

5.特征和多项式回归

线性回归并不适用于所有数据,有时我们需要曲线来适应我们的数据,比如一个二次方模型:hθ(x)=θ0+θ1x1+θ2x22h_\theta(x) =\theta_0 + \theta_1x_1 + \theta_2x_2^2
或者三次方模型: hθ(x)=θ0+θ1x1+θ2x22+θ3x33h_\theta(x) =\theta_0 + \theta_1x_1 + \theta_2x_2^2+\theta_3x_3^3
多变量的线性回归
通常我们需要先观察数据然后再决定准备尝试怎样的模型。 另外,我们可以令:x2=x22,x3=x33x_2 = x_2^2, x_3 = x_3^3,从而将模型转化为线性回归模型

正规方程

到目前为止,我们都在使用梯度下降算法,但是对于某些线性回归问题,正规方程方法
是更好的解决方案。如多变量的线性回归
正规方程是通过求解下面的方程来找出使得代价函数最小的参数的:
多变量的线性回归
假设我们的训练集特征矩阵为X 并且我们的训练集结果为向量 y,则利用正规方程解出向量
多变量的线性回归
上标 T 代表矩阵转置,上标-1 代表矩阵的逆
多变量的线性回归
总结一下,只要特征变量的数目并不大,标准方程是一个很好的计算参数θ\theta的替代方法。具体地说,只要特征变量数量小于一万,我通常使用标准方程法,而不使用梯度下降法。随着我们要讲的学习算法越来越复杂,例如,当我们讲到分类算法,像逻辑回归算法,我们会看到,实际上对于那些算法,并不能使用标准方程法。对于那些更复杂的学习算法,我们将不得不仍然使用梯度下降法。因此,梯度下降法是一个非常有用的算法,可以用在有大量特征变量的线性回归问题。或者我们以后在课程中,会讲到的一些其他的算法,因为标准方程法不适合或者不能用在它们上。但对于这个特定的线性回归模型,标准方程法是一个
比梯度下降法更快的替代算法。所以,根据具体的问题,以及你的特征变量的数量,这两种算法都是值得学习的.