Überanpassung und Beschneidung
Mit dem oben beschriebenen Algorithmus können wir einen Entscheidungsbaum trainieren, der Trainingsbeispiele perfekt klassifiziert, vorausgesetzt, die Beispiele sind trennbar. Wenn der Datensatz jedoch Rauschen enthält, wird dieser Baum zu stark an die Daten angepasst und zeigt eine schlechte Testgenauigkeit.
Die folgende Abbildung zeigt einen Dataset mit Rauschen mit einer linearen Beziehung zwischen einem Merkmal x und dem Label y. Die Abbildung zeigt auch einen Entscheidungsbaum, der ohne jegliche Regularisierung auf diesem Datensatz trainiert wurde. Dieses Modell sagt alle Trainingsbeispiele richtig vorher (die Vorhersage des Modells stimmt mit den Trainingsbeispielen überein). Bei einem neuen Datensatz mit demselben linearen Muster und einer anderen Rauschinstanz würde das Modell jedoch eine schlechte Leistung erzielen.
Abbildung 12. Ein Datensatz mit vielen Ausreißern.
Um ein Überanpassen eines Entscheidungsbaums zu verhindern, wenden Sie beim Trainieren des Entscheidungsbaums eines oder beide der folgenden Regulierungskriterien an:
- Maximale Tiefe festlegen:Sie können verhindern, dass Entscheidungsbäume eine bestimmte maximale Tiefe überschreiten, z. B. 10.
- Mindestanzahl von Beispielen in Blattknoten festlegen:Ein Blattknoten mit weniger als einer bestimmten Anzahl von Beispielen wird nicht für die Aufteilung berücksichtigt.
Die folgende Abbildung veranschaulicht die Auswirkungen verschiedener Mindestzahlen von Beispielen pro Blatt. Das Modell erfasst weniger Geräusche.
Abbildung 13. Unterschiedliche Mindestanzahl von Beispielen pro Blatt.
Sie können die Regularisierung auch nach dem Training durchführen, indem Sie bestimmte Äste selektiv entfernen (entfernen), d. h. bestimmte Nicht-Blattknoten in Blattknoten umwandeln. Eine gängige Lösung zum Auswählen der zu entfernenden Äste ist die Verwendung eines Validierungsdatensatzes. Wenn also die Qualität des Modells im Validierungsdatensatz durch das Entfernen eines Zweigs verbessert wird, wird der Zweig entfernt.
Die folgende Abbildung veranschaulicht diese Idee. Hier testen wir, ob sich die Validierungsgenauigkeit des Entscheidungsbaums verbessern würde, wenn der grüne Nicht-Blattknoten in einen Blattknoten umgewandelt würde, d. h., wenn die orangen Knoten entfernt würden.
Abbildung 14. Eine Bedingung und ihre untergeordneten Elemente zu einem Blattelement zusammenführen.
Die folgende Abbildung zeigt die Auswirkungen der Verwendung von 20% des Datensatzes als Validierung zur Beschneidung des Entscheidungsbaums:
Abbildung 15. 20% des Datensatzes zum Entfernen von Knoten aus dem Entscheidungsbaum verwenden.
Wenn Sie ein Validierungs-Dataset verwenden, wird die Anzahl der Beispiele für das anfängliche Training des Entscheidungsbaums reduziert.
Viele Model-Creator wenden mehrere Kriterien an. Sie haben beispielsweise folgende Möglichkeiten:
- Legen Sie eine Mindestanzahl von Beispielen pro Blatt fest.
- Legen Sie eine maximale Tiefe fest, um das Wachstum des Entscheidungsbaums zu begrenzen.
- Den Entscheidungsbaum beschneiden.
- Die Mindestanzahl der Beispiele ist 5 (
min_examples = 5
). - 10% des Trainings-Datasets werden für die Validierung beibehalten (
validation_ratio = 0.1
).
validation_ratio=0.0
festlegen.
Diese Kriterien führen neue Hyperparameter ein, die angepasst werden müssen (z.B. die maximale Baumtiefe), oft mit automatischer Hyperparameter-Abstimmung. Entscheidungsbäume lassen sich in der Regel schnell genug trainieren, um die Hyperparameter-Optimierung mit Kreuzvalidierung zu verwenden. Beispiel für einen Datensatz mit „n“ Beispielen:
- Teilen Sie die Trainingsbeispiele in p nicht überlappende Gruppen auf. Beispiel:
p=10
. - Für alle möglichen Hyperparameterwerte, z. B. „max. Tiefe“ in {3,5,6,7,8,9} und „min. Beispiele“ in {5,8,10,20}.
- Bewerten Sie für jede Gruppe die Qualität eines Entscheidungsbaums, der auf den anderen p-1-Gruppen trainiert wurde.
- Berechnen Sie den Durchschnitt der Bewertungen der einzelnen Gruppen.
- Wählen Sie den Hyperparameterwert mit der besten durchschnittlichen Bewertung aus.
- Trainieren Sie einen endgültigen Entscheidungsbaum mit allen „n“ Beispielen und den ausgewählten Hyperparametern.
In diesem Abschnitt haben wir die Möglichkeiten besprochen, wie Entscheidungsbäume das Überanpassungsproblem begrenzen. Trotz dieser Methoden sind Unteranpassung und Überanpassung große Schwächen von Entscheidungsbäumen. Entscheidungsforste führen neue Methoden ein, um Überanpassungen zu begrenzen. Darauf gehen wir später noch ein.
Direkte Entscheidungsbaumauswertung
Entscheidungsbäume sind leicht zu interpretieren. Die Änderung auch nur einiger Beispiele kann jedoch die Struktur und damit die Interpretation des Entscheidungsbaums vollständig verändern.
Aufgrund der Art und Weise, wie Entscheidungsbäume erstellt werden, d. h. durch Aufteilen der Trainingsbeispiele, kann ein Entscheidungsbaum verwendet werden, um den Datensatz selbst zu interpretieren (im Gegensatz zum Modell). Jedes Blatt steht für eine bestimmte Ecke des Datasets.
model.describe()
Bäume ansehen.
Mit model.get_tree()
können Sie auch auf einzelne Bäume zugreifen und sie grafisch darstellen.
Weitere Informationen finden Sie in der
Anleitung zur Modellprüfung von YDF.
Die indirekte Interpretation ist jedoch auch informativ.