当前位置: 首页 > news >正文

Python基于逻辑回归的L1正则化(Lasso Logistic Regression)进行分类数据的特征选择项目实战

说明:这是一个机器学习实战项目(附带数据+代码+文档+视频讲解),如需数据+代码+文档+视频讲解可以直接到文章最后获取。

1.项目背景

可以使用Lasso回归进行特征选择,尽管它本质上是一个用于回归问题的技术,但通过一些调整,也可以应用于分类问题,尤其是二分类问题。Lasso(Least Absolute Shrinkage and Selection Operator)通过在损失函数中加入L1正则化项来促使模型的系数稀疏化,从而实现特征选择。对于分类任务,通常会结合逻辑回归(Logistic Regression)的思想,这被称为Lasso Logistic Regression或者Logistic Lasso。

本项目通过逻辑回归的L1正则化(Lasso Logistic Regression)进行分类数据的特征选择。     

2.数据获取

本次建模数据来源于网络(本项目撰写人整理而成),数据项统计如下:

编号 

变量名称

描述

1

x1

2

x2

3

x3

4

x4

5

x5

6

x6

7

x7

8

x8

9

x9

10

x10

11

y

因变量

数据详情如下(部分展示):

3.数据预处理

3.1 用Pandas工具查看数据

使用Pandas工具的head()方法查看前五行数据: 

关键代码:

3.2数据缺失查看

使用Pandas工具的info()方法查看数据信息:

从上图可以看到,总共有11个变量,数据中无缺失值,共2000条数据。

关键代码: 

3.3数据描述性统计

通过Pandas工具的describe()方法来查看数据的平均值、标准差、最小值、分位数、最大值。

关键代码如下:  

4.探索性数据分析

4.1 y变量柱状图

用Matplotlib工具的plot()方法绘制柱状图:

4.2 y=1样本x1变量分布直方图

用Matplotlib工具的hist()方法绘制直方图:

4.3 相关性分析

从上图中可以看到,数值越大相关性越强,正值是正相关、负值是负相关。

5.特征工程

5.1 建立特征数据和标签数据

关键代码如下:

5.2 数据集拆分

通过train_test_split()方法按照80%训练集、20%测试集进行划分,关键代码如下:

5.3 数据的归一化

关键代码如下:

6.构建特征选择模型 

主要使用逻辑回归的L1正则化(Lasso Logistic Regression)进行分类数据的特征选择。   

6.1 构建模型 

编号

模型名称

参数

1

特征选择模型

penalty='l1'

2

solver='liblinear'

3

C=0.1

7.特征选择

7.1特征系数结果

模型名称

特征名称

系数

特征选择模型 

x1

0

x2

9.60022787

x3

-1.005445

x4

0

x5

0

x6

0

x7

0

x8

0

x9

0

x10

0

7.2特征选择结果

结果展示如下:

8.结论与展望

综上所述,本文采用了逻辑回归的L1正则化(Lasso Logistic Regression)进行分类数据的特征选择,最终证明了我们提出的模型效果良好。此模型可用于日常产品的建设。 

# 本次机器学习项目实战所需的资料,项目资源如下:# 项目说明:# 获取方式一:# 项目实战合集导航:https://docs.qq.com/sheet/DTVd0Y2NNQUlWcmd6?tab=BB08J2# 获取方式二:链接:https://pan.baidu.com/s/1P97Kki89nKLhHqQAucvEnA 
提取码:qq3c

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 每天一个数据分析题(四百六十)- 麦肯锡
  • C++自定义接口类设计器之可对称赋值三
  • elk+filebeat+kafka集群部署
  • 抖音小店新宠儿成都夏光汝网络科技
  • 对优先级队列(堆)的理解
  • 【工具】-gdb-学习笔记
  • 推动未来的引擎:人工智能大模型的现状与发展
  • 基于改进拥挤距离的多模态多目标优化差分进化(MMODE-ICD)求解无人机三维路径规划(MATLAB代码)
  • 云计算学习——5G网络技术
  • 前端开发者必备:揭秘谷歌F12调试的隐藏技巧!
  • PixelMaster - 图片像素化终极利器 !
  • U盘数据恢复不再难:2024年4款工具,找回你“躲藏”的记忆
  • BootStrap前端面试常见问题
  • 【刷题汇总 -- 爱吃素、相差不超过k的最多数、最长公共子序列(一)】
  • 常回家看看之fastbin_attack
  • 《微软的软件测试之道》成书始末、出版宣告、补充致谢名单及相关信息
  • 【391天】每日项目总结系列128(2018.03.03)
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • JAVA并发编程--1.基础概念
  • Mysql5.6主从复制
  • PHP 的 SAPI 是个什么东西
  • React-Native - 收藏集 - 掘金
  • vue+element后台管理系统,从后端获取路由表,并正常渲染
  • 从零开始学习部署
  • 消息队列系列二(IOT中消息队列的应用)
  • 最近的计划
  • ​ssh免密码登录设置及问题总结
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • #QT(QCharts绘制曲线)
  • (007)XHTML文档之标题——h1~h6
  • (2020)Java后端开发----(面试题和笔试题)
  • (4) PIVOT 和 UPIVOT 的使用
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (ibm)Java 语言的 XPath API
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (贪心) LeetCode 45. 跳跃游戏 II
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .net core 使用js,.net core 使用javascript,在.net core项目中怎么使用javascript
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .Net 执行Linux下多行shell命令方法
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET与 java通用的3DES加密解密方法
  • @Autowired @Resource @Qualifier的区别
  • [ C++ ] STL---string类的使用指南
  • [ 蓝桥杯Web真题 ]-布局切换
  • [120_移动开发Android]008_android开发之Pull操作xml文件
  • [20170713] 无法访问SQL Server
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [240812] X-CMD 发布 v0.4.5:更新 gtb、cd、chat、hashdir 模块功能
  • [C/C++入门][字符与ASCII码]6、用代码来转换字符与它的ASCII码
  • [C++][数据结构][算法]单链式结构的深拷贝