Anders als bei zufälligen Wäldern können Bäume mit Farbverlauf überanpassen. Wie bei können Sie Regularisierung anwenden und das vorzeitige Beenden Validierungs-Dataset.
Die folgenden Abbildungen zeigen beispielsweise Verlust- und Genauigkeitskurven für das Training. und Validierungs-Datasets beim Trainieren eines GBT-Modells. Achten Sie darauf, wie divergent die Kurven was auf ein hohes Maß an Überanpassung hindeutet.
<ph type="x-smartling-placeholder"></ph> Abbildung 29. Verlust und Anzahl der Entscheidungsbäume im Vergleich
<ph type="x-smartling-placeholder"></ph> Abbildung 30: Genauigkeit im Vergleich zur Anzahl der Entscheidungsbäume.
Gängige Regularisierungsparameter für Gradient-Boosted Trees sind:
- Die maximale Tiefe des Baums.
- Die Schrumpfungsrate.
- Das Verhältnis der an jedem Knoten getesteten Attribute.
- den Koeffizienten L1 und L2 für den Verlust.
Beachten Sie, dass Entscheidungsbäume in der Regel viel seicht wachsen als zufälliger Wald Modelle. Standardmäßig werden Bäume mit Gradientenverstärkung in TF-DF bis in die Tiefe 6 gewachsen. Da die Bäume flach sind, hat die Mindestanzahl an Exemplaren pro Blatt wenig Einfluss haben und in der Regel nicht abgestimmt.
Ein Validierungs-Dataset wird benötigt, wenn die Anzahl der Trainings Beispiele sind klein. Daher ist es üblich, Gradient-Boosted-Bäume zu trainieren, sich innerhalb einer Kreuzvalidierungsschleife befinden oder das vorzeitige Beenden deaktiviert wird, nicht zu stark anpassen.
Verwendungsbeispiel
Im vorherigen Kapitel haben wir eine Random-Gesamtstruktur mit einem kleinen Dataset trainiert. In dieser Beispiel: Wir ersetzen das Random Forest-Modell einfach durch einen Gradient-Booster Baummodell:
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.
Nutzung und Einschränkungen
Der Gradient Boosted Tree hat einige Vor- und Nachteile.
Vorteile
- Wie Entscheidungsbäume unterstützen sie nativ numerische und kategoriale und benötigen oft keine Vorverarbeitung.
- Gradient-Boosted-Bäume haben Standard-Hyperparameter, die oft eine gute Leistung Ergebnisse. Dennoch kann die Abstimmung dieser Hyperparameter erheblich um das Modell zu verbessern.
- Gradient-Boosted-Baum-Modelle sind in der Regel klein (in der Anzahl der Knoten und Arbeitsspeicher) und schnell auszuführen (oft nur ein oder einige Mikroeinheiten / Beispiele).
Nachteile
- Die Entscheidungsbäume müssen sequenziell trainiert werden, was das Training verlangsamen kann. erheblich. Die Verlangsamung des Trainings wird jedoch etwas durch die Entscheidungsbäume kleiner sind.
- Wie bei zufälligen Gesamtstrukturen können Bäume mit Farbverlauf nicht intern lernen und diese wiederverwenden. Darstellungen. Jeder Entscheidungsbaum (und jeder Zweig jedes Entscheidungsbaums) muss das Dataset-Muster neu lernen. In einigen Datasets, insbesondere Datasets mit unstrukturierten Daten (z. B. Bilder oder Text) führen. Dies führt zu einem im Vergleich zu anderen Methoden.