理解用於計算SHAP值的公式

2020-12-04 不靠譜的貓

在本文中,我們將了解SHAP(SHapley Additive exPlanations)的理論基礎,並看看SHAP值的計算方法。

博弈論與機器學習

SHAP值基於Shapley值,Shapley值是博弈論中的一個概念。但博弈論至少需要兩樣東西:遊戲和參與者。這如何應用於機器學習的可解釋性呢?假設我們有一個預測模型:

「遊戲」再現機器學習模型的結果,「玩家」是機器學習模型中包含的功能。Shapley所做的是量化每個玩家對遊戲的貢獻。SHAP所做的是量化每個特徵對機器學習模型做出的預測的貢獻。

需要強調的是,我們所謂的「遊戲」只涉及單一的觀察。一個遊戲:一個觀察。實際上,SHAP是關於預測模型的局部可解釋性的。

特徵集

舉例來說,我們將想像一個機器學習模型(假設是線性回歸,但也可以是其他任何機器學習算法),該模型可以根據一個人的年齡,性別和工作來預測該人的收入。

Shapley值基於以下思想:應考慮玩家的每個可能組合結果,以確定單個玩家的重要性。在我們的情況下,這對應於f個特徵的每種可能組合(f從0到F,F是示例3中所有可用特徵的數量)。

在數學上,這稱為「 冪集 」,可以表示為樹。

每個節點代表一個特徵組合。每條邊代表包含了一個在前一個組合中不存在的特徵。

我們從數學上知道一個冪集的勢是2的n次方,其中n是原始集合的元素數,實際上,在我們的例子中,我們有2 ^ F = 2 ^ 3 = 8個可能的特徵集合。

現在,SHAP需要為冪集中的每個不同的組合訓練一個不同的預測模型,也就是2 ^ F個模型。當然,這些模型在涉及它們的超參數和訓練數據方面是完全等價的。唯一改變的是模型中包含的一組特性。

假設我們已經在相同的訓練數據上訓練了8個線性回歸模型。我們可以採取一個新的觀察(我們稱之為x),並查看8個不同模型對同一觀測值x的預測。

在此,每個節點代表一個模型。但是邊代表什麼呢?

SHAP公式(1/2)-特徵的邊際貢獻

正如上面所看到的,兩個連接節點的預測之間的差距可以歸因於附加特徵的影響。這被稱為特徵的「邊際貢獻」。

因此,每個邊都代表要素對模型帶來的邊際貢獻。

假設我們位於節點1中,該節點是沒有特徵的模型。該模型將簡單地預測所有訓練觀測值的平均收入(5萬美元)。如果我們移到節點2,它是一個只有一個特徵(Age)的模型,則x的預測現在為40k $。這意味著知道x的年齡會使我們的預測降低10k $。

因此,Age對僅包含Age作為特徵的模型帶來的邊際貢獻為-10k $。在公式中:

當然,要獲得Age對最終模型的總體影響(即,年齡x的年齡的SHAP值),有必要考慮Age在模型(所有存在Age的模型)中的邊際貢獻。在我們的樹表示中,這意味著要考慮連接兩個節點的所有邊,使得:

上面的一個不包含Age底部的包含Age。在下圖中,這些邊以紅色突出顯示。

Age的邊際貢獻

然後,所有這些邊際貢獻都通過加權平均值進行匯總。

其中w 1 + w 2 + w 3 + w 1 = 1。

SHAP公式(2/2)-權衡邊際貢獻

但是,我們如何確定邊的權重呢?

想法是:

1個特徵模型所有邊際貢獻的權重之和應等於2個特徵模型所有邊際貢獻的權重之和,依此類推。換句話說,同一「行」上所有權值的和應該等於任何其他「行」上所有權值的和。在我們的示例中,這意味著:w1= w2+ w3= w4。f-feature-model的所有邊際貢獻的權重應該是相等的,對於每個f,換句話說,同一「行」上的所有邊應該是相等的。在我們的示例中,這意味著:w2= w3。因此,(請記住,它們的和應為1)解是:

w = 1/3w 2 = 1/6w = 1/6w = 1/3你能猜出一般框架中確定權重的模式嗎?

說明:邊的權值是同一「行」中邊總數的倒數。或者,一個f-feature-models的邊際貢獻的權重是所有f-feature-models可能邊際貢獻的數量的倒數。

是否有計算公式呢?實際上,很簡單。

每一個f-feature模型都有f個邊際貢獻(每個特徵一個),所以計算可能的f-feature模型的數量並乘以f就足夠了。因此,問題歸結為計算可能的f-feature模型的數量,給定f,知道特徵的總數是F,這就是二項式係數的定義。

綜上所述,我們擁有所有f-feature-models 的所有邊際貢獻的數量,換句話說,每個「行」中的邊的數量為:

取它的倒數就足夠了,我們得到了f-feature-models邊際貢獻的權重。

下圖對此進行了舉例說明:

現在,我們擁有所有計算元素X 0針對Age的SHAP值:

最後

我們建立了3-feature-model來計算年齡的SHAP值。推廣到任意特徵和任意F,我們得到公式:

應用到我們的示例中,公式得出:

SHAP_Age(x) = -11.33k $SHAP_Gender(x) = -2.33k $SHAP_Job(x) = +46.66k $將它們加起來得到+ 33k $,這恰好是完整模型的輸出(83k $)與沒有特徵的虛擬模型的輸出(50k $)之差。

這是SHAP值的一個基本特徵:將給定觀測的每個特徵的SHAP值相加,得到模型預測與null模型(或其邏輯函數,如這裡所示)之間的差異。這實際上就是它們名字的由來:SHapley Additive exPlanations。

如上所述,原始的SHAP公式需要訓練2 ^ F模型。對於一個有50個6特徵的機器學習模型,這意味著要訓練1e15個模型!事實上,隨著F的增加,上面的公式很快就不適用了。這時候可以使用Slundberg 庫。

相關焦點

  • Excel函數公式大全之利用MDETERM函數計算數組的矩陣行列式的值
    各位Excel天天學的小夥伴們大家好,歡迎收看Excel天天學出品的excel2019函數公式大全課程。今天我們依舊要學習的是Excel函數中的數學函數MDETERM函數。今天我們這個例子是計算數組的矩陣行列式的值。
  • 回歸標準差的計算公式 - CSDN
    02回歸係數的標準差標準誤差越大,回歸係數的估計值越不可靠,這可以通過T值的計算公式可知(自查)。03T檢驗 用於檢驗係數是否為零。一般為簡化函數的處理過程都會對似然函數進行對數化處理,這樣最後得到的極大似然函數就稱之為對數極大似然函數)的那些參數的值來估計該分布的參數,從而提供一種用於估計刻畫一個分布的一組參數的方法。其次,理解對數似然估計函數值。對數似然估計函數值一般取負值,實際值(不是絕對值)越大越好。第一,基本推理。
  • LPR利率加點值怎麼計算?來看看加點公式
    來源:智匯掌上金融很多人可能會選LPR利率,但是不清楚LPR加點是怎麼確定的,LPR利率加點值怎麼計算?詳細了解lpr計算利率加點公式LPR利率加點值怎麼計算?第一步:LPR利率加點值是根據轉換前和轉換後利率不變的思想來的,也就是等價轉換,轉換之後,加點值是固定不變的第二步:如果我們以前的利率是5%,就要用5%的利率減去2019年12月份確定的LPR利率4.8%第三步:5%減去4.8%,等於0.2%,這個LPR利率加點值就是0.2%(+20BPS)第四步:LPR利率加點值確定後是不變的,可正可負
  • 條件概率,全概率,貝葉斯公式理解
    另外,比例Pr(B|A)/Pr(B)也有時被稱作標準似然度(standardised likelihood),Bayes法則可表述為:後驗概率 = 標準似然度 * 先驗概率要理解貝葉斯推斷,必須先理解貝葉斯定理。後者實際上就是計算"條件概率"的公式。
  • 銷軸的計算公式
    公式中:Q——把銷軸作為簡支梁分析所求得的最大剪力值    d——銷軸直徑    [4]——銷軸的許用剪切應力,這裡採用45號鋼[4]    3、平均剪應力覆核:    將銷軸按雙剪進行平均剪應力計算
  • 電感Q值計算公式及Q值影響因素詳解
    打開APP 電感Q值計算公式及Q值影響因素詳解 佚名 發表於 2016-11-30 10:52:29 對調諧迴路中的電感線圈,Q值要求較高,因為Q值越高,迴路的損耗就越小,迴路的效率就越高;對耦合線圈來說,Q值可以低一些;而對於低頻或高頻扼流圈,則可以不做要求。 實際上,Q值的提高往往受到一些因素的限制,如導線的直流電阻、線圈骨架的介質損耗、鐵心和屏蔽引起的損耗以及高頻工作時的集膚效應等。因此,線圈的Q值不可能做得很高,通常Q值為幾十至一百,最高也只有四五百。
  • 變壓器損耗計算公式
    這個值要與標準中規定的標準值或與合同中規定的標準值或保證值對比。計算值必須小於標準值或保證值,不能在計算上吃寬裕度,尤其批量生的變壓器。另外計算值只對設計員或設計科內有效,沒有法律效應,不能用計算值來判斷產品的損耗水平。而標準上規定的標準值或合同上規定的保證值是法律效應的。超過標準值加允許偏差,或者叫保證值(保證值等於標準值加允許偏差)的產品即為不合格產品。
  • buck電路電感計算公式
    打開APP buck電路電感計算公式 發表於 2017-10-20 15:51:54  BUCK電路基本結構   buck電路電感計算公式:
  • 卡方檢驗中的p值計算 - CSDN
    前輩的功底都很深厚,小弟就就不再闡述卡方檢驗的原理、意義及如何計算了,理解了其實很簡單就那麼個公式,再根據實際業務場景關鍵看你選擇哪一個。從chi-squared value 到p-value,相信大多數同學和我一樣,查表,因為大學課本上就是這麼寫的。假如在實際業務場景中,自由度和顯著性水準都不確定的情況下,怎麼辦呢?查表就顯得不那麼地道了。
  • Excel函數公式大全之利用MMULT函數計算兩個數組矩陣的乘積
    各位Excel天天學的小夥伴們大家好,歡迎收看Excel天天學出品的excel2019函數公式大全課程。今天我們依舊要學習的是Excel函數中的數學函數MMULT函數,計算兩個數組的矩陣乘積。今天這個例子也是非常的簡單,就是利用MMULT函數計算兩個不等數組的矩陣乘積。
  • 《騎馬與砍殺2》傷害計算公式有哪些 傷害計算公式介紹
    導 讀 《騎馬與砍殺2》中的傷害是可以計算的,這一點在PVP中還是很有用的,但是很多玩家都不太清楚傷害計算公式到底怎麼樣,今天小編就給大家帶來玩家「碧海潮生
  • 電感阻抗計算公式
    >圈數 = [電感量* { ( 18*圈直徑(吋)) + ( 40 * 圈長(吋))}] ÷ 圈直徑 (吋) 圈數 = [8.116 * {(18*2.047) + (40*3.74)}] ÷ 2.047 = 19 圈 空心電感計算公式作者:佚名    轉貼自:本站原創    點擊數:6684    文章錄入: zhaizl 空心電感計算公式:L(mH)=
  • 微分、微分中值定理、泰勒公式
    微分中值定理 拉格朗日中值定理這就是泰勒公式要討論的問題。👇QA帶有皮亞諾餘項的泰勒公式是指?若f(x)在x0處有n階導數,那麼存在x0的一個鄰域,對於該鄰域內的任一x,有f(x)=……此式叫做函數f(x)在點x0處的帶有皮亞諾餘項的n階泰勒公式。帶有皮亞諾餘項的麥克勞林公式又是指什麼呀?
  • 功率的計算公式/電功率計算公式
    功率的計算公式電功率的計算公式,用電壓乘以電流,這個公式是電功率的定義式,永遠正確,適用於任何情況。對於純電阻電路,如電阻絲、燈炮等,可以用「電流的平方乘以電阻」「電壓的平方除以電阻」的公式計算,這是由歐姆定律推導出來的。但對於非純電阻電路,如電動機等,只能用「電壓乘以電流」這一公式,因為對於電動機等,歐姆定律並不適用,也就是說,電壓和電流不成正比。這是因為電動機在運轉時會產生「反電動勢」。
  • 深度探討:陰陽師防禦與攻擊計算公式
    陰陽師防禦與攻擊計算公式目前還沒有統一的計算公式,本篇就攻擊與防禦的測試數值來探討一番,相信接下來新資料片的更新,有了好友對戰之後會更加完善。
  • 空心電感量的計算公式
    先用紙片做一個小圓筒,再在圓筒上繞制電感線圈製作空心電感  空心電感計算公式:L(mH)=(0.08D.D.N.N)/(3D+9W+10H)  D-線圈直徑  N-線圈匝數  d線徑  H----線圈高度
  • 紡織常用計算公式
    1、紡織常用計算公式分為定長制計算公式和定重製計算公式二種  定長制計算公式
  • 放大電路的放大倍數計算公式
    學過模電的朋友應該對三極體或者場效應管的放大電路(本文所說的放大電路均指電壓放大)不會感到陌生吧,這可是模電中的重點,但是也是難點,自己知道很重要,就是搞不明白怎麼回事,沒關係這次就以三極體放大電路的三種組態為例給大家簡單說一下放大電路的放大倍數計算公式。
  • 公路測量計算公式
    計算公式:1. 字母所代表的意義:α1:QD~JD的方位角α2:JD~ZD的方位角β:JD處的偏角2.計算公式:直緩(直圓)點的國家坐標:X′=U+Tcos(A+180°)Y′=V+Tsin(A+180°)緩直(圓直)點的國家坐標:X″=U+Tcos(A+D)Y″=V+Tsin(A+D)1. 字母所代表的意義:
  • 電鍍銅厚計算公式 電鍍銅厚計算公式是什麼
    下面我們就一起來學習下一般情況下鍍銅的厚度和計算方法吧。電鍍銅在日常的工業生產中基本是時時刻刻都會用到的,而其實電鍍銅的厚度是非常薄的,他的計算公式是銅鍍層厚度=電流密度×電鍍時間×電鍍效率×0.0202