摘要
本文介紹shap原理萎津,并給出一個簡單的示例揭示shap值得計算過程致盟;
然后介紹如何將shap值轉化為我們更容易理解的概率犀斋。
什么是shap
讓機器學習獲得可解釋性润努,能夠計算出每個特征對結果的一個貢獻度。
shap的論文
github鏈接
參考blog
shap的理論是什么
博弈論和機器學習
SHAP值基于Shapley值鱼冀,Shapley值是博弈論中的一個概念报破。但博弈論至少需要兩樣東西:一個游戲和一些玩家悠就。這如何應用于機器學習的可解釋性?假設我們有一個預測模型充易,然后:
“游戲”是復現(xiàn)模型的結果
“玩家”是模型中包含的特征
Shapley所做的是量化每個玩家對游戲的貢獻梗脾。SHAP所做的是量化每個特征對模型所做預測的貢獻。
需要強調的是盹靴,我們所謂的“游戲”只涉及單一的觀察樣本炸茧。一個游戲:一個觀察樣本。實際上稿静,SHAP是關于預測模型的局部可解釋性的梭冠。
冪集
特征的power set(冪集)
舉個例子,我們可以想象一個機器學習模型(假設是線性回歸改备,但也可以是其他任何機器學習算法)控漠,知道這個人的年齡、性別和工作悬钳,它可以預測一個人的收入盐捷。
Shapley值是基于這樣一種想法,即應該考慮每個玩家可能的組合的結果來決定單個玩家的重要性默勾。在我們的例子中碉渡,這對應于f特征的每個可能組合(f從0到F, F是所有可用特征的數(shù)量)母剥。
在數(shù)學中滞诺,這被稱為“power set”,可以用有向無環(huán)圖表示
示例
通過年齡环疼、工作习霹、性別來預測收入的模型
-
第一步:對特征構建冪集如下:
- 第二步:根據(jù)構建的冪集分別構建模型
-
第三步:計算一個樣本的關于年齡的shap值如下
將該樣本輸入模型得到不同的結果如下:
先計算年齡的貢獻度
通過GAG計算權值
最后得到年齡的shap值
分別計算各個特征的shap值如下:
SHAP_Age(x?) = -11.33k $
SHAP_Gender(x?) = -2.33k $
SHAP_Job(x?) = +46.66k $
給出計算shap值得公式如下:
-
通常情況下對于單個樣本得到的shap值可以表示如下:
或者如下:
或者以表格的形式出現(xiàn)
如何將shap值以概率的形式進行展示
參考博文
示例:將shap值進行概率轉換,然后計算差值炫隶,看該特征是否增加了生存的概率
讓我們以一個個體為例序愚。假設已知除年齡外的所有變量,其SHAP和為0〉认蓿現(xiàn)在假設年齡的SHAP值是2爸吮。
我們只要知道f()函數(shù)就可以量化年齡對預測的生存概率的影響:它就是f(2)-f(0)。在我們的例子中望门,f(2)-f(0) = 80%-36% = 44%
毫無疑問形娇,生存的概率比SHAP值更容易被理解。
概率計算公式:
最終得出每個樣本的各個特征的shap值
為什么同樣特征下不同樣本的概率不一樣筹误?
擁有一張三等艙的票會降低第一個乘客的生存概率-4.48%(相當于-0.36 SHAP)桐早。請注意,3號乘客和5號乘客也在三等艙。由于與其他特征的相互作用哄酝,它們對概率的影響(分別為-16.65%和-5.17%)是不同的友存。
將多個樣本的單個特征列出進行分析:年齡對生存的影響
將多個樣本的雙個特征列出進行分析:乘客票價與客艙等級對生存的影響
可以得出的結論:
我們可以用概率來量化效果,而不是用SHAP值陶衅。例如屡立,我們可以說,平均來說搀军,60-70歲的人比0-10歲的人(從+14%到-13%)的存活率下降了27%
我們可以可視化非線性效應膨俐。例如,看看乘客票價罩句,生存的可能性上升到一個點焚刺,然后略有下降
我們可以表示相互作用。例如门烂,乘客票價與客艙等級乳愉。如果這兩個變量之間沒有相互作用,這三條線就是平行的屯远。相反匾委,他們表現(xiàn)出不同的行為。藍線(頭等艙乘客)的票價稍低氓润。特別有趣的是紅線(三等艙乘客)的趨勢:在兩個相同的人乘坐三等艙時,支付50 - 75英鎊的人比支付50英鎊的人更有可能生存下來(從-10%到+5%)薯鳍。