Überanpassung bei Entscheidungsbäumen Verhindern
Bevor wir mit der Implementierung eines Entscheidungsbaums in Python beginnen, gibt es ein wichtiges Thema zu besprechen: Overfitting – die zentrale Herausforderung bei Entscheidungsbäumen.
Nachfolgend ein Beispiel, 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 hierfür ist, dass das Modell so viele Aufteilungen wie nötig vornimmt, um die Trainingsdaten perfekt abzubilden.
Glücklicherweise ist der Entscheidungsbaum hochgradig 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.
Die maximale Tiefe eines Entscheidungsbaums kann begrenzt werden, wodurch der Baum kleiner und weniger anfällig für Overfitting wird. Dazu werden die Entscheidungsknoten auf der maximalen Tiefe in Blattknoten umgewandelt.
Hier ist außerdem ein GIF, das zeigt, wie sich die Entscheidungsgrenze bei unterschiedlichen maximalen Tiefen 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. Dadurch wird das Modell einfacher und robuster gegenüber Ausreißern.
Hier sehen Sie, wie sich dieser Hyperparameter auf die Entscheidungsgrenze auswirkt:
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 für die 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
Großartig!
Completion Rate verbessert auf 3.33
Überanpassung bei 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 bei Entscheidungsbäumen.
Nachfolgend ein Beispiel, 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 hierfür ist, dass das Modell so viele Aufteilungen wie nötig vornimmt, um die Trainingsdaten perfekt abzubilden.
Glücklicherweise ist der Entscheidungsbaum hochgradig 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.
Die maximale Tiefe eines Entscheidungsbaums kann begrenzt werden, wodurch der Baum kleiner und weniger anfällig für Overfitting wird. Dazu werden die Entscheidungsknoten auf der maximalen Tiefe in Blattknoten umgewandelt.
Hier ist außerdem ein GIF, das zeigt, wie sich die Entscheidungsgrenze bei unterschiedlichen maximalen Tiefen 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. Dadurch wird das Modell einfacher und robuster gegenüber Ausreißern.
Hier sehen Sie, wie sich dieser Hyperparameter auf die Entscheidungsgrenze auswirkt:
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 für die Tiefe gibt, und min_samples_leaf ist auf 1 gesetzt.
Danke für Ihr Feedback!