一、概念

        SHAP(Shapley Additive Explanations)是一种基于博弈论的模型可解释性方法旨在量化每个特征对模型预测的贡献。核心思想源自Shapley值(Shapley Value),由诺贝尔经济学奖得主Lloyd Shapley在合作博弈论中提出,用于公平分配多参与者合作产生的收益。SHAP可以为模型预测提供直观、一致的解释,说明每个特征如何影响最终输出(例如分类概率或回归值)。

二、原理

        SHAP基于Shapley值,通过量化每个特征对模型预测的边际贡献,提供模型解释。所有特征的Shapley值之和等于模型预测值与基线值(通常是数据集的平均值)的差异。

1、Shapley值

        在合作博弈中,多个参与者(特征)共同产生收益(模型预测值)。Shapley值通过以下公式公平分配每个参与者的贡献:

        其中,F是特征集合,S是子集,f是模型预测函数。

三、python实现

import shap
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris

# 加载数据并训练模型
X, y = load_iris(return_X_y=True)
model = RandomForestClassifier().fit(X, y)

explainer = shap.TreeExplainer(model)  # 适用于树模型
shap_values = explainer.shap_values(X)

# 全局特征重要性
shap.summary_plot(shap_values, X, plot_type="bar")

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐