特征选择的方法:包裹法之递归特征消除

news2024/9/20 14:06:36

1.递归特征消除法的基本原理

递归特征消除法是一种贪婪的优化算法,致力于通过反复创建模型的方式找到性能最佳的特征子集。

首先将筛选的K个特征作为初始特征子集,开展机器学习计算得到每个特征的重要性,利用交叉验证方法得到初始特征子集的分类精度;然后从当前特征子集中保留最佳特征或剔除最差特征,并使用上一次建模中没有被选中的特征来构建下一个模型得到一个新的特征子集;再次开展机器学习计算新的特征子集中每个特征的重要性,利用交叉验证方法得到新的特征子集分类精度;不断重复上一过程直至所有特征都耗尽为止;最后得到K个不同特征数量的特征子集,选择分类精度最高的特征子集作为最终特征子集。

2.递归特征消除法的Python实现

递归特征消除(RFE)的基本原理是基于模型准确率来判断哪些特征(或特征组合)对响应变量预测结果贡献较大,并递归删除特征,最终在剩余的特征上构建模型。其基本语法格式为:

RFE(estimator, *, n_features_to_select=None, step=1, verbose=0, importance_getter="auto")

其中,参数estimator用于设置具体的机器学习算法,n_features_to_select用于设置拟选择的特征变量个数,step表示每次迭代希望移除的特征变量个数。

Python代码示例如下:

运行结果为:3。

运行结果为:[False False True False False True True False]。说明第3个、第6个、第7个特征变量被选择。

运行结果为:Index(['age', 'education', 'workyears', 'resideyears', 'income', 'debtratio', 'creditdebt', 'otherdebt'],dtype='object')。可以发现第3个、第6个、第7个特征变量分别为workyears、debtratio、creditdebt。

运行结果为:[6 3 1 2 5 1 1 4]。可以看出第3个、第6个、第7个特征变量的贡献度排名第1。

以上内容节选自《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。

3.Python数据分析或机器学习资料推荐

针对数据分析或机器学习推荐两本入门级的图书:《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社)《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)。这两本书的特色是在数据分析、机器学习各种算法的介绍方面通俗易懂,较少涉及数学推导,对数学基础要求相对不高,在python代码方面讲的很细致,看了以后根据自身需要选取算法、优化代码、科学调参。都有配套免费提供的源代码、数据文件和视频讲解,也有PPT、思维导图、习题等。

为什么说这两本书值得?首先说《Python机器学习原理与算法实现》(杨维忠 张甜 著 2023年2月新书 清华大学出版社),内容非常详实,包含了Python和机器学习,相当于一次获得了两本书。在讲解各类机器学习算法时,逐一详解用到的各种Python代码,针对每行代码均有恰当注释(这一点基本上是大多数书目做不到的)。恒丰银行总行副行长郑现中,山东大学经济学院教学实验中心主任 副教授 韩振,德勤华永会计师事务所 华文伟 合伙人,首创证券深圳分公司机构业务部 樊磊 总经理 中国准精算师,山东省农村信用社联合社数据管理项目组 郝路安 总监等一众大牛联袂推荐。这本书在出版之前曾开发成9次系列课程,在恒丰银行全行范围类开展培训,490人跟随杨维忠老师上课学习(课程限报490人),培训完成后课程在知鸟平台上回放超过3万人次。很多银行员工通过这些学习一下子就学会了Python,并且用于工作中开展数据分析、机器学习、数据可视化等,这本书也被多家商业银行选做数字化人才培训教材,成为银行员工的一本网红书。

《Python数据科学应用从入门到精通》一书,旨在教会读者实现全流程的数据分析,并且相对《Python机器学习原理与算法实现》一书增加了很多概念性、科普性的内容,进一步降低了学习难度。国务院发展研究中心创新发展研究部第二研究室主任杨超 ,山东大学经济学院金融系党支部书记、副主任、副教授、硕士生导师张博,山东管理学院信息工程学院院长 袁锋 教授、硕士生导师,山东大学经济学院刘一鸣副研究员、硕士生导师,得厚投资合伙人张伟民等一众大牛联袂推荐。书中全是干活,买这一本书相当于一下子得到了5本书(Python基础、数据清洗、特征工程、数据可视化、数据挖掘与建模),而且入门超级简单,不需要编程基础,也不需要过多数学推导,非常适用于零基础学生。全书内容共分13章。其中第1章为数据科学应用概述,第2章讲解Python的入门基础知识,第3章讲解数据清洗。第4~6章介绍特征工程,包括特征选择、特征处理、特征提取。第7章介绍数据可视化。第8~13章介绍6种数据挖掘与建模方法,分别为线性回归、Logistic回归、决策树、随机森林、神经网络、RFM分析。从数据科学应用和Python的入门,再到数据清洗与特征工程,最终完成数据挖掘与建模或数据可视化,从而可以为读者提供“从拿到数据开始,一直到构建形成最终模型或可视化报告成果”的一站式、全流程指导。

两本书随书赠送的学习资料也很多,包括全部的源代码、PPT、思维导图,还有10小时以上的讲解视频,每一章后面还有练习题及参考答案,还有学习群,相对于只看网络上的视频,一方面更加系统、高效,另一方面照着书一步步操作学起来也事半功倍。全网热销中,当当、京东等平台搜索“Python机器学习 杨维忠”“Python数据科学 杨维忠”即可。

《Python机器学习原理与算法实现》(杨维忠、张甜著,2023年2月,清华大学出版社),适用于学习Python/机器学习

《Python数据科学应用从入门到精通》(张甜 杨维忠 著 2023年11月新书 清华大学出版社)适用于学习数据分析、数据科学、数据可视化等。

创作不易,恳请多多点赞,感谢您的支持!也期待大家多多关注我,让我共同学习数据分析知识。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1273602.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智慧水务系统在流域水环境规划中起到什么作用?

智慧水务系统在流域水环境规划中扮演着越来越重要的角色。作为一款集信息化、自动化、智能化、智慧化于一体的水务管理系统,智慧水务系统不仅能够提高水环境规划的效率,还能为水资源的保护和利用提供有力支持。 在流域水环境规划中,智慧水务系…

Windows10设置定时提醒

文章目录 Windows10设置定时提醒创建提醒文件新建文本文档修改文件编码和后缀双击测试 创建文件夹创建任务测试运行 Windows10设置定时提醒 创建提醒文件 新建文本文档 修改文件编码和后缀 双击测试 创建文件夹 创建任务 创建触发器 选择程序 测试运行 弹窗正常

16.Oracle数据库Row_number() over()函数排序使用方法

1.原始数据(部分) SELECT * FROM SCOTT.EMP ; 2.使用Row_number() over() 函数,排序 SELECT EMPNO,ENAME,SAL,DEPTNO,Row_number() over( order by sal) rs FROM SCOTT.EMP ; 根据工资排序并添加序号 3.使用Row_number() over() 函数,分组并排序 SELECT EMPNO,ENAME,SAL,DEPTN…

深眸科技|AI+机器视觉加速进入工业制造,成为提升智能制造必选项

随着人工智能技术的飞速发展,AI视觉与机器视觉技术正在加速进入工业制造中。机器视觉技术赋予机器新活力与新智慧,不仅让机器实现精密工作的完成,还让其能够代替部分脑力活动,具有更高的智慧与能力。 深眸科技CEO周礼表示&#x…

自动伸缩:解密HPA、VPA、CA和CPA智能调整应用大小和数量

关注【云原生百宝箱】公众号,快速掌握云原生 Kubernetes提供了多种自动伸缩机制,例如HPA(Horizontal Pod Autoscaling),可以根据不同情况动态调整Pod副本数量。此功能使 Pod 能够有效地处理当前流量,而无需…

Android启动系列之进程杀手--lmkd

本文概要 这是Android系统启动的第三篇文章,本文以自述的方式来讲解lmkd进程,通过本文您将了解到lmkd进程在安卓系统中存在的意义,以及它是如何杀进程的。(文中的代码是基于android13) 我是谁 init:“大…

P8A004-系统加固-磁盘访问权限

【预备知识】 访问权限,根据在各种预定义的组中用户的身份标识及其成员身份来限制访问某些信息项或某些控制的机制。访问控制通常由系统管理员用来控制用户访问网络资源(如服务器、目录和文件)的访问,并且通常通过向用户和组授予…

字节的“游戏心脏”,真的停止跳动了吗?

字节跳动在游戏行业的宏大叙事,终究变成了一场游戏一场梦。 近日,朝夕光年首次公开回应此前的裁员传闻,明确表示会有业务方向和组织调整,游戏业务将迎来大规模收缩,未来会更加聚焦部分创新型游戏及相关技术的探索。 …

管理类联考——写作——考点+记忆篇——论说文——记忆

文章目录 整体文字提炼/目录大纲法图像畅想/记忆宫殿法 审题立意论说文-历年真题命题类型总结 写作结构论说文-万能写作结构 分析段标题开头段结尾过渡段和措施段 整体 整体用记忆宫殿法、绘图记忆法等 文字提炼/目录大纲法 利用书本的目录、大纲,一本好书&#xff…

增加F110 付款方式的随手记录

随便记录一下,基本上有这些信息可以了 为了保持PRD与测试机一致的银行代码,需要先在DEV,QAS 改成4 外部给号 主要都是在FBZP 开户行维护-FI12_HBANK/FI12 S4hana 里面有的没有办法在FI12 维护只能去NWBC NWBC:维护银行账户并关联…

MatchPyramid实现文本匹配

引言 今天利用MatchPyramid实现文本匹配。 原论文解析→点此←。 MatchPyramid 核心思想是计算两段文本间的匹配矩阵,把它当成一个图形利用多层卷积网络提取不同层级的交互模式。 匹配矩阵是通过计算两段输入文本基本单元(比如字或词)之间相似度得到的&#xf…

Verilog 入门(三)(表达式)

文章目录 操作数操作符算术操作符关系操作符相等关系操作符逻辑操作符按位操作符条件操作符 操作数 操作数可以是以下类型中的一种: 常数参数线网寄存器位选择部分选择存储器单元函数调用 操作符 Verilog HDL中的操作符可以分为下述类型: 算术操作符…

a-select:远程搜索——防抖节流处理——基础积累

a-select:远程搜索——防抖节流处理——基础积累 效果图下拉筛选数据&#xff1a;远程搜索功能&#xff1a; 效果图 下拉筛选数据&#xff1a; <a-selectshow-searchv-model"form.jobPositionCode"placeholder"请选择岗位"style"width: 100%"…

改进LiteOS中物理内存分配算法(详细实验步骤+相关源码解读)

一、实验要求 优化TLSF算法&#xff0c;将Best-fit策略优化为Good-fit策略&#xff0c;进一步降低时间复杂度至O(1)。 优化思路&#xff1a; 1.初始化时预先为每个索引中的内存块挂上若干空闲块&#xff0c;在实际分配时避免分割&#xff08;split&#xff09;操作&#xff…

leetcode面试经典150题——34 有效的数独(矩阵)

题目&#xff1a; 有效的数独 描述&#xff1a; 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 &#xff0c;验证已经填入的数字是否有效即可。 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出…

加速产品成长:待完成工作框架如何改变游戏规则

待完成的工作 (JTBD) 框架旨在认识到客户心中有特定的目标&#xff0c;我们将这些目标称为工作。然后&#xff0c;客户“租用”产品或服务来帮助他们实现特定目标。该产品成为客户试图完成的工作的解决方案。如果一种产品或服务有效地帮助客户实现目标&#xff0c;他们就更有可…

c++——取地址(引用)和取内容(解引用)操作

今天又做蒙了一道题&#xff0c;把思考和实验记录下来。 struct sk{ int a; float b;}data; int *p; 若要使p指向data中的a域&#xff0c;正确的赋值语句是 p&a; pdata.a; p&data.a; *pdata.a前两个可以很容易看出错误之处&#xff0c;a是结构体内的变量&#xff0c;需…

java gc垃圾回收机制(垃圾收集 Garbage Collection)

一文带你深入JAVA GC&#xff08;垃圾回收机制&#xff09;面试讲解&#xff01;&#xff01;&#xff01; - 知乎 gc常用算法 gc常用算法有&#xff1a;标记-清除算法&#xff0c;标记-压缩算法&#xff0c;复制算法&#xff0c;分代收集算法。 复制算法&#xff08;Java中…

标准IO和目录操作

1. 标准文件IO 1.1 知识点 2. fopen和fwrite、fread 2.1 使用fwrite和fread实现文件的拷贝 fcopy.c #include <stdio.h> #include <string.h> #include <stdlib.h> //使用fwrite和fread实现文件的拷贝int main() {FILE *fp1 fopen("./2.txt",&quo…

MyBatis教程之逆向工程(十一)

正向工程&#xff1a;先创建Java实体类&#xff0c;由框架负责根据实体类生成数据库表。Hibernate是支持正向工程 的。逆向工程&#xff1a;先创建数据库表&#xff0c;由框架负责根据数据库表&#xff0c;反向生成如下资源&#xff1a; 1.Java实体类 2.Mapper…