线性回归

1. 一元线性回归

  假设函数:

  目标:选择合适的参数,使得建模误差的平方和最小。即最小化代价函数:

         (其中:m为训练样本的数量)

  建模误差:预测值和实际值之间的差距。

  注:代价函数,也可以称之为损失函数。上述代价函数也叫平方误差函数,它是解决回归问题最常用的代价函数。除此之外,还存在其他的代价函数。

  常用的求解线性回归参数的方法:最小二乘法梯度下降法

2. 多元线性回归

  假设函数:  或者 (x0 = 1)

  也可以简化为:

  代价函数:

  最优化参数求解的思路和方法与一元线性回归相同。

  

注:
1. 数据的归一化处理:使特征具有相近的尺度,帮助梯度下降算法更快的收敛;
2. 学习率:尝试法。
    如果学习率 α 过小,则达到收敛所需的迭代次数会非常高;
    如果学习率 α 过大,每次迭代可能不会减小代价函数,可能会越过局部最小值导致无法收敛。

3. 多项式回归

  假设函数(以三次方模型为例):

  可以使用:

  

将其转换为线性回归处理。

4. 正则化回归方法

  正则化方法可以避免模型的过拟合,防止模型过于复杂。

  (1)岭回归

  最小二乘估计是最小化残差平方和(RSS):

 



岭回归在最小化RSS的计算里加入了一个收缩惩罚项(正则化的l2范数)

 

  这个惩罚项中lambda大于等于0,是个调整参数。各个待估系数越小则惩罚项越小,因此惩罚项的加入有利于缩减待估参数接近于0。重点在于lambda的确定,可以使用交叉验证或者Cp准则。

  岭回归优于最小二乘回归的原因在于方差-偏倚选择。随着lambda的增大,模型方差减小而偏倚(轻微的)增加。

  岭回归的一个缺点:在建模时,同时引入p个预测变量,罚约束项可以收缩这些预测变量的待估系数接近0,但并非恰好是0(除非lambda为无穷大)。这个缺点对于模型精度影响不大,但给模型的解释造成了困难。这个缺点可以由lasso来克服。(所以岭回归虽然减少了模型的复杂度,并没有真正解决变量选择的问题) 

 (2)Lasso回归

lasso是一种相对较新的方法,参考[1],[2]。关于lasso的发展和一些思想介绍可以参考网上很有名气的一篇文章《统计学习那些事》http://cos.name/2011/12/stories-about-statistical-learning/

lasso是在RSS最小化的计算中加入一个l1范数作为罚约束:

 



l1范数的好处是当lambda充分大时可以把某些待估系数精确地收缩到0。

关于岭回归和lasso,在[3]里有一张图可以直观的比较([3]的第三章是个关于本文主题特别好的参考):

 



关于岭回归和lasso当然也可以把它们看做一个以RSS为目标函数,以惩罚项为约束的优化问题。

 

 

 

  (3)elastic net

 

   elastic net融合了l1范数和l2范数两种正则化的方法,上面的岭回归和lasso回归都可以看做它的特例:

 



  elastic net对于p远大于n,或者严重的多重共线性情况有明显的效果。 对于elastic net,当alpha接近1时,elastic net表现很接近lasso,但去掉了由极端相关引起的退化化或者奇怪的表现。一般来说,elastic net是岭回归和lasso的很好的折中,当alpha从0变化到1,目标函数的稀疏解(系数为0的情况)也从0单调增加到lasso的稀疏解。

 

 

  

 

 

posted @ 2017-03-26 11:04  Alfred2017  阅读(320)  评论(0编辑  收藏  举报