Ist die Überanpassung so schlecht, dass Sie kein Modell auswählen sollten, das eine Überanpassung durchführt, obwohl der Testfehler geringer ist? Nein, aber Sie sollten eine Begründung für die Auswahl haben.
Dieses Verhalten ist nicht auf XGBoost beschränkt. Es ist ein roter Faden bei allen Techniken des maschinellen Lernens. Finden des richtigen Kompromisses zwischen Unter- und Überanpassung. Die formale Definition ist der Bias-Varianz-Kompromiss (Wikipedia) .
Der Bias-Varianz-Kompromiss
Das Folgende ist eine Vereinfachung des Bias-Varianz-Kompromisses, um die Wahl Ihres Modells zu rechtfertigen.
Wir sagen, dass ein Modell eine hohe Verzerrung aufweist, wenn es nicht in der Lage ist, die Informationen in den Daten vollständig zu nutzen. Es ist zu stark auf allgemeine Informationen angewiesen, z. B. auf den häufigsten Fall, den Mittelwert der Antwort oder wenige leistungsfähige Funktionen. Verzerrungen können von falschen Annahmen herrühren, beispielsweise wenn angenommen wird, dass die Variablen normalverteilt sind oder das Modell linear ist.
Wir sagen, dass ein Modell eine hohe Varianz aufweist, wenn es zu viele Informationen aus den Daten verwendet. Es stützt sich auf Informationen, die nur in dem ihm vorgelegten Trainingssatz relevant sind, der sich nicht gut genug verallgemeinert. In der Regel ändert sich das Modell stark, wenn Sie den Trainingssatz ändern, daher der Name "Hohe Varianz".
Diese Definitionen sind den Definitionen von Unter- und Überanpassung sehr ähnlich. Diese Definitionen sind jedoch oft zu vereinfacht, um Gegensätze zu sein, wie in
- Das Modell passt nicht, wenn sowohl der Trainings- als auch der Testfehler hoch sind. Dies bedeutet, dass das Modell zu einfach ist.
- Das Modell ist überpassend, wenn der Testfehler höher als der Trainingsfehler ist. Dies bedeutet, dass das Modell zu komplex ist.
Diese Vereinfachungen sind natürlich hilfreich, da sie bei der Auswahl der richtigen Komplexität des Modells helfen. Sie übersehen jedoch einen wichtigen Punkt, nämlich die Tatsache, dass (fast) jedes Modell sowohl eine Verzerrungs- als auch eine Varianzkomponente aufweist. Die Beschreibung der Unteranpassung / Überanpassung sagt Ihnen, dass Sie zu viel Voreingenommenheit / zu viel Varianz haben, aber (fast) immer beides .
Wenn Sie weitere Informationen über den Bias-Varianz-Kompromiss wünschen, stehen Ihnen bei Google viele hilfreiche Visualisierungen und gute Ressourcen zur Verfügung. Jedes Lehrbuch zum maschinellen Lernen enthält einen Abschnitt über den Kompromiss zwischen Bias und Varianz. Hier einige
- Eine Einführung in das statistische Lernen und Elemente des statistischen Lernens (hier verfügbar) .
- Mustererkennung und maschinelles Lernen, von Christopher Bishop.
- Maschinelles Lernen: Eine probabilistische Perspektive, von Kevin Murphy.
Außerdem ist Scott Fortmann-Roes Verständnis des Bias-Varianz-Kompromisses ein netter Blog-Beitrag, der mir beim Erfassen geholfen hat .
Anwendung auf Ihr Problem
Sie haben also zwei Modelle,
MARSXGBoostMAE trainieren∼ 4.0≤ 0,3Testen Sie MAE∼ 4.0∼ 2.4Geringe Varianz, höhere Vorspannung ,Höhere Varianz, geringere Vorspannung ,
und Sie müssen eine auswählen. Dazu müssen Sie definieren, was ein besseres Modell ist. Die Parameter, die in Ihre Entscheidungen einbezogen werden sollten, sind die Komplexität und die Leistung des Modells.
- Wie viele "Einheiten" Komplexität möchten Sie gegen eine "Einheit" Leistung eintauschen?
- Mehr Komplexität ist mit höherer Varianz verbunden. Wenn Sie möchten, dass sich Ihr Modell gut auf einen Datensatz verallgemeinert, der sich ein wenig von dem unterscheidet, auf den Sie trainiert haben, sollten Sie weniger Komplexität anstreben.
- Wenn Sie ein Modell wünschen, das Sie leicht verstehen können, können Sie dies auf Kosten der Leistung tun, indem Sie die Komplexität des Modells verringern.
- Wenn Sie die beste Leistung für einen Datensatz anstreben, den Sie wissen, aus demselben generativen Prozess stammt wie Ihr Trainingssatz, können Sie die Komplexität manipulieren, um Ihren Testfehler zu optimieren und als Metrik zu verwenden. Dies geschieht, wenn Ihr Trainingssatz zufällig aus einem größeren Satz ausgewählt wird und Ihr Modell auf diesen Satz angewendet wird. Dies ist beispielsweise bei den meisten Kaggle-Wettbewerben der Fall.
Das Ziel hier ist nicht, ein Modell zu finden, das "nicht überpasst". Es ist das Modell zu finden, das den besten Bias-Varianz-Kompromiss aufweist. In diesem Fall würde ich argumentieren, dass die durch das XGBoost-Modell erzielte Verringerung der Verzerrung gut genug ist, um die Zunahme der Varianz zu rechtfertigen.
Was kannst du tun
Sie können dies jedoch wahrscheinlich besser tun, indem Sie die Hyperparameter anpassen.
Die Anzahl der Runden zu erhöhen und die Lernrate zu verringern, ist eine Möglichkeit. Etwas "Seltsames" an der Steigungsanhebung ist, dass das Ausführen weit über den Punkt hinaus, an dem der Trainingsfehler Null erreicht hat, den Testfehler noch zu verbessern scheint (wie hier diskutiert: Ist tiefer besser nur, wenn flach gut ist? ). Sie können versuchen, Ihr Modell in Ihrem Datensatz ein wenig länger zu trainieren, nachdem Sie die anderen Parameter eingestellt haben.
Die Tiefe der Bäume, die Sie anbauen, ist ein sehr guter Ausgangspunkt. Sie müssen beachten, dass Sie für jede Tiefeneinheit die doppelte Anzahl der zu konstruierenden Blätter erhalten. Wenn Sie Bäume der Größe zwei anstatt der Größe 16 züchten würden, würde es dauern1 / 214der ganzen Zeit! Sie sollten versuchen, mehr kleinere Bäume zu züchten. Der Grund dafür ist, dass die Tiefe des Baums den Grad der Merkmalsinteraktion darstellen sollte . Dies mag Jargon sein, aber wenn Ihre Features einen Interaktionsgrad von 3 aufweisen (grob gesagt: Eine Kombination von 4 Features ist nicht leistungsfähiger als eine Kombination von 3 dieser Features + dem vierten), wachsen Bäume mit einer Größe von mehr als 3 schädlich. Zwei Bäume der Tiefe drei haben mehr Generalisierungskraft als ein Baum der Tiefe vier. Dies ist ein ziemlich kompliziertes Konzept, auf das ich im Moment nicht näher eingehen werde, aber Sie können diese Sammlung von Papieren zunächst prüfen . Beachten Sie auch, dass tiefe Bäume zu einer hohen Varianz führen!
Die Verwendung von Unterabtastungen, die als Absacken bezeichnet werden , ist sehr hilfreich , um die Varianz zu verringern. Wenn Ihre einzelnen Bäume eine hohe Varianz aufweisen, werden die Bäume durch Absacken gemittelt, und der Durchschnitt weist eine geringere Varianz auf als einzelne Bäume. Wenn Sie nach dem Einstellen der Tiefe Ihrer Bäume immer noch eine hohe Varianz feststellen, versuchen Sie, die Unterabtastung zu erhöhen (dh den Anteil der verwendeten Daten zu verringern). Die Unterabtastung des Merkmalsraums erreicht ebenfalls dieses Ziel.