shap: 一个用于解释任何机器学习模型预测结果的游戏理论框架

shap: 一个用于解释任何机器学习模型预测结果的游戏理论框架

它解决了什么问题

SHAP (SHapley Additive exPlanations) 通过提供一种博弈论方法来解释任何 ML 模型的输出,从而解决了机器学习的“黑盒”问题。它允许用户通过根据每个输入特征对最终结果的贡献来分配信用,从而理解模型为何做出特定预测。

工作原理

SHAP 使用博弈论中的 Shapley 值来为特定预测的每个特征分配重要性值。它根据模型类型提供几种专门的算法:

  • TreeExplainer: 针对树集成模型(如 XGBoost, LightGBM, CatBoost, scikit-learn, 和 pyspark)的高速精确算法。
  • DeepExplainer: 基于 DeepLIFT 算法,针对深度学习模型 (TensorFlow/Keras/PyTorch) 的高速近似算法。
  • GradientExplainer: 使用期望梯度来近似 SHAP 值,结合了 Integrated Gradients 和 SmoothGrad 的思想。
  • KernelExplainer: 一种模型无关的方法,使用加权局部线性回归来估计任何函数的 SHAP 值。
  • LinearExplainer: 对线性模型进行解析计算以获得精确的 SHAP 值。

适用人群

需要解释模型预测、调试模型行为,或在医疗保健(例如生存模型)或金融等领域为利益相关者提供透明度的的数据科学家和 ML 工程师。

亮点

  • 通用兼容性: 适用于任何机器学习模型,包括树集成模型、深度学习网络和线性模型。
  • 多样化的可视化: 包括 waterfall plots, force plots, beeswarm plots, 和 scatter plots 以可视化特征影响。
  • NLP 支持: 专门支持 Hugging Face transformers,通过极少的评估次数来解释自然语言预测。
  • 交互值: 能够计算成对的交互效应,以揭示特征之间的隐藏关系。

Sources