Dies ist eine theoretische Frage für xgb und Gradientenverstärkung im Allgemeinen. Wie kann ich herausfinden, was das beste Verhältnis von max_depth und num_rounds oder n_estimators ist? Offensichtlich erstellt max_depth komplexe Modelle, was beim Boosten nicht empfohlen wird, aber Hunderte von Boost-Runden können auch dazu führen, dass die Trainingsdaten übermäßig angepasst werden. Angenommen CV gibt mir den gleichen Mittelwert/Std für max_depth 5 und num_rounds 1000 vs max_depth 15 und num_rounds 100 - welche sollte ich verwenden, wenn ich das Modell für unbekannte Daten freigebe?Balancing zwischen maximaler Tiefe und Anzahl der Schätzer oder Anzahl der Runden
Antwort
In der Theorie könnte man für diese Modelle Generalisierungsgrenzen vorsehen, aber das Problem ist - sie sind extrem locker. Daher garantiert eine kleinere obere Grenze nicht wirklich bessere Ergebnisse. In der Praxis besteht der beste Ansatz darin, Ihre Verallgemeinerungsschätzung zuverlässiger zu machen - Sie verwenden 10-CV? Benutze 10x10 CV (zehn zufällige Shuffle von 10CV), wenn es immer noch keine Antwort gibt, verwende 100. Irgendwann wirst du einen Gewinner bekommen. Wenn Sie das Modell tatsächlich an die Öffentlichkeit weitergeben, ist der erwartete Wert möglicherweise nicht die beste Metrik? Der Lebenslauf zeigt normalerweise den Mittelwert (erwarteter Wert) an - also, anstatt nur auf diesen Wert zu schauen - sehen Sie sich das gesamte Spektrum der erzielten Ergebnisse an. Zwei Werte mit demselben Mittelwert und unterschiedlichen Standardwerten zeigen deutlich, was zu wählen ist. Wenn sowohl die Mittelwerte als auch die Stds gleich sind, können Sie sich min des Ergebnisses ansehen (was "Worst Case" -Szenario erfasst), etc.
Zusammenfassend: Werfen Sie einen Blick auf die Punkte, nicht nur Mittelwerte - und Wiederholen Sie die Auswertung mehrmals, um dies zuverlässig zu machen.
Danke. Ich werde das als Antwort nehmen. Ich habe mich gefragt, ob die Überwachung der Fehler bei einer Stichprobe (möglicherweise 10% der Daten) nach jeder Runde helfen würde. Oder wie sich der Validierungsverlust nach jeder Runde ändert. Sag, wenn ich (durch ein großes frühes Stoppen von 200 in xgboost, ich weiß nicht, wie man es in sklearn macht) die Anzahl der Runden plottiert, erhöht sich der Validierungsverlust nach jeder Abnahme, kann ich fest sagen, dass das Modell diese Linie hat unter allen anderen Linien wird besser sein? – Run2
Der Bereich unter dieser Kurve wird Ihnen keinen guten Selektor geben, da Sie am Ende nur ein endgültiges Modell verwenden, es spielt keine Rolle, ob es zuvor ein schlechtes war. – lejlot
Hallo - Ich habe nicht über die Gegend nachgedacht. Es ist eher so - sagen Modell 1 hat diese Werte – Run2