美文网首页我的收藏玩转大数据数据分析
回归系列之线性回归的关键问题

回归系列之线性回归的关键问题

作者: wujustin | 来源:发表于2016-11-04 20:58 被阅读341次

    如上篇文章, 岭回归、Lasso回归和ElasticNet 回归都是以普通的线性回归为基础,先列举下线性回归的模型公式:

    线性回归模型公式

    岭回归为解决共线性问题,Lasso回归是为解决变量选择的问题, ElasticNet 解决不一致性和group select的问题。简单来说这三个回归算法是对线性回归某些问题的优化。

    本文旨在列举线性回归涉及的关键问题, 后续文章针对每个点进行详细介绍。

    • 模型系数的求解方法
    • 拟合问题
    • 变量选择
    • 正则化

    1.系数的求解方法

    线性回归求解过程其实是求线性回归函数的W系数。求解系数的常见方法包括:最小二乘法和梯度下降法。

    • 最小二乘法
      最小二乘法是通过建立等价关系找到全局最小值, 通过推导, 可得到如下公式:
    W系数求解公式

    由于最小二乘法直接进行矩阵运算(求逆等),尽管可以得到全局最优解。但是在数据很多场景的回归分析或预测问题,其计算效率较低(涉及超大矩阵的求逆运算)。

    • 梯度下降法
      梯度下降法作为迭代法的一种,先给定一个参数向量初始值,然后向目标函数下降最快的方向调整(即梯度方向),在若干次迭代之后找到全局最小。随机梯度下降法的一个缺点是:在接近极值时收敛速度变慢,并且该方法对初始值的选取比较敏感。

    2. 拟合问题

    预测模型通常存在过拟合和欠拟合两种极端情况。 欠拟合是只得到的线性模型不能很好的拟合或者表示训练数据。 过拟合是指线性模型能非常准确的拟合训练数据, 但是对新的预测数据不能很好的拟合或者表示。以最小二乘法为例,如果响应变量和预测变量之间有比较明显的线性关系,最小二乘回归会有很小的偏倚,如果观测数量n远大于预测变量p时,最小二乘回归也会有较小的方差。但是如果n和p比较接近,则容易产生过拟合;如果n<p,最小二乘回归得不到有意义的结果。

    通常解决过拟合问题, 采用的方法就是:通过变量选择来减少变量数目, 以及正则化。

    3. 变量选择

    线性回归的模型,经常有自变量和与部分因变量是无关的,又有些自变量之间本身就是明显相关(即共线性问题), 这些问题会增加模型的复杂性,以及模型的解释能力。针对这问题, 引入变量选择,或者叫特征选择。
    变量的选择方法有:

    • 子集选择 包括逐步回归和最优子集法等,对可能的部分子集拟合线性模型,利用判别准则 (如AIC,BIC,Cp,调整R2 等)决定最优的模型。
    • 收缩方法(shrinkage method) 收缩方法又称为正则化(regularization)。主要是岭回归(ridge regression)和lasso回归。岭回归可以解决共线性问题。Lasso使某些系数的估计为0,达到去除变量的效果。
    • 降维 主成分回归(PCR)和偏最小二乘回归(PLS)的方法。把p个预测变量投影到m维空间(m<p),利用投影得到的不相关的组合建立线性模型。

    4 正则化

    为解决过拟合问题,回归模型可在损失函数的后面加上一个约束条件从而限制模型的复杂度,这个约束条件即为正则化。线性回归的L1正则与L2正则:
    岭回归L2范式:


    岭回归L2正则

    Lasso回归L1范式:

    Lasso回归L1正则

    如下图,假设存在一个二元预测模型x = (x1, x2),对应存在两个系数w=(w1, w2)。 左边图是Lasso回归, 右边表示的是岭回归图。等高线的红色椭圆形是最小二乘法的误差项(或者损失函数,等高线是指误差项取值相同的点的连线), 蓝色部分是惩罚项(正则化项)的约束条件:Lasso是||Beta1|| + ||Beta2|| < t, 图形如左边, 岭回归的惩罚项是||Beta1||^2 + ||Beta2||^2 < t,如右边蓝色圆圈。

    L1和L2正则化

    加入正则化后模型求得的系数解w的值, 一定是在损失函数项和正则化项之间,即出现在图中损失函数项等值线与正则化项等值线相交处。采用L1范数时误差项的等值线与惩罚项等值线的交点出现在(参数空间)坐标轴上,即w1或w2为0;而在采用L2范数时,两个等值线的相交点常出现在某个象限内(如图示第2象限),即w1或w2均非0。因此Lasso具有选择变量的作用。

    PS: 惩罚项中还存在一个参数,是lambda, 这是一个可调参数。求这个参数常见方法时:交叉验证或者Cp准则。

    相关文章

      网友评论

      • fredx:能在具体讲下lambda怎么确定,你说的比如交叉验证,有相关链接吗,多谢
        wujustin:交叉验证是样本分成训练集和验证集, 设置一个指标,比如rmse, lambda取不同值, 看在训练集和验证集上指标的情况, 选指标最好时的lambda值。

      本文标题:回归系列之线性回归的关键问题

      本文链接:https://www.haomeiwen.com/subject/buevuttx.html