Python条形图 | 指标(特征)重要性图的绘制

在数据科学和机器学习的工作流程中,特征选择是一个关键步骤。通过评估每个特征对模型预测能力的影响,我们可以选择最有意义的特征(指标),从而提高模型的性能并减少过拟合。本文将介绍如何使用 Python 的 Seaborn 和 Matplotlib 库绘制特征重要性图(即条形图),以帮助我们可视化特征的重要性。

准备工作

首先,我们需要安装必要的库。如果您还没有安装 Pandas、Matplotlib 和 Seaborn,可以使用以下命令进行安装:

pip install pandas matplotlib seaborn

数据准备

在本示例中,我们创建一个简单的字典,模拟特征及其重要性分数。然后,我们将使用 Pandas 将其转换为 Series,以便更方便地进行处理和可视化。在具体的实际例子应用中,可以通过代码直接读取 csv/xlsx 等格式的数据。

import pandas as pd# 定义特征及其重要性值
data_dict = {'Vasodilator_1': 0.005994,'HDL': 0.006587,'BNP': 0.016333,'Cr': 0.018373,'Statins_1': 0.020511,'Diabetes_1': 0.024206,'Antibiotics_1': 0.029286,'Cr_new_1': 0.029618,'CtnI': 0.033793,'Oliguria_1': 0.035396
}# 将字典转换为 Pandas Series
selected_features = pd.Series(data_dict)

绘制特征重要性图

接下来,我们将使用 Seaborn 和 Matplotlib 绘制柱状图,以展示特征的重要性。


import matplotlib.pyplot as plt
import seaborn as sns# 创建图形,设置图形大小
plt.figure(figsize=(10, 6))# 使用 Seaborn 绘制条形图
barplot = sns.barplot(x=selected_features.values, y=selected_features.index, palette='viridis')# 设置图表标题
plt.title('Feature Importance from Lasso Regression', fontsize=14)# 反转y轴,使得重要性最高的特征在顶部
plt.gca().invert_yaxis()# 设置x轴和y轴的标签
plt.xlabel('Feature Importance', fontsize=13)
plt.ylabel('Variable', fontsize=13)# 调整图像在画布中的位置,避免元素重叠
plt.tight_layout()# 隐藏图表的上边框和右边框
barplot.spines['top'].set_visible(False)
barplot.spines['right'].set_visible(False)# 在每个柱子上显示对应的数值
for p in barplot.patches:barplot.annotate(format(p.get_width(), '.3f'),  # 格式化数值到小数点后3位(p.get_width() + 0.001, p.get_y()),  # 设置注释位置ha='center', va='bottom', fontsize=10, color='black',  # 设置对齐方式和字体xytext=(0, 7),  # 纵向偏移textcoords='offset points'  # 偏移单位为点)# 保存图像为 PDF 文件
plt.savefig('Feature_Importance.pdf')# 显示图像
plt.show()

代码解释

  • 设置图形大小:使用 plt.figure() 设置图形的宽度和高度。
  • 绘制柱状图:使用 sns.barplot() 绘制柱状图,其中 x 轴表示特征重要性,y 轴表示特征名称。
  • 反转 y 轴:使用 invert_yaxis() 使得重要性最高的特征在顶部。
  • 添加标签和标题:设置 x 轴和 y 轴的标签以及图表标题。
  • 隐藏边框:隐藏不必要的图表边框,使得图表更加美观。
  • 标注每个柱子:在每个柱子上添加对应的数值,以便于查看特征的重要性。
  • 保存和显示图像:将生成的图像保存为 PDF 文件,并显示出来。

特征图展示

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

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

相关文章

Android 12.0进程保活白名单功能实现

在Android 12.0系统中,实现进程保活白名单功能是为了确保某些重要的应用程序即使进入后台也能长时间保持运行状态,不被系统自动杀死。这一功能的实现涉及多个核心类和文件,以下是具体的实现步骤和核心功能分析: 一、实现步骤 …

PG数据库之索引详解

PostgreSQL数据库中的索引是一种用于提高查询性能的重要数据结构。通过索引,数据库可以快速定位到表中的特定行,而无需进行全表扫描。PostgreSQL支持多种索引类型,每种类型都有其特定的应用场景和性能特点。下面将详细介绍PostgreSQL中的索引…

go 使用fyne实现桌面程序的计算器例子

使用Fyne工具包构建跨平台应用是非常简单的,在此之前我们需要做一些准备功能做,比如安装一些gcc基础图形依赖库,还有go语言本身的运行开发环境都是必要的。 在此之前我们希望你是go语言的已入门用户,掌握go的协程,管道…

鲁班猫的一些踩坑

有坑的地方 1、安装relasense: 错误:不要采用下面的二进制安装(在主机、Jetson可以使用),尽管也能安装并运行realsense-viwer,但是链接不到相机设备! sudo apt-key adv --keyserver keyserver…

Linux基础知识 - C(自学使用)

1.C语言基础知识 参考博客: https://blog.csdn.net/qq_45254369/article/details/126023482?ops_request_misc%257B%2522request%255Fid%2522%253A%252277629891-A0F3-4EFC-B1AC-410093596085%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%…

Xcode文件默认存储位置-使用c++file保存文件默认路径以及设置为路径为当前项目路径

Xcode文件默认存储位置-使用cfile保存文件默认路径以及设置为路径为当前项目路径 1.概述 使用Xcode工具开发时候,遇到C调用file创建文件后,在当前项目中找不到文件路径。这是由于xcode会将文件保存到默认设置的路径。下面是查看文件默认存储路径和修改…

DC-9靶场渗透

靶机:DC-9 DC: 9 ~ VulnHub 攻击机:kail linux 2024 1,将两台虚拟机网络连接都改为NAT模式,并查看DC-9的MAC地址 2,进行主机扫描,通过MAC地址发现靶机的IP地址 攻击机IP地址192.168.23.169,靶机IP地址192.1…

MySQL-存储过程/函数/触发器

文章目录 什么是存储过程存储过程的优缺点存储过程的基本使用存储过程的创建存储过程的调用存储过程的删除存储过程的查看delimiter命令 MySQL中的变量系统变量用户变量局部变量参数 if语句case语句while循环repeat循环loop循环游标cursor捕获异常并处理存储函数触发器触发器概…

QT QGestureEvent支持平移,缩放,旋转触摸板手势

一.Gesture释义 平移:点按住触控板,然后拖移,实现平移功能。 缩放:在触控板上,双指张开实现放大,双指合拢实现缩小。 旋转:在触控板上,双指分别反方向移动旋转,实现旋转功能。 二.实现功能 1.重写bool event(QEvent *event) override事件: bool ImageWidget::event…

16. 虚拟化

文章目录 第16章 虚拟化16.1 共享资源16.2 虚拟机16.3 虚拟机镜像16.4 容器16.5 容器和虚拟机16.6 容器的可移植性16.7 Pod(容器组)16.8 无服务器架构16.9 小结16.10 扩展阅读16.11 问题讨论 第16章 虚拟化 “虚拟”意味着永远不知道你的下一个字节从哪里…

SpringBoot poi-tl通过模板占位符生成word文件

简介: 开发中我们需要通过在word中使用占位符来动态渲染一些数据,本文讲解poi-tl实现动态生成word文档,包括表格循环,对象嵌套。 poi-tl官网文档 Poi-tl Documentation 1. word格式 这是我的test.word 这是导出后的out.docx文件 …

蓝桥杯普及题

[蓝桥杯 2024 省 B] 好数 题目描述 一个整数如果按从低位到高位的顺序,奇数位(个位、百位、万位……)上的数字是奇数,偶数位(十位、千位、十万位……)上的数字是偶数,我们就称之为“好数”。 给定一个正整数 N N N,请计算从 1 1

UE4 材质学习笔记12(水体反射和折射)

一.水体反射和折射 首先就是要断开所有连接到根节点的线,因为水有很多不同的节点成分,当所有其他节点都在用时 要分辨出其中一个是何效果是很难的。 虚幻有五种不同的方法可以创建反射,虚幻中的大多数场景使用多种这些方法 它们会同时运作。…

opencv-platform实现人脸识别

和同事接触了下甲方,对方算是一个资源整合的自由人,手里有项目,然后认识些开发就聊下有什么事情可以做的,对方聊了下做人脸签到,或者说人脸打开。就这方面我做了下简单的了解。做了个java小demo。 我们常用的人脸识别的摄像头屏幕…

shell脚本语言-需要算法?

文章目录 1. 冒泡排序2. 搜索算法3. 文本处理4. 文件操作5. 条件语句6. 循环 Shell脚本语言本身并不包含高级编程语言中的“算法”概念,如排序算法或搜索算法。Shell脚本主要用于自动化命令行任务,如文件操作、文本处理、程序执行等。不过,Sh…

ctfshow-文件上传-151-161

CTFshow文件上传 PHP文件上传:1、代码思路 黑名单是设置不能通过的用户,黑名单以外的用户都能通过。 phtml、pht、php3、php4、php5后缀都会按做php文件执行,且不在黑名单内。 2、绕过 找漏网之鱼:cer、php3、php4、phtml等。 大小写绕…

使用SpringBoot自定义注解+AOP+redisson锁来实现防接口幂等性重复提交

1 前提&#xff0c;整合好springboot和redis,redisson的环境 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 2 编写自定义注解&#xff0c;注解的作用是标记…

反编译华为-研究功耗联网监控日志

摘要 待机功耗中联网目前已知的盲点&#xff1a;App自己都不知道的push类型的被动联网、app下载场景所需时长、组播联网、路由器打醒AP。 竞品 策略 华为 灭屏使用handler定时检测&#xff08;若灭屏30分钟内则周期1分钟&#xff0c;否则为2分钟&#xff09;&#xff0c;检…

第13次CCF CSP认证真题解

1、跳一跳 题目链接&#xff1a;https://sim.csp.thusaac.com/contest/13/problem/0 本题是小游戏“跳一跳”的模拟题&#xff0c;按照题意模拟即可。 100分代码&#xff1a; #include <iostream> using namespace std; int main(int argc, char *argv[]) {int n 30…

中国人寿财险青岛市分公司:科技保险,助力企业高质量发展

中国人寿财险青岛市分公司深知科技保险对于企业发展的重要性&#xff0c;积极将科技保险融入企业发展战略。公司利用科技手段&#xff0c;为企业提供风险评估、防灾减灾等增值服务&#xff0c;帮助企业降低经营风险。同时&#xff0c;公司还通过科技保险产品&#xff0c;为企业…