在线性回归算法求解中,常用的是最小二乘法与梯度下降法,其中梯度下降法是最小二乘法求解方法的优化,但这并不说明梯度下降法好于最小二乘法,实际应用过程中,二者各有特点,需结合实际案例具体分析。
-
最小二乘法求解线性回归
线性回归的基本模型设定为:
在此基础上构建代价函数:
-
梯度下降法求解线性回归
梯度下降法是一种在学习算法及统计学常用的最优化算法,其思路是对theta取一随机初始值,可以是全零的向量,然后不断迭代改变θ的值使其代价函数J(θ)根据梯度下降的方向减小,直到收敛求出某θ值使得J(θ)最小或者局部最小。其更新规则为:
梯度下降法中学习率alpha代表了逼近最低点的速率,既不能太大也不能太小,过大可能会出现不断地在最低点附近反复震荡的情况,无法收敛;而过小,则导致逼近的速率太慢,即需要迭代更多次才能逼近最低点。因此,可以用一些数值试验。
另外,在解决实际问题中,往往会出现x里的各个特征变量的取值范围间的差异非常大,如此会导致在梯度下降时,由于这种差异而使得J(θ)收敛变慢,特征缩放便是解决该类问题的方法之一,特征缩放的含义即把各个特征变量缩放在一个相近且较小的取值范围中,例如-1至1,0.5至2等,其中,较简单的方法便是采用均值归一化,也就是标准化处理。 二者的应用比较
相对于最小二乘法来说,梯度下降法须要归一化处理以及选取学习速率 ,且需多次迭代更新来求得最终结果,而最小二乘法则不需要。
相对于梯度下降法来说,最小二乘法须要求解(XTX)-1,其计算量为o(n3),当训练数据集过于庞大的话,其求解过程非常耗时,而梯度下降法耗时相对较小。
所以,当模型相对简单,训练数据集相对较小,用最小二乘法较好;对于更复杂的学习算法或者更庞大的训练数据集,用梯度下降法较好,一般当特征变量小于10的四次方时,使用最小二乘法较稳妥,而大于10的四次方时,则应该使用梯度下降法来降低计算量。