shap: 一個用於解釋任何機器學習模型預測結果的博弈論框架

shap: 一個用於解釋任何機器學習模型預測結果的博弈論框架

它解決了什麼問題

SHAP (SHapley Additive exPlanations) 透過提供一種博弈論方法來解釋任何 ML 模型輸出的「黑箱」問題。它允許使用者透過根據每個輸入特徵對最終結果的貢獻來分配信用,從而理解模型為何做出特定的預測。

運作原理

SHAP 使用博弈論中的 Shapley values 來為特定預測中的每個特徵分配重要性數值。它根據模型類型提供幾種專門的演算法:

  • TreeExplainer: 一種針對樹集成模型(如 XGBoost, LightGBM, CatBoost, scikit-learn, 和 pyspark)的高速精確演算法。
  • DeepExplainer: 基於 DeepLIFT 演算法,針對深度學習模型(TensorFlow/Keras/PyTorch)的高速近似演算法。
  • GradientExplainer: 使用期望梯度來近似 SHAP values,結合了 Integrated Gradients 和 SmoothGrad 的概念。
  • KernelExplainer: 一種模型無關的方法,使用加權局部線性回歸來估計任何函數的 SHAP values。
  • LinearExplainer: 對線性模型進行解析計算以獲得精確的 SHAP values。

對象是誰

需要解釋模型預測、偵錯模型行為,或是在醫療保健(例如:生存模型)或金融等領域為利害關係人提供透明度的資料科學家和 ML 工程師。

重點特性

  • 通用相容性: 可與任何機器學習模型配合使用,包括樹集成模型、深度學習網路和線性模型。
  • 多樣化的視覺化: 包括 waterfall plots, force plots, beeswarm plots, 和 scatter plots,用以視覺化特徵影響。
  • NLP 支援: 針對 Hugging Face transformers 提供專門支援,只需少量評估即可解釋自然語言預測。
  • 交互作用值: 能夠計算成對的交互作用效應,以揭示特徵之間隱藏的關係。

Sources