用LASSO回归做特征筛选使用踩坑记

什么时候应该用LASSO回归进行特征筛选?使用时容易踩的坑你都避开了吗?Lasso回归的原理(请看我的另一篇博客: Lasso回归系列二:Lasso回归/岭回归的原理)

顺便结合最近实验犯的错误,给大家谝一谝(陕西的都懂哈)

我采用如下pipeline来进行医学图像分类(数据集包含903张医学影像)

1、使用三个不同的神经网络模型对每张图片提取1024维特征

2、将三组特征以concate方式拼接后送入XGBoost做分类

这个最初的pipeline存在两个BUG

BUG1: 拼接后的特征是3072维,远大于样本数,这样的必然会出现过拟合

BUG2: 为了解决BUG1,我使用了Lasso进行特征筛选,但此时我犯下了第二个错误:送入Lasso的特征我没有进行归一化,这真是为难了Lasso这个线性回归器,所以你需要设置normalize=True,将输入Lasso的数据转化成正态分布,消除特征量纲,有助于线性回归模型更好地学习。

from sklearn.linear_model import Lasso, LassoCVlasso = Lasso(alpha=lasso_alpha, random_state=1, normalize=True)
lasso.fit(train_data, train_labels)
# 相关系数
mask = lasso.coef_ != 0.0
data = train_data.loc[:, mask] #然后将筛选后的data再送入XGBoost进行分类

如果想获取最佳的lasso系数,可以交叉验证进行选出最佳的lasso系数,然后再进行上面的Lasso拟合

# 使用Lasso进行特征提取
lambdas = np.logspace(-5,1,100)
lasso_cv = LassoCV(alphas=lambdas, normalize = True, cv=5)
lasso_cv.fit(train_data, train_labels)
print(lasso_cv.alpha_)

Lasso回归本质上是加入了L1-norm作为正则项的回归方法,所以还可以直接用Lasso回归去拟合一些线性问题。

关于Lasso回归的具体应用可以参考Kaggle房价预测代码:https://www.kaggle.com/code/miguelfzzz/house-price-prediction-lasso-ridge-and-more#5.-Modelling-

Lasso回归系列一:用LASSO回归做特征筛选踩坑记相关推荐

  1. Lasso回归系列二:Lasso回归/岭回归的原理

    Lasso回归/岭回归的原理 在学习L1,L2正则化的作用和区别时,我们总是会看到这样的一副图片: 这幅图片形象化地解释了L1,L2对线性模型产生的不同的约束效果. 我最开始其实是不太理解为什么要这么 ...

  2. electron 打包把node代理服务打包进去_专题:让C++给node做技术加持(三)编译electron本地模块踩坑记

    欢迎来到我的专题文章:<让C++给node做技术加持>系列.更多内容,持续更新中,欢迎关注. 往期目录: 专题:让C++给node做技术加持(一)环境搭建,项目运行 专题:让C++给nod ...

  3. 用WT516P6Core离线语音模块在烧录和连接MCU时要注意避开的坑,要不挠掉头发也钻不出来!我差点套进去了,还好他们技术人员给力!把我给扯出来了!做了一个踩坑记录分享给大家

    为什么会选择用WT516P6Core离线语音模块呢?原因有几点,一是他支持自定义语音,虽然说现在是针对开发爱好者给的是一个公共帐号,也就是同一个入口,使用的是同一个帐号,都可以在上面建项目.发布项目, ...

  4. java 是否含有日文_Java踩坑记系列之Arrays.asList

    阅读本文大概需要6分钟 1. java.util.Arrays.asList()可以方便的把一个数组转成ArrayList集合来使用,但是如果对集合使用增加或删除元素的操作将会报错,如下: List ...

  5. woe分析_用IV和WOE来做特征筛选

    什么是变量的离散化 变量的离散化就是只抽取出一个变量,分析变量当中的分组与标签的分布情况. 比如对于某个活动客户有响应和不响应的情况(这里的响应与否就是我们的标签),有多个变量: 最近一个月是否有购买 ...

  6. Lasso回归系列四:Group Lasso,Sparse Group Lasso

    Lasso变体:Group Lasso,Sparse Group Lasso 关于Lasso回归的讲解可以看我的另一篇博客:Lasso回归系列二:Lasso回归/岭回归的原理 Group Lasso ...

  7. 竞赛中如何做特征工程

    对话1:特征工程流程 竞赛小白 在参加结构化比赛时,做特征工程时候,是先筛选特征,还是先做特征编码呢? 鱼佬 可以先利用一些统计值筛选特征,比如缺失比例大于99%,或者信息量较少的特征. 然后再去做特 ...

  8. 影像组学视频学习笔记(7)-特征筛选之LASSO回归(代码)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(7)主要介绍: 特征筛选之LASSO回归分析(代码实现) import pandas as pd import numpy as np ...

  9. 影像组学视频学习笔记(6)-特征筛选之LASSO回归(理论)、Li‘s have a solution and plan.

    本笔记来源于B站Up主: 有Li 的影像组学系列教学视频 本节(6)主要介绍: 特征筛选之LASSO回归分析(理论通俗讲解) LASSO (Least Absolute Shrinkage Selec ...

最新文章

  1. 中了Globelmposter3.0,后缀为4444怎么解决勒索病毒解密
  2. 【鸿蒙 HarmonyOS】创建 Java 语言 HarmonyOS 手机应用 ( 首次进入 DevEco Studio 配置环境 | 创建 Java 手机工程 | 鸿蒙工程代码目录简介 )
  3. Java编程程序异常处理方法
  4. linux nls_lang oracle,linux操作系统环境变量LANG和NLS_LANG的区别
  5. 用python数据分析excel多地天气_Python实现天气查询功能(外加Excel技巧)
  6. Spring源码解析系列汇总
  7. CSS3科技雷达扫描动画js特效
  8. python八卦图时钟代码-Python检测一个对象是否为字符串类的方法
  9. Jaspergold形式验证-vhdl语言
  10. 计算机单元格数值不保留小数,excel如何用公式让单元格数值保留两位小数
  11. WPF XAML 格式化工具(XAML Styler)使用说明
  12. python的合法命名,以下不是Python语言合法命名的是:A、MyGod5B、5MyGodC、_...
  13. 【初级篇】使得PC搭建的网站在非局域网也能访问的几种方法
  14. 治好颈椎病就这么简单
  15. Android手机应用CTA认证自测
  16. 用于分类的神经网络算法,神经网络算法通俗解释
  17. 美化上传文件框(上传图片框)
  18. 前后端分离项目部署(部署在同一台服务器)
  19. 在visi_Visi如何使用Weave和Docker
  20. MSVC编译器-C2001 常量中有换行符错误解决方法

热门文章

  1. 单例模式(懒汉式和饿汉式区别)
  2. 实现videojs接入m3u8视频,踩了多少坑啊
  3. 在哪里设置自动锁定计算机,电脑锁定时间怎么设置_Win7系统锁定计算机如何设置的具体方法...
  4. debug没问题,release有问题的情况
  5. Git:bash: cd: No such file or directory
  6. c语言运算符感想,C语言运算符学习笔记
  7. openface搭建
  8. Windows云服务器如何进行PHP环境搭建?
  9. 数据价值安全释放 华坤道威详解隐私计算技术
  10. 数据库应用——MySQL索引的本质笔记