Überanpassung in Entscheidungsbäumen Verhindern
Bevor wir mit der Implementierung eines Entscheidungsbaums in Python beginnen, gibt es ein wichtiges Thema zu besprechen: Overfitting – die zentrale Herausforderung im Zusammenhang mit Entscheidungsbäumen.
Nachfolgend ein Beispiel dafür, wie der Entscheidungsbaum den Datensatz anpasst. Beachten Sie, wie das Modell auf die Trainingsdaten eingeht und deren Muster sowie Feinheiten erfasst:
Obwohl das Modell das Trainingsset perfekt anpasst und keine Instanzen falsch klassifiziert, besteht das Problem darin, dass die Entscheidungsgrenzen zu komplex sind. Folglich wird die Genauigkeit auf dem Test- (oder Cross-Validation-) Datensatz deutlich niedriger sein als die Genauigkeit auf dem Trainingsdatensatz, was darauf hinweist, dass das Modell überanpasst.
Der Grund dafür ist, dass das Modell so viele Aufteilungen wie nötig vornimmt, um die Trainingsdaten perfekt zu erfassen.
Glücklicherweise ist der Entscheidungsbaum sehr konfigurierbar, sodass wir seine Hyperparameter anpassen können, um Overfitting zu minimieren.
Maximale Baumtiefe
Tiefe eines Knotens ist der Abstand (vertikal) vom Knoten zum Wurzelknoten.
Wir können die maximale Tiefe eines Entscheidungsbaums begrenzen, wodurch dieser kleiner wird und weniger wahrscheinlich überanpasst. Dazu werden die Entscheidungsknoten auf einer maximalen Tiefe in Blattknoten umgewandelt.
Hier ist außerdem ein GIF, das zeigt, wie sich die Entscheidungsgrenze bei unterschiedlichen Werten der maximalen Tiefe verändert:
Minimale Anzahl von Stichproben
Eine weitere Möglichkeit, den Baum einzuschränken, besteht darin, die minimale Anzahl von Stichproben an den Blattknoten festzulegen. Dies vereinfacht das Modell und macht es robuster gegenüber Ausreißern.
Die Auswirkung dieses Hyperparameters auf die Entscheidungsgrenze ist sichtbar:
Beide dieser Hyperparameter sind in der Decision Tree-Implementierung von scikit-learn verfügbar.
Standardmäßig ist der Baum nicht eingeschränkt: max_depth
ist auf None
gesetzt, was bedeutet, dass es keine Begrenzung der Tiefe gibt, und min_samples_leaf
ist auf 1
gesetzt.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen
Can you explain more about overfitting and why it's a problem for Decision Trees?
How do I choose the right values for max_depth and min_samples_leaf?
What other hyperparameters can help prevent overfitting in Decision Trees?
Awesome!
Completion rate improved to 4.17
Überanpassung in Entscheidungsbäumen Verhindern
Swipe um das Menü anzuzeigen
Bevor wir mit der Implementierung eines Entscheidungsbaums in Python beginnen, gibt es ein wichtiges Thema zu besprechen: Overfitting – die zentrale Herausforderung im Zusammenhang mit Entscheidungsbäumen.
Nachfolgend ein Beispiel dafür, wie der Entscheidungsbaum den Datensatz anpasst. Beachten Sie, wie das Modell auf die Trainingsdaten eingeht und deren Muster sowie Feinheiten erfasst:
Obwohl das Modell das Trainingsset perfekt anpasst und keine Instanzen falsch klassifiziert, besteht das Problem darin, dass die Entscheidungsgrenzen zu komplex sind. Folglich wird die Genauigkeit auf dem Test- (oder Cross-Validation-) Datensatz deutlich niedriger sein als die Genauigkeit auf dem Trainingsdatensatz, was darauf hinweist, dass das Modell überanpasst.
Der Grund dafür ist, dass das Modell so viele Aufteilungen wie nötig vornimmt, um die Trainingsdaten perfekt zu erfassen.
Glücklicherweise ist der Entscheidungsbaum sehr konfigurierbar, sodass wir seine Hyperparameter anpassen können, um Overfitting zu minimieren.
Maximale Baumtiefe
Tiefe eines Knotens ist der Abstand (vertikal) vom Knoten zum Wurzelknoten.
Wir können die maximale Tiefe eines Entscheidungsbaums begrenzen, wodurch dieser kleiner wird und weniger wahrscheinlich überanpasst. Dazu werden die Entscheidungsknoten auf einer maximalen Tiefe in Blattknoten umgewandelt.
Hier ist außerdem ein GIF, das zeigt, wie sich die Entscheidungsgrenze bei unterschiedlichen Werten der maximalen Tiefe verändert:
Minimale Anzahl von Stichproben
Eine weitere Möglichkeit, den Baum einzuschränken, besteht darin, die minimale Anzahl von Stichproben an den Blattknoten festzulegen. Dies vereinfacht das Modell und macht es robuster gegenüber Ausreißern.
Die Auswirkung dieses Hyperparameters auf die Entscheidungsgrenze ist sichtbar:
Beide dieser Hyperparameter sind in der Decision Tree-Implementierung von scikit-learn verfügbar.
Standardmäßig ist der Baum nicht eingeschränkt: max_depth
ist auf None
gesetzt, was bedeutet, dass es keine Begrenzung der Tiefe gibt, und min_samples_leaf
ist auf 1
gesetzt.
Danke für Ihr Feedback!