机器学习面试必知:LR中的共线性问题和解决方法

39 篇文章 3 订阅
23 篇文章 1 订阅

多重共线性是使用线性回归算法时经常要面对的一个问题。在其他算法中,例如决策树或者朴素贝叶斯,前者的建模过程时逐渐递进,每次都只有一个变量参与,这种机制含有抗多重共线性干扰的功能;后者假设变量之间是相互独立的。但对于回归算法来说,都要同时考虑多个预测因子,因此多重共线性不可避免。

我们先来看共线性的原理,假设k个自变量的多元线性回归模型: y = θ 0 + θ 1 x 1 + . . . + θ k x k = θ T x + ϵ y=\theta_{0}+\theta_{1}x_{1}+... +\theta_{k}x_{k}=\theta ^{T}x+\epsilon y=θ0+θ1x1+...+θkxk=θTx+ϵ ϵ ∼ N ( 0 , σ 2 ) \epsilon \sim N(0,\sigma^{2}) ϵN(0,σ2)
利用最小二乘法可得到参数的估计为: θ ^ = X † y = ( X T X ) − 1 X T y \hat{\theta}=X^{\dagger}y=(X^{T}X)^{-1}X^{T}y θ^=Xy=(XTX)1XTy如果X不是满秩的话,会有无穷多个解。如果变量之间存在共线性,那么X近乎是不满秩的, X T X X^{T}X XTX近乎是奇异的。
我们从统计学的角度来看: V a r ( θ ^ − θ ) = V a r [ ( X T X ) − 1 X T ϵ ] Var(\hat{\theta}-\theta)=Var[(X^{T}X)^{-1}X^{T}\epsilon] Var(θ^θ)=Var[(XTX)1XTϵ] V a r ( θ ^ ) = σ 2 ( X T X ) − 1 Var(\hat{\theta})=\sigma^{2}(X^{T}X)^{-1} Var(θ^)=σ2(XTX)1 V a r ( θ ^ i ) = σ 2 ( n − 1 ) V a r ( x j ) ⋅ 1 1 − R i 2 Var(\hat{\theta}_{i})=\frac{\sigma^{2}}{(n-1)Var(x_{j})}\cdot\frac{1}{1-R_{i}^{2}} Var(θ^i)=(n1)Var(xj)σ21Ri21如果方差膨胀因子 1 1 − R i 2 \frac{1}{1-R_{i}^{2}} 1Ri21很大时,也就是 R i 2 R_{i}^{2} Ri2趋向于1时,方差会变得异常大。
解决方法如下:

  1. PCA等降维方法。因为在原始特征空间中变量之间相关性大,很容易想到通过降低维度的形式来去除这种共线性。
  2. 正则化。使用岭回归(L2)或者lasso回归(L1)或者elasticnet回归(L1+L2)
  3. 逐步回归法
  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值