python解释模型库Shap实现机器学习模型输出可视化
作者:Python学习与数据挖掘 发布时间:2022-04-27 08:00:10
标签:Shap,解释模型,可视化,机器学习
解释一个机器学习模型是一个困难的任务,因为我们不知道这个模型在那个黑匣子里是如何工作的。解释是必需的,这样我们可以选择最佳的模型,同时也使其健壮。
我们开始吧…
安装所需的库
使用pip安装Shap开始。下面给出的命令可以做到这一点。
pip install shap
导入所需库
在这一步中,我们将导入加载数据、创建模型和创建该模型的可视化所需的库。
df = pd.read_csv('/content/Diabetes.csv')
features = ['Pregnancies', 'Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age']
Y = df['Outcome']
X = df[features]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 1234)
xgb_model = xgb.XGBRegressor(random_state=42)
xgb_model.fit(X_train, Y_train)
创建模型
在这一步中,我们将创建机器学习模型。在本文中,我将创建一个XGBoost模型,但是你可以选择任何模型。我们将用于此模型的数据集是著名的糖尿病数据集,可从Kaggle下载。
df = pd.read_csv('/content/Diabetes.csv')
features = ['Pregnancies', 'Glucose','BloodPressure','SkinThickness','Insulin','BMI','DiabetesPedigreeFunction','Age']
Y = df['Outcome']
X = df[features]
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size = 0.2, random_state = 1234)
xgb_model = xgb.XGBRegressor(random_state=42)
xgb_model.fit(X_train, Y_train)
创建可视化
现在我们将为shap创建解释程序,找出模型的shape值,并使用它们创建可视化效果。
explainer = shap.Explainer(xgb_model)
shap_values = explainer(X_test)
1、Bar Plot
shap.plots.bar(shap_values, max_display=10)
2、队列图
shap.plots.bar(shap_values.cohorts(2).abs.mean(0))
3、热图
shap.plots.heatmap(shap_values[1:100])
4、瀑布图
shap.plots.waterfall(shap_values[0]) # For the first observation
5、力图
shap.initjs()
explainer = shap.TreeExplainer(xgb_model)
shap_values = explainer.shap_values(X_test)
def p(j):
return(shap.force_plot(explainer.expected_value, shap_values[j,:], X_test.iloc[j,:]))
p(0)
6、决策图
shap_values = explainer.shap_values(X_test)[1]
print("The expected value is ", expected_value)
print("The final prediction is ", xgb_model.predict(X_test)[1])
shap.decision_plot(expected_value, shap_values, X_test)
这就是如何使用 Shap 创建与机器学习模型相关的可视化并对其进行分析。
来源:https://blog.csdn.net/weixin_38037405/article/details/118341218
0
投稿
猜你喜欢
- 发现问题pandas版本0.25.3import pandas as pdsymbol_info_columns = ['1'
- 前言看到一个很有意思的项目,其实在之前就在百度飞浆等平台上看到类似的实现效果。可以将照片按照视频的表情,动起来。看一下项目给出的效果。项目地
- 背景Translation插件在mac上idea能够搜索到,但是在windows上却搜索不到解决勾选上成功了。来源:https://blog
- 使用Windows的wmic命令,获取可执行文件的运行状况、文件路径、PID,如果可执行文件挂掉,就重启并邮件告警
- 相信很多与页面打过交道的同学都对 Yahoo 的 Best Practices for Speeding Up Your Web Site
- 本文为大家分享了购物商城小程序,供大家参考,具体内容如下软件版本:python3.x功能:实现简单购物商城1.允许用户选择购买多
- 应该是开心网(kaixin.com)的宠物功能又升级了,这几次发来的邮件内容不仅不能让我开心,反而让我觉得很恶心。开心网注册也一段时间了,之
- 本文为大家分享了pygame游戏之旅的第11篇,供大家参考,具体内容如下定义一个button函数,将文字,颜色等作为参数。def butto
- 假设你有一套登录注册业务。一开始很简单,老板说只需要常规的注册登录就行。但是到了后面,接口被刷,老板然你在注册登录前加个验证码然后没过多久,
- 很神奇的一个晚上,居然在以前老同事的群里跟同事讨论起CSS的东西来了,不过很意外的还是有收获。在IE中常常会碰到如果将容器定位后,出现容器内
- 概述可以获取的数据包括:video-视频模块user-用户模块dynamic-动态模块这次用“Running Man”十周年特辑的视频,来做
- 作为免费又高效的数据库,mysql基本是首选。良好的安全连接,自带查询解析、sql语句优化,使用读写锁(细化到行)、事物隔离和多版本并发控制
- 不知不觉大半年没更新了...前面小二介绍过使用Typora+MinIO+Java代码打造舒适写作环境,然后有很多大佬啊,说用Java来实现简
- GO通道和 sync 包的分享我们一起回顾一下上次分享的内容:GO协程同步若不做限制的话,会产生数据竞态的问题我们用锁的方式来解决如上问题,
- 简单说明这个算法主要工作是测量不同特征值之间的距离,有个这个距离,就可以进行分类了。简称kNN。已知:训练集,以及每个训练集的标签。接下来:
- 我们先看一下JavaScript中关系运算符的类型转换规则:关系运算符(<、>、<=、>=) 试图将 express
- MySQL针对不同的用户提供了2种不同的版本:MySQL Community Server:社区版。由MySQL开源社区开发者和爱好者提供技
- RESTful API在Web项目开发中广泛使用,本文针对Go语言如何一步步实现RESTful JSON API进行讲解, 另外也会涉及到R
- selenium执行js优点:直接调用浏览器的环境障碍:绕过selenium监测原理:# 执行js代码bro.execute_script(
- 先从String的扩展开始吧,后面有一部分的扩展要依赖这里扩展的方法。为了更加清晰和详细,我会一个方法一个方法地贴出来,你完全可以把所有的方