SHAP 值(SHAP Values)是什麼?

基於Shapley值的機器學習模型解釋方法,公平分配每個特徵對預測結果的貢獻。|本頁含完整原理、應用場景、iPAS 考試重點與 3 個常見問答。

英文
SHAP Values
主題標籤
AI倫理與治理、模型評估、機器學習
考點定位
非 iPAS 核心術語
最後更新
2026/06/22
SHAP 值(SHAP Values)是什麼? AI倫理與治理模型評估
術語快查

搜尋意圖: 如果你在找「SHAP 值 是什麼」或「SHAP 值 和相近概念差在哪」,先看這頁的短定義、完整說明與延伸比較。

TL;DR: 基於Shapley值的機器學習模型解釋方法,公平分配每個特徵對預測結果的貢獻。

實用情境: 適合用在閱讀 AI 文章、產品文件或和同事討論時,先用一頁快速對齊概念。

下一步: 先讀完定義,再往下看延伸比較與對應工具,把概念轉成實際應用。

基於Shapley值的機器學習模型解釋方法,公平分配每個特徵對預測結果的貢獻。

核心概念

SHAP值源於遊戲論中的Shapley值。在合作遊戲中,多個玩家合作創造總收益,問題是如何公平地分配這個收益?Shapley值提供了唯一滿足四個公理(效率性、對稱性、虛擬玩家、可加性)的分配方案。

在機器學習中,特徵被視為玩家,模型預測值被視為遊戲收益。SHAP值計算每個特徵對預測的平均貢獻,考慮了該特徵與其他特徵的各種組合。

SHAP的核心公式:

φ_i(f) = Σ_{S⊆N{i}} |S|! (|N|-|S|-1)! / |N|! * [f(S∪{i}) - f(S)]

其中φ_i是特徵i的SHAP值,N是所有特徵集合,S是任意特徵子集,f(S)是僅用子集S中的特徵時模型的預測值。

SHAP值的關鍵特性:

  • 局部解釋:對單個預測樣本提供解釋,而非全局模式
  • 理論保證:滿足Shapley公理,具有數學上的合理性
  • 公平性:基於邊際貢獻,不會無故給某個特徵高權重
  • 相互作用建模:能捕捉特徵間的交互效應

運作原理

計算SHAP值的過程涉及:

  1. 特徵組合列舉:對於N個特徵,枚舉所有2^N個可能的子集。每個子集代表一種「是否包含該特徵」的情景。

  2. 邊際貢獻計算:對於特定特徵i,計算加入該特徵前後的模型預測變化。由於加入順序不同會導致邊際貢獻不同,需要平均所有可能的順序。

  3. 權重平均:不同大小的特徵子集的邊際貢獻需要用Shapley權重進行加權平均,權重為 |S|! (|N|-|S|-1)! / |N|!,確保結果的理論性質。

  4. 預測分解:最終得到的SHAP值滿足局部準確性:base_value + Σ SHAP_i = 預測值。即預測值可完全分解為基準值加上各特徵的SHAP貢獻。

直接計算Shapley值的複雜度為O(2^N),對於特徵數多的模型不可行。因此實踐中使用近似算法:

  • TreeSHAP:針對樹模型(決策樹、隨機森林、梯度提升)的高效演算法,複雜度為O(L T D)其中L是樹葉數、T是樹數、D是樹深度
  • KernelSHAP:使用加權迴歸近似任何模型,採樣特徵組合計算邊際貢獻
  • DeepSHAP:針對深度神經網絡,結合DeepLIFT與SHAP的思想

實際應用

在信用評分中,銀行使用SHAP解釋拒貸決定。系統能說明「年收入過低貢獻-0.15」「負債比過高貢獻-0.20」「存款不足貢獻-0.10」,這比黑箱決策更符合法規要求。

在醫療診斷中,SHAP協助醫生理解AI診斷。例如肺癌診斷模型在顯示「異常區域SHAP值+0.35」「患者年齡貢獻+0.12」時,醫生能更有信心接受AI建議。

在欺詐檢測中,SHAP識別詐騙特徵。系統可發現「交易金額異常大」「地理位置變化」「時間模式異常」等特徵的貢獻,幫助審查員快速判斷。

在特徵工程中,SHAP幫助識別冗餘或無用特徵。若特徵的SHAP值始終接近0,說明模型不依賴該特徵,可以刪除以簡化模型。

在模型調試中,SHAP幫助發現模型偏見。若對某個人口群體的SHAP貢獻始終偏低,可能表示模型對該群體存在系統性歧視。

常見誤區

誤區1:認為SHAP值絕對客觀。SHAP值是基於Shapley值的特定定義,在其他定義下(如其他遊戲論值概念)結果會不同。應視SHAP為一種視角,而非唯一真理。

誤區2:混淆SHAP值與因果效應。SHAP是關聯分析,不涉及因果性。一個特徵的高SHAP值說明它對預測重要,但不說明改變它會導致預測改變(特別是在特徵相關時)。

誤區3:過度解釋交互作用。SHAP值計算了平均邊際貢獻,但對於強非線性模型,這個平均可能掩蓋了不同樣本上完全不同的貢獻模式。

誤區4:假設SHAP值之和等於模型預測。這對單個樣本成立(局部準確性),但對跨多個樣本的SHAP平均可能失效,特別是使用近似演算法時。

與相關技術的比較

  • 與特徵重要性的區別:特徵重要性(如Gini重要性)是全局度量,衡量特徵對全體樣本的平均貢獻。SHAP是局部度量,對每個樣本單獨計算。特徵重要性快速但粗糙,SHAP精細但計算量大。
  • 與LIME的區別:LIME在每個預測點用線性模型進行局部近似,簡單快速但可能不準確。SHAP基於Shapley值理論,更堅實但計算複雜。對於線性模型,LIME與SHAP接近;對於非線性模型,SHAP通常更可信。
  • 與注意力機制的關係:在Transformer等神經網絡中,注意力權重顯示模型關注的位置。SHAP值可視化特徵的貢獻,兩者互補但定義不同。

常見問題

為什麼SHAP值比簡單的特徵重要性更好?

特徵重要性(如Gini、置換重要性)是全局聚合指標,無法解釋單個預測。例如若兩個相關特徵中一個被選為重要,另一個會被視為不重要,但實際上兩者對預測貢獻相當。SHAP值針對每個樣本計算,能細粒度地分解預測。例如同一個模型,對樣本A特徵X的SHAP值可能是+0.2,對樣本B可能是-0.1,反映了特徵在不同上下文的不同作用。此外,SHAP滿足Shapley公理,理論上更加堅實,避免了特徵重要性的某些任意性。

計算SHAP值的計算成本如何降低?

完整計算SHAP值複雜度為O(2^N),對於特徵數多的模型不可行。降低成本的方法:(1)選擇適當的演算法:TreeSHAP對樹模型高效(O(LD)),不要對樹模型用KernelSHAP;(2)特徵採樣:不計算所有2^N個子集,而是採樣其中一部分;(3)近似算法:KernelSHAP通過加權迴歸近似,精度損失但速度快;(4)特徵分組:如果某些特徵高度相關,可以分組後計算,減少特徵數;(5)並行計算:SHAP計算天然可並行,可利用GPU加速。

SHAP值能用於特徵選擇嗎?

可以,但要謹慎。若特徵的平均|SHAP值|接近0,表示該特徵平均而言對預測貢獻小,可以考慮刪除。但這不是充分條件,因為(1)特徵可能只在特定情況下重要,平均掩蓋了這種重要性;(2)特徵可能與其他特徵共線,刪除一個後其他特徵會補償,導致模型精度不變;(3)特徵可能無法刪除(如受法規約束的變數)。更穩健的方法是結合多個角度:SHAP貢獻、特徵重要性、與輸出的相關性、領域知識,綜合決定是否刪除特徵。