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

Python Day23 学习

继续SHAP图绘制的学习

1. SHAP特征重要性条形图

特征重要性条形图(Feature Importance Bar Plot)是 SHAP 提供的一种全局解释工具,用于展示模型中各个特征对预测结果的重要性。以下是详细解释:

图的含义
- 横轴:表示特征的重要性,通常是特征的 SHAP 值的平均绝对值(`mean(|SHAP value|)`)。
  - SHAP 值的绝对值越大,说明该特征对模型预测的影响越大。
  - 通过取绝对值,可以忽略正负方向,只关注特征对预测结果的贡献大小。
- 纵轴:表示特征名称,按重要性从高到低排序。
  - 排在顶部的特征对模型预测的整体影响最大。

代码实现:

# --- 1. SHAP 特征重要性条形图 (Summary Plot - Bar) ---
print("--- 1. SHAP 特征重要性条形图 ---")
shap.summary_plot(shap_values[:, :, 0], X_test, plot_type="bar",show=False)  #  这里的show=False表示不直接显示图形,这样可以继续用plt来修改元素,不然就直接输出了
plt.title("SHAP Feature Importance (Bar Plot)")
plt.show()

对以下部分代码再进行理解:

shap_values[:, :, 0]

生成图像:

2. SHAP特征重要性蜂巢图

特征重要性蜂巢图(Feature Importance Violin Plot)是 SHAP 提供的一种全局解释工具,用于展示每个特征对模型预测的影响分布情况。以下是详细介绍:


图的含义

  • 横轴SHAP 值,表示特征对模型预测的影响大小和方向

    • 正值:该特征对预测结果有正向影响(推动预测值增大)。
    • 负值:该特征对预测结果有负向影响(推动预测值减小)。
  • 纵轴特征名称,按重要性从高到低排序。

    • 排在顶部的特征对模型预测的整体影响最大。
  • 颜色通常表示特征值的大小(如红色表示特征值较大,蓝色表示特征值较小)。

  • 形状(蜂巢/小提琴形状)表示 SHAP 值的分布。

    • 宽度:表示该特征的 SHAP 值在某个范围内的密度(样本数量)。
    • 宽度越大,说明更多样本的 SHAP 值集中在该范围。

图的作用

  • 全局解释:蜂巢图展示了每个特征对模型预测的影响分布,帮助我们理解特征的重要性和影响方向。
  • 特征与预测的关系
    • 通过颜色和 SHAP 值的分布,可以直观地观察特征值大小与预测结果之间的关系。
    • 例如,红色(特征值大)集中在正 SHAP 值区域,说明特征值越大,对预测结果的正向影响越大。
  • 异常值检测:如果某些特征的 SHAP 值分布异常(如极端值),可能需要进一步检查数据或模型。

特征重要性蜂巢图是 SHAP 的全局解释工具,通过展示每个特征的 SHAP 值分布,帮助我们理解特征对模型预测的影响大小、方向和分布情况。它比条形图提供了更丰富的信息,尤其适合分析特征值与预测结果之间的关系。

代码实现:

# --- 2. SHAP 特征重要性蜂巢图 (Summary Plot - Violin) ---
print("--- 2. SHAP 特征重要性蜂巢图 ---")
shap.summary_plot(shap_values[:, :, 0], X_test,plot_type="violin",show=False,max_display=10) # 这里的show=False表示不直接显示图形,这样可以继续用plt来修改元素,不然就直接输出了
plt.title("SHAP Feature Importance (Violin Plot)")
plt.show()
# 注意下上面几个参数,plot_type可以是bar和violin,max_display表示显示前多少个特征。

生成图像:

今日学习到这里,明日自己练习一下SHAP图的绘制,再进行新内容的学习。继续加油!!!

@浙大疏锦行

http://www.xdnf.cn/news/5579.html

相关文章:

  • [pgsql]未认可的配置参数 “database_mode“
  • AutoDL租用服务器教程
  • 各类大豆相关数据集大合集
  • 动手学深度学习12.3.自动并行-笔记练习(PyTorch)
  • 四、SpringMVC实战:构建高效表述层框架
  • 【AutoGen深度解析】下一代AI代理编程框架实战指南
  • 日语学习-日语知识点小记-构建基础-JLPT-N4阶段(19):て形/ないで
  • SAP学习笔记 - 开发09 - BTP简介,BTP在SAP产品中的位置
  • 代码随想录算法训练营第三十八天|动态规划part6(完全背包2)
  • 莒县第六实验小学开展全国“防灾减灾日”防震演练活动
  • vue3+dhtmlx-gantt实现甘特图展示
  • react项目阅读记录
  • 打破产品思维--被讨厌的勇气--实战5
  • phpstorm2024.3 设置中文
  • 《Vue.js》阅读之响应式数据与副作用函数
  • Hive HA配置高可用
  • 无线定位之 二 SX1302 网关源码 thread_down 线程详解
  • 奇次谐波和偶次谐波【EMC】
  • RabbitMQ ③-Spring使用RabbitMQ
  • 基于 Spring Boot 瑞吉外卖系统开发(十二)
  • labview硬件驱动——测试软件的安装(基于win11系统)
  • 支持向量机算法
  • K8s进阶之一文搞懂PV,PVC及SC
  • 修改网页标签处文字
  • kubuntu系统详解
  • 【RabbitMQ】应用问题、仲裁队列(Raft算法)和HAProxy负载均衡
  • 类和对象(1)--《Hello C++ Wrold!》(3)--(C/C++)
  • 【Linux笔记】——进程信号的保存
  • 51单片机引脚功能概述
  • 十五、多态与虚函数