美文网首页
不只是线性回归(2):多重共线性与正则化

不只是线性回归(2):多重共线性与正则化

作者: uglybachelor | 来源:发表于2018-08-30 15:54 被阅读94次

    Intro

    线性回归(Linear Regression)是机器学习的基本方式,但为了提升其性能,人们发明了无数优化方式。这个“不只是线性回归”系列就是为了记录我在日常的学习中发现的,不只是简单的线性回归的算法、优化方式、数学原理等。

    2. 多重共线性(Multicollinearity)

    2.1 什么是多重共线性?

    多重共线性,是指特征之间存在一组或多组线性关系。会导致训练出的模型失真。例如著名的Boston Housing数据集中,'INDUS', 'RAD', 'TAX'几个特征之间就存在严重的多重共线性(亲测)。

    2.2 如何发现多重共线性?

    判断特征间是否存在多重共线性貌似有N种方法,我一般就使用最直接的方式:看相关系数。计算两个特征的相关系数及P值,如果相关系数大于0.7,且P值小于0.05的话,一般就可以认为这两个特征存在共线性。

    举例来说,下图是Boston Housing数据集13个特征间的相关系数矩阵,可以看出其中存在共线性的特征是哪几个。

    collinearity.png

    图1:相关系数矩阵

    在网上看到还有根据Tolerance(容忍度)和VIF(方差膨胀因子)的判断方式,原谅一天统计学都没有学过的我不想去深究了。

    2.3 如何解决多重共线性?

    简单粗暴的方式,当然是判断出并剔除这些特征中次要或可替代的那些,相当于减少特征间重复表达的信息。我相信一定有N种方式来做上述判断的实现,但追(zhi)求(xiang)简(tou)洁(lan)的我一般采用主成分分析(PCA)的方式。

    除了feature engineering的方式,我们还可以采用下面要介绍的正则化方式。

    3. 线性回归的正则化(regularization)

    正则化听上去非常高端的样子,但其实简单的说,就是在原有的损失函数(cost function)后面加一个正则化项(regularizer),这个正则化项可以避免模型参数过于发散无法收敛,也可以避免过拟合的现象。下面介绍的两种正则化方法,分别用的是两种不同的正则化项:

    • L1范数:所有参数的绝对值之和,对应Lasso回归;
    • L2范数:所有参数的平方和,对应岭回归。

    以上所说的参数都是不包括 theta0 的。

    相关文章

      网友评论

          本文标题:不只是线性回归(2):多重共线性与正则化

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