本單元將探討下列主題:
- 解讀隨機森林
- 訓練隨機樹系
- 隨機森林的優缺點
解讀隨機樹系
相較於決策樹,Random Forest 的解讀方式較為複雜。隨機森林包含使用隨機雜訊訓練的決策樹。因此,要判斷決策樹結構就更困難。不過,我們可以透過幾種方式解讀隨機森林模型。
解讀隨機樹系的一種方法,就是使用 CART 演算法訓練及解讀決策樹。由於隨機森林和 CART 都是使用相同的核心演算法進行訓練,因此兩者對資料集的「全局觀點」相同。這個選項適用於簡單的資料集,可用於瞭解模型的整體解讀方式。
變數重要性是另一種可解釋性良好的方法。舉例來說,下表列出在人口普查資料集 (也稱為 Adult) 上訓練的隨機森林模型中,不同特徵的變數重要性排名。
表 8. 14 個不同特徵的變數重要性。
功能 | 分數總和 | 平均準確度降低 | 平均加權點擊率降幅 | 平均最小深度 | 節點數 | PR-AUC 平均降幅 | Num 做為根目錄 |
---|---|---|---|---|---|---|---|
關係 | 4203592.6 |
0.0045 |
0.0172 |
4.970 |
57040 |
0.0093 |
1095 |
capital_gain | 3363045.1 |
0.0199 |
0.0194 |
2.852 |
56468 |
0.0655 |
457 |
marital_status | 3128996.3 |
0.0018 |
0.0230 |
6.633 |
52391 |
0.0107 |
750 |
年齡 | 2520658.8 |
0.0065 |
0.0074 |
4.969 |
356784 |
0.0033 |
200 |
教育 | 2015905.4 |
0.0018 |
-0.0080 |
5.266 |
115751 |
-0.0129 |
205 |
職業 | 1939409.3 |
0.0063 |
-0.0040 |
5.017 |
221935 |
-0.0060 |
62 |
education_num | 1673648.4 |
0.0023 |
-0.0066 |
6.009 |
58303 |
-0.0080 |
197 |
fnlwgt | 1564189.0 |
-0.0002 |
-0.0038 |
9.969 |
431987 |
-0.0049 |
0 |
hours_per_week | 1333976.3 |
0.0030 |
0.0007 |
6.393 |
206526 |
-0.0031 |
20 |
capital_loss | 866863.8 |
0.0060 |
0.0020 |
8.076 |
58531 |
0.0118 |
1 |
workclass | 644208.4 |
0.0025 |
-0.0019 |
9.898 |
132196 |
-0.0023 |
0 |
native_country | 538841.2 |
0.0001 |
-0.0016 |
9.434 |
67211 |
-0.0058 |
0 |
性別 | 226049.3 |
0.0002 |
0.0002 |
10.911 |
37754 |
-0.0011 |
13 |
race | 168180.9 |
-0.0006 |
-0.0004 |
11.571 |
42262 |
-0.0031 |
0 |
如您所見,變數重要性的定義不同,其量表也會不同,因此可能會導致特徵排名有所差異。
來自模型結構的變數重要性 (例如上表中的總分數、平均最小深度、節點數和根節點數) 會以類似方式計算決策樹 (請參閱「購物車 | 變數重要性」一節) 和隨機森林。
變換變數的重要性 (例如上表中「{accuracy, auc, pr-auc}」的平均減少值) 是一種不依賴模型的評估指標,可在任何機器學習模型中搭配驗證資料集計算。不過,使用隨機森林時,您可以使用袋外評估來計算排列變數的重要性,而非使用驗證資料集。
SHAP (SHapley Additive exPlanations) 是一種不依賴模型的方法,可用於解釋個別預測或模型解釋。(如要瞭解各模型通用的解釋方法,請參閱 Molnar 的「可解釋的機器學習」)。SHAP 通常需要大量運算資源,但在決策樹方面,運算速度可大幅提升,因此是解讀決策樹的好方法。
使用範例
在上一課中,我們透過呼叫 tfdf.keras.CartModel
,針對小型資料集訓練 CART 決策樹。如要訓練隨機樹系模型,只要將 tfdf.keras.CartModel
替換為 tfdf.keras.RandomForestModel
即可:
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
優缺點
本節將快速概述隨機森林的優缺點。
優點:
- 與決策樹一樣,隨機森林支援原生數值和分類特徵,通常不需要特徵預先處理。
- 由於決策樹是獨立的,因此可以並行訓練隨機森林。因此,您可以快速訓練隨機森林。
- 隨機森林的預設參數通常可帶來出色的結果。調整這些參數通常對模型影響不大。
缺點:
- 由於決策樹不會修剪,因此可能會很大。模型中節點數量超過 100 萬個的情況很常見。隨機森林的大小 (以及推論速度) 有時可能會造成問題。
- 隨機森林無法學習及重複使用內部表示法。每個決策樹 (以及每個決策樹的每個分支) 都必須重新學習資料集模式。在某些資料集 (尤其是非表格資料集,例如圖片、文字) 中,這會導致隨機森林的結果比其他方法更差。