如何理解线性回归的多重共线性、岭回归和Lasso(案例:波士顿房价数据集)

前言:本文主要介绍多重共线性、岭回归和Lasso的概念、公式推导及sklearn应用,使用的数据集为波士顿房价数据集、加利福尼亚房价数据集。

目录

如何从行列式理解多重共线性?

如何理解使用岭回归解决多重共线性?

如何在sklearn中使用linear_model.Ridge岭回归?(案例:波士顿房价数据集)

如何使用岭迹图选择最佳正则化参数?(案例:希尔伯特矩阵)

如何在sklearn中使用linear_model.RidgeCV,带交叉验证的岭回归?(案例:波士顿房价数据集)

如何理解Lasso,以及用Lasso进行特征选择?(案例:加利福尼亚房价数据集)

如何在sklearn中使用linear_model.LassoCV,带交叉验证的Lasso?(案例:加利福尼亚房价数据集)


如何从行列式理解多重共线性?

之前提及使用最小二乘法求解多元线性回归的损失函数,公式推导中需要左乘(X^TX)^{-1},但是没有讨论(X^TX)^{-1}是否存在。

(X^TX)^{-1}=\frac{1}{|X^TX|}X^TX^*|X^TX|为行列式,作为分母,那么等式成立的条件自然是|X^TX|不能等于0。

如何计算矩阵的行列式?

3条↘对角线元素相乘,然后相加,依次减去3条↙对角线元素相乘。

任何矩阵都有行列式,行列式通过初等行/列变换后大小不变,所以可以将行列式转换成梯形行列式,从而直接计算对角线元素之积即可求得行列式。


行列式不为0的条件为:当行列式通过变幻,变为对角矩阵时,对角线上的元素不为0。这种满足行列式变换后对角线元素不为0的矩阵,称为“满秩矩阵”。

可以通过numpy计算矩阵是否满秩

np.trace(array) # 计算矩阵对角线元素之和
np.linalg.det(array) # 计算矩阵的行列式,为0说明不满秩

如果|X^TX|=0,分母出现“除0错误”,称为特征存在精确相关关系;如果|X^TX|趋近于0,\frac{1}{|X^TX|}趋近于+\infty,称为特征存在高度相关关系。以上两种情况下,w都无法计算得出结果,统称为存在多重共线性。 

多重共线性属于相关性的一种,当特征存在高度相关、精确相关时,则称特征存在多重共线性。


多重共线性的解决方案有如下思路:

  1. 使用统计学的先验思路,对特征进行相关性检验或降维;计算量增加;
  2. 使用前向逐步回归法,筛选对模型高度相关的特征;计算量增大;
  3. 对线性回归进行改进,使用岭回归、Lasso、弹性网等方式改进。

如何理解使用岭回归解决多重共线性?

岭回归解决多重共线性的办法为:在多元线性回归的损失函数上加上正则项:w的L2范式乘以正则化系数α,公式为:

\min_w||\boldsymbol{Xw}-\boldsymbol{y}||_2^2+\alpha||\boldsymbol{w}||_2^2

岭回归解决多重共线性的原理:通过对|X^TX|对角线加上一个α,使|X^TX|变成满秩矩阵,从而消除多重共线性。其公式推导情况如下:

?没懂的地方:为什么上面是Xw-y,下面是y-Xw?

  • 1
    点赞
  • 50
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你在学习Python数据分析的时候,是否遇到过在这些问题? 别慌!这些都是数据科学入门常见问题。从入门到上手再到解决实际问题,数据科学看似复杂,但如果你掌握了正确的学习方法,完全可以极速入门。 【职场人进阶必备  数据分析/挖掘一点通】 如今的职场上,90%以上的岗位都会涉及数据问题。 以产品文案岗位为例,在一个新产品推向市场之前,文案需要考虑: 此时,可以关注一下市场上已有的相关产品推广数据,如:哪些文案打开率更高?哪些文案转化更好?目标用户的购买习惯如何? 以此作为下一步工作开展的依据,对产品文案工作者来说,可以少走很多弯路。 学会数据分析/挖掘,等于站巨人的肩膀上工作,轻松且高效。 【爬虫、数据分析、数据挖掘知识点三合一】数据问题一网打尽 本课程将知识点悉数融入实战项目,不空谈语法,帮助学员在实践中获取知识,目标是:让学员能自主完成数据采集、数据分析与数据挖掘。 学习完本课程,你可以熟练掌握: 【实战案例超实用,轻松拥有“睡后收入”!】 本课程以股票案例为主线,串联爬虫、数据分析以及数据挖掘多个知识点。 通过实战案例演练,你可以全面掌握股票收益的分析和预判方法,在收获新技能的同时,也有机会获得“睡后收入”! 四大优势: 三重权益:

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值