实例
Shapley值是合作博弈理论中广泛使用的一种方法,它具有理想的性质。本教程旨在帮助您理解如何计算和解释基于Shapley的机器学习模型。我们将采取实际动手的方法,使用shap Python包来逐步解释更复杂的模型。
实例一
import shap
import xgboost as xgb
x,y= shap.datasets.adult()
seed=12345
xgb_model=xgb.XGBRegressor(random_state=seed).fit(x,y)
explainer = shap.TreeExplainer(xgb_model)
shap_values = explainer.shap_values(x)
实例二
import shap
import xgboost as xgb
x,y= shap.datasets.adult()
seed=12345
xgb_model=xgb.XGBRegressor(random_state=seed).fit(x,y)
explainer = shap.Explainer(model, x)
shap_values = explainer(x)
输出内容
实例一输出
print(x.shape)
print(shap_values.shape)
[user@machine01 shap]$ (152, 11)
[user@machine01 shap]$ (152, 11)
此处输出的x的维度和 shap_values的维度都是(152,11),这说明每个特征与shap值是对应的关系。
实例二的输出
print(shap_values.data)
print(shap_values.values)
print(shap_values.base_values)
项目 | Value |
---|---|
shap_values.data | x 的值,所有特征的原值 |
shap_values.base_values | 所有样本汇总的平均shap值,所有值都一样 |
shap_values.values | 每个特征的SHAP值,正值代表正向贡献,负值代表负向贡献 |
解释器列表
SHAP公共对象和函数的API参考。还提供了演示如何使用每个对象/函数的API的示例笔记本。
项目 | Value |
---|---|
shap.Explainer | Uses Shapley values to explain any machine learning model or python function. |
shap.TreeExplainer | Uses Tree SHAP algorithms to explain the output of ensemble tree models. |
shap.GPUTreeExplainer | Experimental GPU accelerated version of TreeExplainer. |
shap.LinearExplainer | Computes SHAP values for a linear model, optionally accounting for inter-feature correlations. |