SHAP 值告訴你什麼資訊?
SHAP(SHapley Additive exPlanations)值常用於分析機器學習模型的輸出行為。下列何者最符合 SHAP 值所提供的資訊?
SHAP(SHapley Additive exPlanations)值常被用來分析機器學習模型的輸出行為。
問你:SHAP 值提供的是哪一種資訊?
一句話總結
SHAP 值告訴你:針對這一筆預測,每個特徵貢獻了多少,讓結果往哪個方向走。
先感受問題:模型說「高風險」,你不知道為什麼
假設「合泰保險」用機器學習模型評估車險申請人的理賠風險。模型輸入年齡、駕齡、過去三年事故次數、車種、居住地區等 15 個特徵,輸出一個 0 到 1 的風險分數。
申請人陳先生的風險分數是 0.82(高風險),系統建議提高保費 35%。
陳先生質疑:「我駕齡 20 年、沒有事故紀錄,為什麼被評為高風險?」
精算師想知道:「這個 0.82 是怎麼來的?是年齡、車種還是居住地讓他分數這麼高?」
用 SHAP 值分析後,答案出來了:陳先生住在台北市信義區(高理賠密度地區)讓風險分數 +0.18,他的車是進口高端車(維修成本高)讓分數 +0.15,而他的 20 年駕齡和零事故紀錄讓分數 -0.11。最後的高分主要是地區和車種造成的,不是他的駕駛行為。
這就是 SHAP 值的用途:把模型的預測結果「拆解」到每個特徵的貢獻,說清楚每個輸入做了什麼。
沒有 SHAP 值之前,怎麼解釋預測結果
在 SHAP 值流行之前,業界用了幾種方法,但都有根本限制:
- 全局特徵重要性:只能說「這個模型整體上最重視哪些特徵」,但無法說「陳先生這一筆具體是哪個特徵造成的」
- 部分依賴圖(PDP):顯示某個特徵和預測值的平均關係,但看不出這一筆個別案例
- 線性模型係數:只適用於線性模型,複雜的非線性模型完全用不了
- 工程師判斷:工程師自己猜「大概是因為這個」,但沒有量化依據,難以說服客戶或法規機構
- 對結果沒有解釋:只好在合約裡寫「AI 輔助決策,最終由人工審核」,但仍無法回應「為什麼」的問題
SHAP 值怎麼拆解單一預測的貢獻
SHAP 的核心思想來自賽局理論的 Shapley 值概念:當一群人合作完成一件事,每個人應該分到多少「功勞」或「責任」?
把這個邏輯套到模型預測上:模型用 15 個特徵預測出陳先生的風險分數 0.82,每個特徵各自「貢獻」了多少到這個分數上?
SHAP 的計算方式是:系統性地嘗試「加入」和「排除」每個特徵的組合,觀察每次加入某個特徵時,預測值的改變量,再加權平均得出該特徵的公平貢獻值。
最後每個特徵都得到一個 SHAP 值:正值代表這個特徵讓預測結果往預期方向推(推高風險),負值代表它把結果往反方向拉(降低風險)。所有特徵的 SHAP 值加起來等於這筆預測與基準值的差距。
這就是選項 C 說的:在單一預測結果中,各輸入特徵對最終輸出所產生的貢獻分配。
技術版:SHAP 值在可解釋 AI 中的地位
SHAP 屬於什麼領域:SHAP 是後處理可解釋 AI(Post-hoc XAI)的核心方法,和 LIME 同屬 Model-agnostic 的解釋技術。兩者都可以解釋任何黑盒模型,但 SHAP 的理論基礎更嚴謹,並且可以做局部(單一預測)和全局(整體模型)兩種解釋。
SHAP 的數學保證:SHAP 滿足四個賽局理論性質:局部精確性(各特徵 SHAP 值之和等於預測差值)、缺失性(缺失特徵貢獻為零)、一致性(特徵越重要 SHAP 值越大)、對稱性(行為相同的特徵獲得相同貢獻)。這讓 SHAP 的解釋具有理論唯一性,不像 LIME 可能產生不穩定結果。
實務上誰在用 SHAP:金融業用於解釋信貸決策(法規要求)、醫療業用於解釋診斷建議(醫生信任度)、電商用於解釋推薦邏輯(算法透明度)。Python 的 SHAP 套件讓計算非常方便,是業界最常用的 XAI 工具之一。
為什麼出題者要考 SHAP:SHAP 是初級 AI 規劃師必須認識的可解釋技術,考試會從「SHAP 提供什麼資訊」、「SHAP 和 LIME 的差異」、「何時該用 SHAP」等角度出題。
為什麼其他選項是錯的
A模型在訓練過程中,各特徵對損失函數收斂速度的影響程度
分析哪些特徵讓訓練時的損失函數下降更快。
SHAP 是在模型訓練完後做解釋(Post-hoc),它分析的是「預測結果」而不是「訓練過程」。損失函數收斂速度是訓練優化的概念,跟 SHAP 完全不同的問題域。
把「特徵重要性」和「訓練效率」混在一起的人。SHAP 關心的是預測結果的貢獻,不是訓練速度。
B依據特徵對模型整體準確率的影響,自動篩除低重要性變數
用某個指標評估特徵重要性,把不重要的特徵去掉。
這描述的是特徵選擇(Feature Selection),不是 SHAP 的用途。SHAP 不會自動刪除特徵,也不直接測量「整體準確率」的影響。SHAP 的輸出是每個特徵在每筆預測中的貢獻值,是解釋工具,不是特徵工程工具。
覺得「看特徵重要性當然是為了去掉不重要的特徵」的人。SHAP 確實可以用來判斷哪些特徵全局上比較重要,但這只是其中一個應用,SHAP 的核心定義是「貢獻分配」,不是「特徵篩選」。
D透過調整特徵權重,使模型在推論階段降低計算複雜度
用某種方式調整特徵,讓模型推論時跑得更快。
SHAP 是分析工具,不會修改模型的特徵權重,更不是為了加速推論。SHAP 計算本身其實計算成本相當高(需要計算大量特徵組合),與「降低計算複雜度」的目標完全相反。
把 SHAP 和模型壓縮、特徵剪枝等優化技術混為一談的人。SHAP 是解釋型工具,不是優化型工具。
同個考點下次怎麼變形
SHAP 值為正和為負分別代表什麼?
SHAP 值有正有負,各代表什麼意思?
SHAP 值為正代表這個特徵讓預測結果高於基準值(往正方向貢獻);SHAP 值為負代表這個特徵讓預測結果低於基準值(往負方向拉)。例如在房價預測中,「靠近地鐵站」的 SHAP 值為正代表它讓這棟房子的預測價格高於平均,「老舊屋齡」的 SHAP 值為負代表它把預測價格拉低。
SHAP 全局特徵重要性圖表怎麼看?
SHAP 不是解釋單一預測嗎?怎麼還有全局的圖表?
SHAP 可以對所有訓練資料的每筆預測都算一次 SHAP 值,然後把每個特徵的 SHAP 值絕對值取平均,就得到全局特徵重要性:平均 SHAP 值大的特徵,對整體模型影響最大。這讓 SHAP 既可以做局部解釋(單筆),也可以做全局分析(整體模型行為)。
SHAP 和傳統的特徵重要性(Feature Importance)有什麼不同?
隨機森林也有特徵重要性,跟 SHAP 有什麼差別?
傳統特徵重要性(如隨機森林的 Gini Importance)只能給出全局的特徵排名,無法解釋單一預測,也可能因為特徵相關性而偏差。SHAP 可以給出每一筆預測的個別解釋,且數學上有唯一性保證。另外,傳統特徵重要性不區分「正面影響」和「負面影響」,SHAP 的正負號則明確告訴你特徵推高還是拉低了預測值。
為什麼 SHAP 計算成本比 LIME 高?
SHAP 的理論比 LIME 嚴謹,但代價是什麼?
SHAP 需要計算所有特徵子集的組合(2 的 n 次方種),對 n=15 個特徵就要算 32768 種組合,才能得到理論上公平的貢獻分配。LIME 只在局部區域隨機採樣幾百次,計算量小得多。實務中有 TreeSHAP 等加速版本,針對樹狀模型大幅降低計算量,讓 SHAP 在大規模應用中更可行。
醫療 AI 診斷中,SHAP 值可以幫醫生做什麼決策?
醫生會看 SHAP 值嗎?有什麼實際用途?
SHAP 可以幫醫生理解「AI 為什麼判斷這個病人是高風險」:例如心臟病風險模型給出高分,SHAP 顯示主要貢獻來自「血壓偏高」和「家族病史」,而不是「體重」。醫生可以核實這個判斷是否合理,如果 AI 的高分竟然主要來自一個不相關的特徵,醫生可以質疑模型可靠性,而不是盲目信任數字。
想再往下看,這 5 個
- SHAP(SHapley Additive exPlanations)基於賽局理論 Shapley 值,計算每個輸入特徵對單一預測結果的貢獻分配,兼具局部與全局解釋能力
- 可解釋人工智慧(Explainable AI)讓 AI 決策可被人類理解的研究領域,SHAP 是其中最廣泛部署於金融、醫療高風險場景的工具之一
- 特徵工程(Feature Engineering)設計與轉換輸入特徵的過程,SHAP 可回溯評估每個工程特徵對模型輸出的實際貢獻,支援特徵品質驗證
- LIME(Local Interpretable Model-agnostic Explanations)同為後處理 XAI 方法,透過局部代理模型提供特徵影響解釋,與 SHAP 的理論基礎和計算方式不同
- 特徵選擇法(Feature Selection)從輸入變數中篩除低重要性特徵的技術,與 SHAP 提供的單筆預測貢獻分配在目標和方法上均不相同