XAI| 如何對集成樹進行解釋?
集成樹的可解釋性: Feature Importance、Partial Dependence Plot、ICE Plot
一、介紹
集成樹(tree-based ensemble learning)中,最有名的就是隨機森林樹(Random Forest,簡稱RF)與梯度提升樹(Gradient Boosting Trees,簡稱GBM)。而近年在 Kaggle 競賽平台中最火紅的 XGBoost 也是基於 GBM 所延伸出來的演算法。在解釋集成樹有三個非常好用的方法:
- 特徵重要度(Feature Importance)
- 部分相依圖(Partial Dependence Plot,簡稱 PDP)
- 個體條件期望圖(Individual Conditional Expectation Plot,簡稱 ICE Plot)
這三個方法屬於「事後可解釋性(post hoc)」並且「通用於任何一種演算法模型(model-agnostic)」。
二、資料說明
本篇文章將以新生兒的資料進行舉例說明。目的是為了解特徵與預測新生兒的體重(目標變數 y)之間的關係。
資料下載|| 新生兒資料.csv料欄位說明
1. Baby_weight: 新生兒體重
2. Mother_age: 媽媽年齡
3. Mother_BMI: 媽媽BMI
4. Baby_hc: 新生兒頭圍
下面提供了R與Python的程式碼讓大家練習與參考:
💻 R code:Google Colab R code
💻 Python code:Google Colab Python code
三、特徵重要度
特徵重要度(Feature Importance)指的是特徵在模型中的重要程度,若一個特徵非常重要,它對模型預測的表現影響就會很大。特徵重要度的計算方式有很多,例如: Gain、Split count、mean(|Tree SHAP|) 等等。本篇則會介紹「置換重要度(Permutation Importance)」的計算原理。
. 計算原理
排列重要度的計算一定要在模型訓練完後才能計算。而他的原理基本上就是將某一特徵欄位的數據重新隨機排列(其目的是為了維持分佈不變),再跟據指標(例如:MSE)計算特徵重要度。詳細的步驟與說明如下:
- 訓練好一個模型 f(假設特徵矩陣為 X、目標變數為 y、誤差衡量指標 L(y, f))
- 通過損失函數計算出原始模型誤差 ɛᵒʳᶦᵍ= L( y, f(X)) (例如:MSE)
- 將某一特徵欄位(例如:媽媽年齡)的數據隨機排列,再丟入回之前訓練好的模型 f 計算計算模型的誤差 ɛᵖᵉʳᵐ = L( y, f(Xᵖᵉʳᵐ) )。
- 計算此因子的重要程度 importance = ɛᵖᵉʳᵐ - ɛᵒʳᶦᵍ。
- 把第 4 個步驟中打亂的特徵還原,換下一個特徵並且重複 3~4 的步驟,直到所有特徵都計算完重要程度為止。
特徵重要度可以讓資料科學家了解那些特徵是重要的或不重要的!
.結果解釋
在此資料中新生兒頭圍為最重要的因子,重要度(importance)大約為 60左右,代表的是若將新生兒頭圍的數據隨意排列在帶入模型會使得 MSE 上升 60 左右,而誤差上升越多代表此特徵在模型中的重要度越高。
.優缺點彙整
👍🏻 優點:
1. 計算速度快不需要重新訓練模型
2. 直觀好理解
3. 提供與模型一致性的全域性解釋。👎🏻 缺點:
1. 如果特徵之間有高度相關時,置換重要度的方法會產生偏差。
四、部分相依圖 PDP
部分相依圖(Partial Dependence Plot)是由 Friedman(2001)所提出,其目的是用來理解在模型中某一特徵與預測目標 y 平均的關係, 並且假設每一個特徵都是獨立的,主要以視覺化的方式呈現。
.計算原理
PDP 的計算原理主要是透過將訓練集資料丟入模型後平均預測的結果(即蒙地卡羅方法)。部分依賴函數的公式如下:
。xs 是我們想要畫部分依賴圖的特徵集合;
。xᴄ 則是剩下的其他特徵;
。n 為樣本數
訓練好一個模型 f̂(假設 x₁、x₂、x₃、x₄ 為特徵、目標變數為 y),假設我們想探討的是 x₁ 與 y 之間的關係,那麼 xs = {x₁}、xᴄ= {x₂, x₃, x₄}。
- xs, xᴄ ⁽ⁱ ⁼ ¹⁾ 代入得到第一組結果
- 接著置換 xᴄ ⁽ⁱ ⁼ ²⁾ 得到第二個結果。
- 以此類推至 i=n,並將得到的結果取平均。
部分相依圖可以讓資料科學家了解各個特徵是如何影響 預測的!
.結果解釋
從這張圖可以理解新生兒頭圍與新生兒體重有一定的正向關係存在,並且可以了解到新生兒頭圍是如何影響新生兒體重的預測。
.優缺點彙整
👍🏻 優點:
1. 容易計算生成
2. 直觀好理解
3. 容易解釋👎🏻 缺點:
1. 最多只能同時呈現兩個特徵與y的關係,因為超過三維的圖根據現在的技術無法呈現。
2. 具有很強的特徵獨立性假設,若特徵存在相關性,會導致PDP估計程產生偏差。
3. PDP呈現的是特徵對於目標變數的平均變化量,容易忽略資料異質性(heterogeneous effects)對結果產生的影響。
五、個體條件期望圖 ICE Plot
個體條件期望圖(ICE Plot)計算方法與 PDP 類似,個體條件期望圖顯示的是每一個個體的預測值與單一特徵之間的關係。
由於PDP 呈現的是特徵對於目標變數的平均變化量,容易使得異質效應(heterogeneous effects)相消,導致 PD 曲線看起來像是一條水平線,進而以為特徵 X_2 對 y 毫無影響。因此,可以透過 ICE Plot 改善 PDP 的缺點:發現資料中的異質效應。
.計算原理
訓練好一個模型 f̂(假設 x₁、x₂、x₃、x₄ 為特徵、目標變數為 y),假設我們想探討的是 x₁ 與 y 之間的關係,ICE 的分析步驟如下:
- 對某一樣本個體,保持其他特徵不變,置換 x₁ 的值並且輸出模型的預測結果。
- 不斷重複第一個步驟直到所有樣本皆完成該步驟。
- 最後繪製所有個體的單一特徵變量與預測值之間的關係圖。
.結果解釋
灰黑色線代表的是每個個體對於目標變數的條件期望,紅色線則是所有個體的平均水平(也就是 PDP)。由於並不是每個個體都有相同的變化趨勢,因此與部分相依圖相比個體條件期望圖能夠更準確地反映特徵與目標變數之間的關係。
而個體條件期望圖是從不同的預測開始,很難判斷個體之間的條件期望曲線(ICE Curve)是否有差異,為了解決上述問題延伸了一個新方法,稱作「Centered ICE Plot」。Centered ICE Plot 是將曲線做平移中心化的處理,其目的是為了表示特徵在該點時個體間的預測差異。
Centered ICE 曲線則被定義為:
。xᵃ 代表的是錨點( the anchor point),通常選擇觀察值的最小值或最大值做為錨點。
.優缺點彙整
👍🏻 優點:
1. 容易計算生成
2. 解決了PDP資料異質性對結果產生的影響
3. 更直觀👎🏻 缺點:
1. 只能展示一個特徵與目標變數的關係圖
2. 具有很強的特徵獨立性假設
3. 如果ICE plot的樣本太多會導致折線圖看起來非常擁擠凌亂
最後,感謝你認真讀完這篇文章,如果你喜歡我的文章,請給我一些「掌聲👏🏻」與「追蹤我的專欄」,你的支持會是我持續分享的動力。若有希望我分享的主題,也歡迎在下面留言 📝讓我知道。
參考資料
- Breiman, Leo.“Random Forests.” Machine Learning 45 (1). Springer: 5–32 (2001).
- Fisher, Aaron, Cynthia Rudin, and Francesca Dominici. “Model Class Reliance: Variable importance measures for any machine learning model class, from the ‘Rashomon’ perspective.”
- Friedman, Jerome H. “Greedy function approximation: A gradient boosting machine.” Annals of statistics (2001): 1189–1232.
- Zhao, Qingyuan, and Trevor Hastie. “Causal interpretations of black-box models.” Journal of Business & Economic Statistics, to appear. (2017).
- Goldstein, Alex, et al. “Peeking inside the black box: Visualizing statistical learning with plots of individual conditional expectation.” Journal of Computational and Graphical Statistics 24.1 (2015): 44–65.
- Goldstein, Alex, et al. “Package ‘ICEbox’.” (2017).
- https://bgreenwell.github.io/pdp/articles/pdp.html
- http://savvastjortjoglou.com/intrepretable-machine-learning-nfl-combine.html