5.2 部分依赖图 (Partial Dependence Plot, PDP)
部分依賴圖(短 PDP 或 PD 圖)顯示了一個或兩個特征對機器學習模型的預測結果的邊際效應 (J. H. Friedman 200127)。 部分依賴圖可以顯示目標和特征之間的關系是線性的、單調的還是更復雜的。 例如,當應用于線性回歸模型時,部分依賴圖始終顯示線性關系。
回歸的偏依賴函數定義為:f^xS(xS)=ExC[f^(xS,xC)]=∫f^(xS,xC)dP(xC)\hat{f}_{x_S}(x_S)=E_{x_C}\left[\hat{f}(x_S,x_C)\right]=\int\hat{f}(x_S,x_C)d\mathbb{P}(x_C)f^?xS??(xS?)=ExC??[f^?(xS?,xC?)]=∫f^?(xS?,xC?)dP(xC?)
xS 是應該繪制部分依賴函數的特征和,XC 是機器學習模型f^\hat{f}f^?中使用的其他特征。通常,集合 S 中只有一兩個特征。 S 中的特征是我們想知道對預測的影響的特征。 特征向量xS 和XC組合起來構成總的特征空間x。 部分依賴通過在集合 C 中的特征分布上邊緣化機器學習模型輸出來工作,以便該函數顯示我們感興趣的集合 S 中的特征與預測結果之間的關系。 通過邊緣化其他特征,我們得到一個僅依賴于 S 中的特征的函數,包括與其他特征的交互。
偏函數f^xS\hat{f}_{x_S}f^?xS??通過計算訓練數據中的平均值來估計,也稱為蒙特卡羅方法:f^xS(xS)=1n∑i=1nf^(xS,xC(i))\hat{f}_{x_S}(x_S)=\frac{1}{n}\sum_{i=1}^n\hat{f}(x_S,x^{(i)}_{C})f^?xS??(xS?)=n1?∑i=1n?f^?(xS?,xC(i)?)
偏函數告訴我們對于給定的特征 S 值,預測的平均邊際效應是什么。 在這個公式中,xC(i)x^{(i)}_{C}xC(i)? 是數據集中我們不感興趣的特征的實際特征值,n 是數據集中的實例數。PDP 的一個假設是 C 中的特征與 S 中的特征不相關。如果違反了這個假設,則為部分依賴圖計算的平均值將包括非常不可能甚至不可能的數據點(參見缺點)。
對于機器學習模型輸出概率的分類,部分依賴圖顯示給定 S 中不同特征值的特定類別的概率。處理多個類別的一種簡單方法是為每個類別畫一條線或繪圖。
部分依賴圖是一種全局方法:該方法考慮所有實例并給出關于特征與預測結果的全局關系的陳述。
分類特征
到目前為止,我們只考慮了數值特征。 對于分類特征,部分依賴很容易計算。 對于每個類別,我們通過強制所有數據實例具有相同的類別來獲得 PDP 估計。 例如,如果我們查看自行車租賃數據集并對季節的部分依賴圖感興趣,我們會得到 4 個數字,每個季節一個。 為了計算“夏天”的值,我們將所有數據實例的季節替換為“夏天”并對預測進行平均。
5.2.1 例子
實際上,特征集 S 通常只包含一個特征或最多包含兩個,因為一個特征產生 2D 圖,而兩個特征產生 3D 圖。 除此之外的一切都非常棘手。 即使是 2D 紙或顯示器上的 3D 也已經具有挑戰性。
讓我們回到回歸示例,在該示例中,我們預測在給定日期將租用的自行車數量。 首先我們擬合一個機器學習模型,然后我們分析部分依賴關系。 在這種情況下,我們擬合了一個隨機森林來預測自行車的數量,并使用部分依賴圖來可視化模型學習到的關系。 下圖顯示了天氣特征對預測自行車數量的影響。
圖 5.2:自行車數量預測模型以及溫度、濕度和風速的 PDP。 最大的差異體現在溫度上。 天氣越熱,租用的自行車就越多。 這種趨勢上升到 20 攝氏度,然后趨于平緩并在 30 攝氏度時略微下降。x 軸上的標記表示數據分布。
對于溫暖但不太熱的天氣,該模型預測平均有大量租用自行車。 當濕度超過 60% 時,潛在的騎自行車者越來越不愿意租用自行車。 另外,風越大越喜歡騎車的人越少,這也是有道理的。 有趣的是,當風速從 25 公里/小時增加到 35 公里/小時時,預測的自行車租賃數量不會下降,但訓練數據不多,因此機器學習模型可能無法學習到對該范圍的有意義的預測。 至少在直覺上,我預計自行車的數量會隨著風速的增加而減少,尤其是在風速非常高的情況下。
為了說明具有分類特征的部分依賴圖,我們檢查了季節特征對預測的自行車租賃的影響。
圖 5.3:自行車數量預測模型和季節的 PDP。 出乎意料的是,所有季節都對模型預測顯示出類似的影響,只有在春季,該模型預測的自行車租賃量較少。
我們還計算了宮頸癌分類的部分依賴性。 這次我們擬合了一個隨機森林,根據風險因素來預測女性是否可能患上宮頸癌。 我們計算并可視化癌癥概率對隨機森林不同特征的部分依賴:
圖 5.4:基于使用激素避孕藥的年齡和年份的癌癥概率 PDP。 對于年齡,PDP 顯示概率在 40 歲之前較低,并在 40 歲之后增加。 服用激素避孕藥的時間越長,預測的癌癥風險就越高,尤其是在 10 年后。 對于這兩個特征,沒有多少具有大值的數據點可用,因此這些區域的 PD 估計不太可靠。
我們還可以同時可視化兩個特征的部分依賴關系:
圖 5.5:癌癥概率的 PDP 與年齡和懷孕次數的相互作用。 該圖顯示了 45 歲時癌癥概率的增加。對于 25 歲以下的女性,與懷孕 0 次或超過 2 次的女性相比,懷孕 1 次或 2 次的女性預測的癌癥風險較低。 但是在得出結論時要小心:這可能只是相關性而不是因果關系!
5.2.2 優勢
部分依賴圖的計算很直觀:如果我們強制所有數據點假設該特征值,則特定特征值的部分依賴函數表示平均預測。根據我的經驗,外行通常很快就能理解 PDP 的概念。
如果您計算 PDP 的特征與其他特征不相關,那么 PDP 完美地代表了該特征如何平均影響預測。在不相關的情況下,解釋很清楚:部分依賴圖顯示了當第 j 個特征發生變化時數據集中的平均預測如何變化。當特征相關時會更復雜,另見劣勢。
部分依賴圖很容易實現。
部分依賴圖的計算具有因果解釋。我們干預一個特征并測量預測的變化。這樣做時,我們分析了特征與預測之間的因果關系。這種關系是模型的因果關系——因為我們明確地將結果建模為特征的函數——但不一定適用于現實世界!
5.2.3 劣勢
部分依賴函數中現實的最大特征數是兩個。這不是 PDP 的錯,而是二維表示(紙或屏幕)的錯,也是我們無法想象超過 3 維的錯。
一些 PD 圖不顯示特征分布。省略分布可能會產生誤導,因為您可能會過度解釋幾乎沒有數據的區域。通過顯示 rug(x 軸上數據點的指標)或直方圖可以輕松解決此問題。
獨立性假設是 PD 圖的最大問題。假設為其計算部分依賴的特征與其他特征不相關。例如,假設您想根據人的體重和身高預測他的步行速度。對于特征之一的部分依賴,例如身高,我們假設其他特征(體重)與身高無關,這顯然是錯誤的假設。對于特定高度(例如 200 cm)的 PDP 計算,我們對重量的邊際分布進行平均,其中可能包括低于 50 kg 的重量,這對于 2 米的人來說是不現實的。換句話說:當特征相關時,我們在特征分布的實際概率非常低的區域創建新的數據點(例如,不太可能有人身高 2 米但體重小于 50 公斤)。此問題的一種解決方案是使用條件分布而不是邊際分布的累積局部效應圖或短 ALE 圖。
異質效應可能被隱藏,因為 PD 圖僅顯示平均邊際效應。假設對于一個特征,你的數據點有一半與預測有正相關——特征值越大預測越大——而另一半有負相關——特征值越小預測越大。 PD 曲線可能是一條水平線,因為數據集兩半的影響可能會相互抵消。然后您得出結論,該特征對預測沒有影響。通過繪制單獨的條件期望曲線而不是聚合線,我們可以發現異質效應。
5.2.4 軟件和替代品
有許多實現 PDP 的 R 包。 我在示例中使用了 iml 包,但也有 pdp 或 DALEX。 在 Python 中,scikit-learn 中內置了部分依賴圖,您可以使用 PDPBox。
本書中介紹的 PDP 的替代方案是 ALE 圖和 ICE 曲線。
總結
以上是生活随笔為你收集整理的5.2 部分依赖图 (Partial Dependence Plot, PDP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 词共现矩阵
- 下一篇: 5.3 个体条件期望(Individua