机器学习系列13:通过随机森林获取特征重要性

我们已经知道通过 L1 正则化和 SBS 算法可以用来做特征选择。

我们还可以通过随机森林从数据集中选择相关的特征。随机森林里面包含了多棵决策树,我们可以通过计算特征在每棵决策树决策过程中所产生的的信息增益平均值来衡量该特征的重要性。

你可能需要参考:《机器学习系列06:决策树》

这种方法无需对特征做归一化或者标准化预处理,也不假设数据集是否线性可分。

以红酒数据集为例。我们可以直接通过 feature_importances_ 属性获取每个特征的重要性,所有特征重要性之和为 1.0。

图片

我们可以更直观地可视化观察一下。

图片

可以看到上面随机森林选出的前 3 个特征最重要的特征中有 2 也出现在了之前在
《机器学习系列12:减少过拟合——降维(特征选择)》中使用 SFS 算法选择的 3 个最重要的特征中。

图片

我们可以通过 scikit-learn 提供的 SelectFromModel 来通过 threshold 参数设定一个阈值 ,选择满足这个贡献度阈值的特征出来。

图片

可以看到选择了 5 个特征,现在我们就用这 5 个特征拟合一下 kNN 算法。

图片

可以对比一下在用 SFS 算法选择的 3 个特征拟合的 kNN 算法。

图片

选择 5 个特征时,模型在训练集和测试集上的表现和选择全部特征的表现相当!

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

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

相关文章

使用官网Spring Initializr创建一个满足您需求的Spring Boot项目,包括建议目录配置

为了创建一个满足您需求的Spring Boot项目,我们将在https://start.spring.io/Spring Initializr中选择合适的依赖。以下是基于您的描述所推荐的依赖项: Spring Web:用于开发RESTful API。Spring Data JPA(但排除Spring Boot默认数…

Mybatis-Plus使用小记

MP 使用小记 所谓 MP 是指:Mybatis-Plus 前言 本篇文章是对 MP 一些日常开发学习中不常见但实用的使用小技巧总结,内容将持续更新,希望能对小伙伴们有所帮助。推荐点赞 收藏哦! 官方文档:Mybatis-Plus 给现有分页指…

Activemq性能优化

生产者流量限制 ActiveMQ支持为每个生产者单独设置流量控制。流量控制的含义:当生产者产生消息过快,超过流量限制的时候,生产者将会被阻塞直到资源可以继续使用,或者抛出一个JMSException。 同步发送消息(useAsynSen…

力扣:509. 斐波那契数(动态规划,附带递归版本) 详细讲解动态规划的思路

题目: 斐波那契数 (通常用 F(n) 表示)形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是: F(0) 0,F(1) 1 F(n) F(n - 1) F(n - 2),其中…

速盾cdn:cdn加速原理是什么

CDN(内容分发网络)通过在全球各地部署服务器节点来加速内容传输,提高用户访问网站时的响应速度和性能。速盾CDN作为一种CDN服务提供商,其加速原理主要涉及以下几个关键步骤: 内容缓存: 当用户访问一个网站时…

【Spring实战】12 Thymeleaf

文章目录 1. 定义2. 设计目标3. 官网4. Spring 集成 Thymeleaf1)添加依赖2)创建模版3)创建Controller4)启动程序5)执行验证 5. 代码详细总结 1. 定义 Thymeleaf 是一个用于在 Web 应用程序中进行服务器端 Java 模板渲…

Git:远程仓库的使用

查看当前的远程库 要查看当前配置有哪些远程仓库,可以用git remote 命令,它会列出每个远程库的简短名字。在克隆完某个项目后,至少可以看到一个名为origin 的远程库,Git 默认使用这个名字来标识你所克隆的原始仓库: 也…

UE4运用C++和框架开发坦克大战教程笔记(十三)(第40~42集)

UE4运用C和框架开发坦克大战教程笔记(十三)(第40~42集) 40. 多按键绑定41. 自动生成对象42. 资源模块数据结构测试自动生成对象按资源类型生成对象 40. 多按键绑定 上节课实现了按键绑定系统的 4 种基础绑定,这节课来…

自动化部署与容器化:构建现代化DevOps工作流

流畅DevOps之路:探秘自动化部署和容器化的前沿技术 前言 随着软件开发的复杂性不断增加,传统的手动部署和管理方式已无法满足迅速变化的需求。本文将探讨现代DevOps实践中的关键技术,从容器化到自动化部署,以及涉及到的关键工具…

python+django高校教材共享管理系统PyCharm 项目

本中原工学院教材共享平台采用的数据库是mysql,使用nodejs技术开发。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。系统所要实现的功能分析,对于现在网络方便的管理&…

Java:IO流——字节流和字符流

目录 IO流的基本概念 IO流体系结构 FileOutputStream字节输出流 构造方法 成员方法 细节 关流 FileInputStream字节输入流 构造方法及成员方法 read不带参数代码示例 read带参数代码示例​编辑 将字节数组或字符数组转成字符串 FileReader 字符输入流 构造方法和…

云计算的服务模式和发展趋势

一、云计算的三种服务模式: 1、Iaas(infrastructure as a service): 基础设施即服务(基础的云主机、磁盘、系统等,云厂商都给配置好,需要自己搭建云平台,并在云平台上部署业务所需要的软件&…

在macOS中搭建.NET MAUI开发环境

文章目录 准备安装扩展安装 .NET安装工作负载安装 Xcode 命令行工具调试安卓应用安装 JDK安装 Android SDK 安装 Android 模拟器安装模拟器安装镜像创建虚拟机 同意许可条款创建 MAUI 项目调试 MAUI 应用切换调试目标 参考资料 准备 一台 macOS Monterey 以上的电脑安装 XCode…

前端如何性能优化

前端性能优化是提升网页加载速度和用户体验的关键方面 压缩和合并文件:压缩 CSS 和 JavaScript 文件,减少文件大小。将多个文件合并为一个,减少网络请求次数。 使用缓存:设置合适的缓存策略,使得静态资源可以被浏览器…

分类模型评估方法

1.数据集划分 1.1 为什么要划分数据集? 思考:我们有以下场景: 将所有的数据都作为训练数据,训练出一个模型直接上线预测 每当得到一个新的数据,则计算新数据到训练数据的距离,预测得到新数据的类别 存在问题&…

番茄台式电脑装机日记

番茄台式电脑装机日记 start 时至今日,终于圆了年少时的梦:拥有自己的一台台式电脑。就好像第一次学会系鞋带,第一次剥榴莲,亲手组装自己的第一台台式电脑,这个体验完全是此生少有且独特的完美体验。作者&#xff1a…

Innodb执行insert造成死锁的问题

背景 起因是线上报了一个错误信息,Deadlock found when trying to get lock; try restarting transaction,这是Mysql检测到死锁后,自动回滚了事务引发的异常。spring框架里打印了异常堆栈,所以很快就定位到哪一行代码出了问题。 …

optimizer.load_state_dict()报错parameter group不匹配的问题的原因

在加载预训练权重时可能会遇到类似下面的错误: optimizer.load_state_dict(checkpoint[optimizer_state]) File "/opt/conda/lib/python3.8/site-packages/torch/optim/optimizer.py", line 145, in load_state_dict raise ValueError("loade…

Visual Studio Markdown Editor 插件导出 HTML

Visual Studio Markdown Editor 可通过右键弹出菜单选择“另存为”,轻松导出HTML文件或是单一的mhtml文件。然而,这个插件在导出HTML文件时有一个小问题,就是md文件中的一些内部链接无法在导出的HTML文件中正常工作。 其中的原因是&#xff…

Docker单点部署Seata(2.0.0) + Nacos(v2.3.0) + Mysql(5.7)

文章目录 一、部署Nacos二、部署Mysql三、Seata准备工作1. 记住nacos、mysql、宿主机的ip2. 建立数据库3. Nacos远程配置文件 四、部署Seata五、初步检验Seata部署情况六、微服务使用Seata1.引入依赖2. application.yml配置 七、遇到的坑1. Nacos显示Seata服务的ip为容器内网ip…