利用 SHAP 解释集成模型和分类模型
在机器学习中,对模型预测结果进行解释是非常重要的,它可以帮助我们理解模型的决策过程,增强模型的可信度。本文将介绍如何使用 SHAP(SHapley Additive exPlanations)库来解释不同类型的机器学习模型,包括集成分类模型、分类提升模型、多分类分类提升模型以及 LightGBM 模型。
1. 集成分类模型:SHAP 与成人数据集
首先,我们使用经典的成人数据集(Adult dataset),这是一个常见的收入普查分类数据集,因其易于理解且常出现在机器学习示例代码中而广受欢迎。
import shap
import sklearn
# 加载成人数据集
X_adult, y_adult = shap.datasets.adult()
# 训练简单的线性逻辑回归模型
model_adult = sklearn.linear_model.LogisticRegression(max_iter=10000)
model_adult.fit(X_adult, y_adult)
上述代码加载了成人数据集,并训练了一个逻辑回归模型,这是一个二分类问题。
为了进一步分析,我们定义了两个函数,分别用于计算预测概率和对数赔率比:
def model_adult_proba(x):
return model_adult.predict_proba(x)[:,1]
def model_adult_log_odds(x):
p =