![使用 LIME 和 SHAP 更好地解释机器学习模型的预测_第1页](http://file4.renrendoc.com/view/208a1c08c093170c6155ca6459c1e5dd/208a1c08c093170c6155ca6459c1e5dd1.gif)
![使用 LIME 和 SHAP 更好地解释机器学习模型的预测_第2页](http://file4.renrendoc.com/view/208a1c08c093170c6155ca6459c1e5dd/208a1c08c093170c6155ca6459c1e5dd2.gif)
![使用 LIME 和 SHAP 更好地解释机器学习模型的预测_第3页](http://file4.renrendoc.com/view/208a1c08c093170c6155ca6459c1e5dd/208a1c08c093170c6155ca6459c1e5dd3.gif)
![使用 LIME 和 SHAP 更好地解释机器学习模型的预测_第4页](http://file4.renrendoc.com/view/208a1c08c093170c6155ca6459c1e5dd/208a1c08c093170c6155ca6459c1e5dd4.gif)
![使用 LIME 和 SHAP 更好地解释机器学习模型的预测_第5页](http://file4.renrendoc.com/view/208a1c08c093170c6155ca6459c1e5dd/208a1c08c093170c6155ca6459c1e5dd5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
使用LIME和SHAP更好地解释机器学习模型的预测作为数据科学家或机器学习从业者,将可解释性集成到机器学习模型中可以帮助决策者和其他利益相关者有更多的可见性并可以让他们理解模型输出决策的解释。模型我们将使用来自Kaggle的糖尿病数据集。主要关注点是可解释性,因此我们不会花太多时间尝试拥有花哨的模型。#
Load
useful
libraries
import
pandas
as
pd
from
sklearn.model_selection
import
train_test_split
from
sklearn.ensemble
import
RandomForestClassifier
from
sklearn.model_selection
import
cross_val_score
`
#
Read
data
set
df
=
pd.read_csv("./data/diabetes.csv")
#
Separate
Features
and
Target
Variables
X
=
df.drop(columns='Outcome')
y
=
df['Outcome']
#
Create
Train
&
Test
Data
X_train,
X_test,
y_train,
y_test
=
train_test_split(
X,
y,test_size=0.3,
stratify
=y,
random_state
=
13)
#
Build
the
model
rf_clf
=
RandomForestClassifier(max_features=2,
n_estimators
=100
,bootstrap
=
True)
#
Make
prediction
on
the
testing
data
y_pred
=
rf_clf.predict(X_test)
#
Classification
Report
print(classification_report(y_pred,
y_test))
rf_clf.fit(X_train,
y_train)SHAP它是SHapleyAdditiveexPlanations的缩写。该方法旨在通过计算每个特征对预测的贡献来解释实例/观察的预测。#
Import
the
SHAP
library
import
shap
#
load
JS
visualization
code
to
notebook
shap.initjs()
#
Create
the
explainer
explainer
=
TreeExplainer(rf_clf)
"""
Compute
shap_values
for
all
of
X_test
rather
instead
of
a
single
row,
to
have
more
data
for
plot.
"""
shap_values
=
explainer.shap_values(X_test)
print("Variable
Importance
Plot
-
Global
Interpretation")
figure
=
plt.figure()
shap.summary_plot(shap_values,
X_test)SHAP有许多用于模型解释的可视化图表,但我们将着重介绍其中的几个。特征重要性的汇总图print("Variable
Importance
Plot
-
Global
Interpretation")
figure
=
plt.figure()
shap.summary_plot(shap_values,
X_test)我们可以从上面的图中得到以下的结论:它显示了重要特征的列表,从最重要到最不重要(从上到下)。所有特征似乎对诊断为糖尿病(标签=1)或未诊断(标签=0)的两个类别的贡献均等,因为基本上都占据了矩形的50%。根据该模型,Glucose(葡萄糖)是对预测贡献最大的特征。Age(年龄)是贡献第二大的特征Pregnancies(怀孕)是预测能力最强的第5个特征。特定分类结果的汇总图#
Summary
Plot
Deep-Dive
on
Label
1
shap.summary_plot(shap_values[1],
X_test)对于分类问题,每个标签都有SHAP值。在我们的例子中,我们使用1(True)的预测显示该类结果的汇总。该图的表示内容如下:特征的重要性和排序与汇总图一样,排名越上,重要性越高。图中每个点代表单个数据实例的特征值。颜色表明该特征是高值(红色)还是低值(蓝色)。X轴代表对预测输出的正或负贡献当我们将这些分析应用于特征时,我们得到以下结论:对于葡萄糖:我们看到大多数高值(红点)对预测输出有正贡献(在X轴上为正)。换句话说,如果单个数据实例的葡萄糖量很高,则其获得1结果(被诊断患有糖尿病)的机会会大大增加,而低量(蓝点)会降低(负X轴值)被诊断为糖尿病的概率。对于年龄:对年龄进行相同的分析。年龄越高,数据实例(患者)最有可能被诊断出患有糖尿病。另一方面,模型在涉及未成年人时似乎很混乱,因为我们可以在垂直线(X轴=0)的每一侧观察到几乎相同数量的数据点。由于年龄特征对分析来说似乎令人困惑,我们可以使用下面的相关图来获得更细粒度的信息。相关图(依赖图)#
Dependence
Plot
on
Age
feature
shap.dependence_plot('Age',
shap_values[1],
X_test,
interaction_index="Age")从相关图中我们可以清楚地看到,30岁以下的患者被诊断为糖尿病的风险较低,而30岁以上的患者被诊断为糖尿病的风险较高。更详细的内容可以参见(点击:
用SHAP可视化解释机器学习模型实用指南(上)
用SHAP可视化解释机器学习模型实用指南(下)
又一机器学习模型解释神器:ShapashLIME它是LocalInterpretableModelAgnosticExplanation的缩写。局部(Local)意味着它可以用于解释机器学习模型的个别预测。要使用它也非常的简单,只需要2个步骤:(1)导入模块,(2)使用训练值、特征和目标拟合解释器。#
Import
the
LimeTabularExplainer
module
from
lime.lime_tabular
import
LimeTabularExplainer
#
Get
the
class
names
class_names
=
['Has
diabetes',
'No
diabetes']
#
Get
the
feature
names
feature_names
=
list(X_train.columns)
#
Fit
the
Explainer
on
the
training
data
set
using
the
LimeTabularExplainer
explainer
=
LimeTabularExplainer(X_train.values,
feature_names
=
feature_names,
class_names
=
class_names,
mode
=
'classification')代码中我们使用class_names创建了两个标签,而不是1和0因为使用名字会更加的直观。对单例进行解释说明这里的解释是针对测试数据中的单个实例进行的#Perform
the
explanation
on
the
8th
instance
in
the
test
data
explaination
=
explainer.explain_instance(X_test.iloc[8],
rf_clf.predict_proba)
#
show
the
result
of
the
model's
explaination
explaination.show_in_notebook(show_table
=
True,
show_all
=
Fals
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《水文分析》课件
- 《心肺复苏术》课件
- 手术室麻醉患者护理方式及实施心得探析
- 紫色插画风肥胖日减肥健身锻炼健康教育主题
- 期末总结与新学期规划模板
- 探索生态系统奥秘
- 当代大学生职业定位与人生价值观调查研究
- 植树节环保行动模板
- 咨询业务半年报告模板
- 幼儿园实施家长学校的方法与成效
- (高清版)JTGT 3650-01-2022 公路桥梁施工监控技术规程
- 2024年山东药品食品职业学院单招职业适应性测试题库含答案
- 《行政伦理学教程(第四版)》课件 张康之 第8-13章 行政组织伦理-技术时代的行政伦理
- 进出洁净室培训
- 2024年高考语文标点符号的基本用法大全(新标准)
- 2024ABB IRB IRB6700Inv IRB6700I产品手册指南
- 认识职业:医生
- 外贸进出口基础知识培训课件
- 2023年四川省资阳中考英语真题(含答案)
- 中国心力衰竭诊断与治疗指南解读
- 学生平板电脑使用规则
评论
0/150
提交评论