本部分是來自大綱 模型可解釋的一個子分支。
部分依賴圖可以表示1個或者2個特征對模型的預測結果所能產生的邊際效應。同時也能展示1個特征和label直接是否具有:線性相關性、單調性等。
當我們把pdp應用在線性回歸上的時候,通過pdp,我們能夠計算每個特征與label之間的線性相關性,其公式表述為
當然pdp也可以適用與分類,只要把輸出改成概率就行了,本質上,和回歸任務沒有太大的區別,對於多分類,可以用 one VS Rest的策略。
其中,\(x_s\)是我們本次關心的1到2個特征,而\(X_C\)則是其他剩余輸入模型的特征,\(\hat f\)是本次的模型。通過不斷改變\(x_s\)的取值,來看模型預測結果的變化,這時候通過pdp能得到一個特征是怎樣影響模型預測的。總結一下:特征重要性展示的是哪些變量對預測的影響最大,而部分依賴圖展示的是特征如何影響模型預測的
可以用部分依賴圖回答一些與下面這些類似的問題:
- 假如保持其它所有的特征不變,經緯度對房價有什么影響?換句話說,相同大小的房子,在不同的地方價格會有什么差別?
- 在兩組不同的人群上,模型預測出的健康水平差異是由他們的負債水平引起的,還是另有原因?
上面,度量特征變化所帶來的影響的微分函數也可以表示為模型輸出的均值:
具體操作就是:先固定住其他特征,把你感興趣的這個特征全部批量的改成某個值,不斷從某個低值改到某個高值,看所有樣本預測結果會做什么變化。
所以說,部分依賴圖其實是一種“全局解釋模型的方法”
pdp有一個前提假設是,你分析的特征和其余的固定特征沒有任何的相關性。如果不能滿足這個假設的話,解釋的結果可能會存在無法理解的地方。
對於離散值的pdp
對於連續值,我們每次只做微小的改動,對於離散值,這個改動幅度換成“離散特征的取值”就ok。
因為pdp可以同時看一個或者2個特征,所以分兩種情況。
1d特征依賴圖
我們以泰坦尼克數據集為例子,單獨查看'Fair'這個特征,表示乘客登船所需花費的費用。大概可以看到,隨着你登船的價格變高,你生還的概率也隨之變大。

陰影部分表示95%置信度,x軸方塊是一些特征的分段,以及每個分段上人數的占比,頭部方塊是分位數。
2d特征依賴圖
除了看一個特征之外,我們也可以同時看年齡和上船費用兩個特征在pdp下是如何交互的。

在這上面你可以看到,年齡越大,且上船費用越高的人,他活下來的概率最大。
pdp的有點
- 直觀,容易理解
- 可以從因果推理的角度去解釋pdp,我們每改變一次特征取值,相當於對pdp進行了一次“treatment”的操作。
pdp的缺點
- 分析特征受限:每次只能分析1個或者2個,不能再多了
- 強假設,如果特征之間具有相關性,則結果往往會出乎你的意料: 比如你有2個特征,身高和體重,以及label:步行的速度。我們想看體重是如何影響步行速度的。那么在pdp的時候,我們相當於在原有的模型學習到的樣本空間下,新增了一些樣本點,分析結果就有可能得出 在身高2米的時候,體重為30,步行速度xxx,事實上,2米的身高不太可能出現30kg的體重,這很難解釋清楚。
- 容易忽略異質條件的影響:舉個case,假設你選的這個特征,有一半樣本與預測正相關——特征值越大預測越大,—而同時呢,另一半負相關——特征值越小預測越大。這個時候,因為pdp是輸出的模型預測值的均值,所以有可能導致這兩部分樣本相互抵消了,也就是,當你的特征變低的時候,一半樣本輸出低概率,一半輸出高概率,兩邊加起來求個avg之后,抵消了.....凸(艹皿艹 )
最終你會得出:“這特征沒對模型啥用”的結論。這個問題會放在局部模型可解釋中的ICE部分再描述怎么解
