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
- undefinedshap/shap