1、多元线性回归的表示
从之前介绍过的房价预测问题说起,加入当前我们得到每一条训练样本中的特征不止一个,如下图所示:
则我们可以针对上述所有特征进行更加准确的回归预测。下面定义一系列符号进行说明: xj(i)表示第i个训练样本中的第j的特征的值; x(i)表示第i个训练样本的所有输入特征; m表示训练样本的数量; n表示特征的数量。从而可以定义出多元回归的 hypothesis function 为
hθ(x)=θ0+θ1x1+θ2x2+...+θnxn
若抽象为矩阵相乘的形式,则可以表示成下述形式:
2、多变量梯度下降
上述1中已经给出了 h y p o t h e s i s f u c n t i o n hypothesis\ fucntion hypothesis fucntion,而我们需要估计的参数为: θ 0 , θ 1 , . . . , θ n \theta_0,\ \theta_1, \ ..., \theta_n θ0, θ1, ...,θn,代价函数为:
之后使用梯度下降方法重复下述过程:
Repeat{θj:=θj−α∂θj∂J(θ0,θ1,...,θn)}
将上式展开之后如下所示:
Repeatuntilconvergence{θ0:=θ0−αm1∑i=1m(h(xi)−yi)⋅x0θ1:=θ1−αm1∑i=1m(h(xi)−yi)⋅x1θ2:=θ2−αm1∑i=1m(h(xi)−yi)⋅x2
θn:=θn−αm1∑i=1m(h(xi)−yi)⋅xn}
3、特征缩放
当梯度下降算法中输入的各个特征值的取值范围在一个相似的维度时,算法可以更快地进行收敛。因为当各个特征值取值范围差距越大时,以两个特征为例,则将取值范围差距大的训练集的等高线图将变得更加狭长,而这种狭长的等高线图将花费更多的时间来达到收敛状态。
3.1 除以范围内最大值
这种特种缩放的方式是将训练集中每一条训练样本的每一个特征的值均除以这个特征在所有训练集中的(最大值–最小值),从而将每一个特征的值缩放到[-1,+1]的范围之内。上图采用的就是除以最大值进行缩放的方式。
xi:=sixi
其中, s i s_i si可以使用当前特征所有数据的(最大值–最小值)或者当前特征所有数据的标准差
3.2 均值归一化
在3.1方法的基础之上,首先将各个特征的值减去对应于当前特征的所有训练样本的平均值,之后在用求得的差除以(最大值–最小值)进行归一化处理。
xi:=si(xi−μi)
3.3 特征和多项式回归
当用直线无法准确衡量出数据的特征时,可以选择采用二次\三次\ 1 2 \frac{1}{2} 21次函数来进行数据的拟合,采用这些函数进行拟合被称为多项式回归。当采用多项式回归时,特征缩放显得尤为重要,因为假设当原始数据的范围为[1,1000],则平方之后的数据范围就是[1,1000000],而三次方之后的数据范围就是[1, 1 0 9 10^9 109],差距越来越大。
4、学习率 α
学习率选择的大小关乎梯度下降算法的收敛性好坏,当 α 选择过大时,梯度下降算法可能出现不收敛的情况;当 α 选择过小时,梯度下降算法收敛的速度会较慢,需要较多的迭代次数才能得到最优解。
为了选择出合适的 α ,可以绘制代价函数随迭代次数变化的图像如下图所示:
一种通常采用的终止迭代的方式是:当梯度下降单次缩减的目标函数值大小小于10^{-3} ,则认为算法已经收敛到了局部最优解,终止迭代。
5、正规方程
不同于梯度下降算法,正规方程方法使用解析法来求解参数(集合)。这种方法的本质就是对于代价函数 J(θ)中的所有 θ 都求偏导数,之后让所有偏导数都等于0,之后通过求解方程组求解到最优的参数 θ 的值。最优参数 θ 的值可以通过下式给出:
θ=(XTX)−1XTy
其中, X表示特征数据, y表示结果数据,如下例子所示:
同时,在使用正规方式时,不需要进行特征缩放操作。梯度下降法和正规方程法的区别如下所示:当特征数量超过10000时,采用梯度下降法更划算。
在某些情况下,特征矩阵的转置和特征矩阵的向量积 XTX可能不可逆,如存在冗余特征,使得某两个或者多个特征向量之间线性相关;或者存在过多的特征,如特征数量超过训练集中的训练样本数量。处理这种问题可以找出线性相关的特征向量之后保留其中一个,或者删除多于的变量,或者将特征向量进行正规化。