與隨機森林不同的是,梯度提升的樹狀圖可以覆蓋。因此,對於類神經網路,您可以使用驗證資料集套用正規化和提前停止作業。
例如,下圖顯示訓練 GBT 模型時訓練和驗證集的損失和準確率曲線。請注意曲線的多樣性,表示高度過度配適。
圖 29. 損失與決策樹狀圖的數量。
圖 30. 準確率與決策樹狀圖的準確率。
漸層增強樹狀圖的常見正規參數包括:
- 樹狀結構的深度上限。
- 縮減率。
- 在每個節點上測試的屬性比例。
- 損失的 L1 和 L2 係數。
請注意,決策樹通常比隨機森林模型小得多。根據預設,TF-DF 中的梯度提升樹狀結構會成長到 6 深度。由於樹木是淺層的,所以每葉葉的最小範例數量幾乎沒有影響,且通常不會調整。
訓練範例數量較少時,需要驗證資料集。因此,在交叉驗證迴圈內訓練梯度增強的樹狀圖是常見的做法,或是在模型不適配時停用停用停止功能。
使用範例
在上一章中,我們利用小型資料集訓練了隨機森林。在這個例子中,我們只會將隨機森林模型替換為漸層式增強樹狀結構模型:
model = tfdf.keras.GradientBoostedTreesModel()
# Part of the training dataset will be used as validation (and removed
# from training).
model.fit(tf_train_dataset)
# The user provides the validation dataset.
model.fit(tf_train_dataset, validation_data=tf_valid_dataset)
# Disable early stopping and the validation dataset. All the examples are
# used for training.
model.fit(
tf_train_dataset,
validation_ratio=0.0,
early_stopping="NONE")
# Note: When "validation_ratio=0", early stopping is automatically disabled,
# so early_stopping="NONE" is redundant here.
使用限制
梯度增強的樹含有一些優缺點。
優點
- 就像決策樹一樣,它們原生支援數值和類別特徵,而且通常不需要特徵預先處理。
- 漸層增強型樹狀結構具有預設的超參數,通常可提供卓越結果。但是,調整這些超參數可以大幅改善模型。
- 梯度增強的樹狀模型通常較小 (節點數量和記憶體內數量) 且執行速度快 (通常只有一或幾個 μs / 範例)。
缺點
- 決策樹狀結構必須依序訓練,這可能會大幅降低訓練速度。但是,訓練速度減慢的決策樹略有偏移。
- 如同隨機森林,梯度提升樹狀圖無法學習並重複使用內部表示法。每個決策樹狀結構 (以及每個決策樹狀結構中的每個分支) 都必須重新學習資料集模式。在某些資料集中 (尤其是含有非結構化資料的資料集),例如圖片、文字,這會造成梯度提升樹狀圖顯示的結果比其他方法更差。