模型介绍
SHAP(SHapley Additive exPlanation,沙普利加和解释)是由经济学家Lloyd Shapley提出的博弈论概念,属于模型事后解释的方法。它的核心思想是计算特征对模型输出的边际贡献,再从全局和局部两个层面对“黑盒模型”进行解释。
SHAP实际是将输出值归因到每一个特征的shapely值上,换句话说,就是计算每一个特征的shapley值,依此来衡量特征对最终输出值的影响。
实战1--标准的UCI成人收入数据集
1、环境准备
本文实战过程在jupyter中操作,jupyter 进入预制虚拟环境可参考vscode虚拟环境_vscode虚拟环境安装其他包-CSDN博客
1.1 首先安装shap包
pip install shap
1.2 初始化 JavaScript 环境
shap.initjs()
作用:
- 加载必要的 JavaScript 库:SHAP 的可视化图表依赖于一些 JavaScript 库,如 D3.js 等。
shap.initjs()
会确保这些库被加载并初始化。 - 配置可视化环境:它设置了一些默认配置,以便 SHAP 的图表能够在 Jupyter Notebook 中正确显示,包括图表的大小、颜色方案等。
-
提供交互功能:SHAP 的一些图表是交互式的,允许用户通过鼠标悬停、点击等操作获取更多信息。
shap.initjs()
确保这些交互功能能够正常工作。
通常,在使用 SHAP 进行模型解释和可视化时,建议在代码的开头调用 shap.initjs()
,以确保后续的 SHAP 可视化图表能够正确显示。
2、数据集准备
2.1 使用标准的UCI成人收入数据集
X,y = shap.datasets.adult()
其中,X包含了数据集中的年龄等个人特征,y包含了数据集中的目标变量,即每个人的年收入是否超过 50,000 美元,表示为True/False
2.2 数据描述
X: