袋外評估

隨機森林不需要驗證資料集。大多數隨機森林都會使用一種稱為「袋外評估」 (OOB 評估) 的技術來評估模型品質。OOB 評估會將訓練集視為交叉驗證的測試集。

如先前所述,隨機森林中的每個決策樹通常會使用約 67% 的訓練樣本進行訓練。因此,每個決策樹都不會看到約 33% 的訓練範例。OOB 評估的核心概念如下:

  • 評估訓練集的隨機森林。
  • 針對每個範例,只使用在訓練期間未看到該範例的決策樹。

下表說明隨機森林的 OOB 評估結果,其中有 3 個決策樹,並以 6 個範例進行訓練。(是的,這與「標記」一節中的表格相同)。表格中列出在 OOB 評估期間,哪個決策樹與哪個範例搭配使用。

表 7. OOB 評估:這些數字代表在訓練特定範例時,特定訓練範例的使用次數

訓練範例 OOB 評估的範例
#1 #2 #3 #4 #5 #6
原始資料集 1 1 1 1 1 1
決策樹 1 1 1 0 2 1 1 #3
決策樹 2 3 0 1 0 2 0 #2、#4 和 #6
決策樹 3 0 1 3 1 0 1 #1 和 #5

在表 7 的範例中,訓練範例 1 的 OOB 預測結果會使用決策樹 #3 計算 (因為決策樹 #1 和 #2 使用這個範例進行訓練)。在實際情況中,如果資料集大小適中且有幾個決策樹,所有示例都會有 OOB 預測。

YDF 代碼
如果模型是使用 compute_oob_performances=True 訓練,在 YDF 中,訓練記錄中就會提供 OOB 評估。

OOB 評估也能有效計算隨機森林模型的排列變數重要性。請參閱「變數重要性」一文,瞭解變形變數重要性是如何透過評估變數在洗牌時的模型品質下降幅度,來評估變數的重要性。隨機決策樹「OOB 排列變數重要性」是使用 OOB 評估值計算的排列變數重要性。

YDF 代碼
如果模型是使用 compute_oob_variable_importances=True 訓練,在 YDF 中,訓練記錄中會顯示 OOB 排序變數的重要性。