真香!利用 Shap 可完美实现机器学习模型输出可视化!
Posted Python学习与数据挖掘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了真香!利用 Shap 可完美实现机器学习模型输出可视化!相关的知识,希望对你有一定的参考价值。
解释一个机器学习模型是一个困难的任务,因为我们不知道这个模型在那个黑匣子里是如何工作的。解释是必需的,这样我们可以选择最佳的模型,同时也使其健壮。
Shap 是一个开源的 python 库,用于解释模型。它可以创建多种类型的可视化,有助于了解模型和解释模型是如何工作的。
在本文中,我们将会分享一些 Shap 创建的不同类型的机器学习模型可视化。
我们开始吧…
安装所需的库
使用pip安装Shap开始。下面给出的命令可以做到这一点。
pip install shap
导入所需库
在这一步中,我们将导入加载数据、创建模型和创建该模型的可视化所需的库。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import shap
from sklearn.model_selection import train_test_split
import xgboost as xgb
创建模型
在这一步中,我们将创建机器学习模型。在本文中,我将创建一个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 创建与机器学习模型相关的可视化并对其进行分析。
技术交流
欢迎转载、收藏、有所收获点赞支持一下!
目前开通了技术交流群,群友超过2000人,添加方式如下:
如下方式均可,添加时最好方式为:来源+兴趣方向,方便找到志同道合的朋友
- 方式一、发送如下图片至微信,进行长按识别,回复加群;
- 方式二、直接添加小助手微信号:pythoner666,备注:来自CSDN
- 方式三、微信搜索公众号:Python学习与数据挖掘,后台回复:加群
以上是关于真香!利用 Shap 可完美实现机器学习模型输出可视化!的主要内容,如果未能解决你的问题,请参考以下文章
ML之shap:基于boston波士顿房价回归预测数据集利用Shap值对LiR线性回归模型实现可解释性案例
机器学习黑盒?SHAP(SHapley Additive exPlanations)使用 XGBoost 的可解释机器学习
再见“黑匣子模型“!SHAP 可解释 AI (XAI)实用指南来了!
ML之shap:基于adult人口普查收入二分类预测数据集(预测年收入是否超过50k)利用Shap值对XGBoost模型实现可解释性案例之详细攻略