Wie kann man beurteilen, ob ein überwachtes Modell für maschinelles Lernen überpassend ist oder nicht?

27

Kann mir jemand sagen, wie ich beurteilen soll, ob ein überwachtes Modell für maschinelles Lernen überpassend ist oder nicht? Wenn ich keinen externen Validierungsdatensatz habe, möchte ich wissen, ob ich die 10-fache Kreuzvalidierung verwenden kann, um die Überanpassung zu erklären. Was soll ich als Nächstes tun, wenn ich einen externen Validierungsdatensatz habe?

user22062
quelle

Antworten:

29

Kurz gesagt: durch Validierung Ihres Modells. Der Hauptgrund für die Validierung ist die Feststellung, dass keine Überanpassung auftritt, und die Schätzung der allgemeinen Modellleistung.

Overfit

Schauen wir uns zunächst an, was Überanpassung eigentlich ist. Modelle werden normalerweise so trainiert, dass sie zu einem Datensatz passen, indem einige Verlustfunktionen in einem Trainingssatz minimiert werden. Es gibt jedoch eine Grenze, in der die Minimierung dieses Trainingsfehlers nicht mehr der tatsächlichen Leistung des Modells zugutekommt, sondern nur den Fehler im spezifischen Datensatz minimiert. Dies bedeutet im Wesentlichen, dass das Modell zu eng an die spezifischen Datenpunkte im Trainingssatz angepasst wurde und versucht wurde, Muster in den Daten zu modellieren, die vom Rauschen herrühren. Dieses Konzept nennt man Overfit . Unten sehen Sie ein Beispiel für eine Überanpassung, bei der das Trainingsset in Schwarz und ein größeres Set der tatsächlichen Bevölkerung im Hintergrund angezeigt wird. In dieser Abbildung sehen Sie, dass das blaue Modell zu eng an das Trainingsset angepasst ist und das zugrunde liegende Geräusch modelliert. Bildbeschreibung hier eingeben

Um zu beurteilen, ob ein Modell überpasst ist oder nicht, müssen wir den allgemeinen Fehler (oder die Leistung), die das Modell für zukünftige Daten aufweist, abschätzen und mit unserer Leistung auf dem Trainingssatz vergleichen. Das Abschätzen dieses Fehlers kann auf verschiedene Arten erfolgen.

Datensatz aufgeteilt

Der einfachste Ansatz zur Schätzung der allgemeinen Leistung besteht darin, den Datensatz in drei Teile, einen Trainingssatz, einen Validierungssatz und einen Testsatz, zu unterteilen. Der Trainingssatz wird zum Trainieren des Modells zur Anpassung an die Daten verwendet. Der Validierungssatz wird zum Messen von Leistungsunterschieden zwischen Modellen verwendet, um das beste Modell auszuwählen, und der Testsatz, um zu bestätigen, dass der Modellauswahlprozess nicht zu stark mit dem ersten Modell übereinstimmt zwei Sets.

Um das Ausmaß der Überanpassung abzuschätzen, werten Sie einfach als letzten Schritt die für Sie interessanten Metriken auf dem Testset aus und vergleichen Sie sie mit Ihrer Leistung auf dem Trainingsset. Sie erwähnen ROC, aber meiner Meinung nach sollten Sie auch andere Metriken wie zum Beispiel den Brier-Score oder ein Kalibrierungsdiagramm betrachten, um die Modellleistung sicherzustellen. Dies hängt natürlich von Ihrem Problem ab. Es gibt viele Metriken, aber das ist hier nicht der springende Punkt.

Diese Methode ist sehr verbreitet und wird respektiert, stellt jedoch hohe Anforderungen an die Verfügbarkeit von Daten. Wenn Ihr Dataset zu klein ist, verlieren Sie höchstwahrscheinlich viel Leistung und Ihre Ergebnisse sind von der Aufteilung abhängig.

Gegenvalidierung

Eine Möglichkeit, einen Großteil der Daten für die Validierung und den Test zu verschwenden, ist die Verwendung von Cross-Validation (CV), bei der die allgemeine Leistung anhand derselben Daten geschätzt wird, die zum Trainieren des Modells verwendet werden. Die Idee hinter der Kreuzvalidierung besteht darin, den Datensatz in eine bestimmte Anzahl von Untersätzen aufzuteilen und diese Untersätze dann nacheinander als gehaltene Testsätze zu verwenden, während der Rest der Daten zum Trainieren des Modells verwendet wird. Durch Mitteln der Metrik über alle Falten erhalten Sie eine Schätzung der Modellleistung. Das endgültige Modell wird dann im Allgemeinen unter Verwendung aller Daten trainiert.

Die CV-Schätzung ist jedoch nicht objektiv. Aber je mehr Falten Sie verwenden, desto kleiner ist die Verzerrung, aber dann erhalten Sie stattdessen eine größere Varianz.

Wie im Datensatzsplit erhalten wir eine Schätzung der Modellleistung und um die Überanpassung abzuschätzen, vergleichen Sie einfach die Metriken aus Ihrem Lebenslauf mit denen, die Sie aus der Auswertung der Metriken auf Ihrem Trainingssatz erhalten haben.

Bootstrap

Die Idee hinter dem Bootstrap ähnelt der von CV, aber anstatt den Datensatz in Teile aufzuteilen, führen wir Zufälligkeiten in das Training ein, indem wir wiederholt Trainingssätze aus dem gesamten Datensatz mit Ersetzung zeichnen und die vollständige Trainingsphase für jedes dieser Bootstrap-Beispiele durchführen.

Die einfachste Form der Bootstrap-Validierung wertet einfach die Metriken der Stichproben aus, die nicht im Trainingssatz enthalten sind (dh die ausgelassenen), und mittelt über alle Wiederholungen.

Mit dieser Methode erhalten Sie eine Schätzung der Modellleistung, die in den meisten Fällen weniger voreingenommen ist als CV. Vergleicht man es wieder mit der Leistung des Trainingssets, erhält man das Overfit.

Es gibt Möglichkeiten, die Bootstrap-Validierung zu verbessern. Es ist bekannt, dass die .632+ -Methode unter Berücksichtigung der Überanpassung bessere und zuverlässigere Schätzungen der allgemeinen Modellleistung liefert. (Wenn Sie interessiert sind, lesen Sie den Originalartikel: Verbesserungen bei der Kreuzvalidierung: Die 632+ Bootstrap-Methode )

Ich hoffe das beantwortet deine Frage. Wenn Sie an der Modellvalidierung interessiert sind, empfehle ich, den Teil über die Validierung im Buch Die Elemente des statistischen Lernens zu lesen : Data Mining, Inferenz und Vorhersage, der online frei verfügbar ist.

während
quelle
2
Beachten Sie, dass Ihre Terminologie für Validierung vs. Testen nicht in allen Feldern befolgt wird. In meinem Fachgebiet (analytische Chemie) ist die Validierung ein Verfahren, das beweisen soll, dass das Modell gut funktioniert (und messen soll, wie gut es funktioniert). Dies wird mit dem endgültigen Modell durchgeführt. Danach sind keine weiteren Änderungen mehr zulässig (oder wenn Sie dies tun, müssen Sie die Validierung erneut mit unabhängigen Daten durchführen). Daher würde ich Ihr Validierungsset als "inneres Testset" oder "Optimierungstestset" bezeichnen. Die "äußeren" Testdaten verhindern keine Überanpassung, können jedoch verwendet werden, um das Ausmaß der Überanpassung zu messen.
cbeleites unterstützt Monica am
Ok, ich habe keine Erfahrung in Ihrem Bereich. Danke für die Klarstellung. Das ist wahrscheinlich auch in anderen Bereichen so. Ich habe einfach die Terminologie verwendet, die in dem Buch verwendet wurde, mit dem ich am Ende verlinkt war. Ich hoffe es ist nicht zu verwirrend.
während
7

So können Sie das Ausmaß der Überanpassung abschätzen:

  • Holen Sie sich eine interne Fehlerabschätzung. Entweder Resubstitutio (= Trainingsdaten vorhersagen), oder wenn Sie eine innere Kreuzvalidierung durchführen, um die Hyperparameter zu optimieren, ist auch diese Messung von Interesse.
  • Erhalten Sie eine unabhängige Fehlerabschätzung für den Testsatz. Normalerweise wird ein Resampling (iterierte Quervalidierung oder Out-of-Bootstrap * empfohlen. Sie müssen jedoch darauf achten, dass keine Datenlecks auftreten. Das heißt, die Resampling-Schleife muss alle Schritte neu berechnen , deren Berechnungen mehr als einen Fall umfassen. Verarbeitungsschritte wie Zentrieren, Skalieren usw. Stellen Sie außerdem sicher, dass Sie auf der höchsten Ebene aufteilen, wenn Sie über eine "hierarchische" (auch als "Clustered" bezeichnete) Datenstruktur verfügen, z. B. wiederholte Messungen desselben Patienten (=> Patienten erneut abtasten) ).
  • Vergleichen Sie dann, wie viel besser die "innere" Fehlerabschätzung aussieht als die unabhängige.

Hier ein Beispiel:
Überanpassung
Trefferrate = Trefferquote (% richtig eingestuft), Variablenzahl = Anzahl der Variablen (= Modellkomplexität)
Symbole:. Resubstitution, + interne Leave-One-Out-Schätzung des Hyperparameter-Optimierers, o unabhängige äußere Kreuzvalidierung auf Patientenebene

Dies funktioniert mit ROC oder Leistungsmessungen wie Brier's Score, Sensitivität, Spezifität, ...

* Ich empfehle .632 oder .632+ Bootstrap hier nicht: Sie mischen sich bereits mit Resubstitutionsfehlern: Sie können sie sowieso später anhand Ihrer Resubstitutions- und Out-of-Bootstap-Schätzungen berechnen.

cbeleites unterstützt Monica
quelle
0

Die Überanpassung ist einfach die direkte Folge der Betrachtung der statistischen Parameter und damit der erhaltenen Ergebnisse als nützliche Information, ohne zu prüfen, ob sie nicht auf zufällige Weise erhalten wurden. Um das Vorhandensein einer Überanpassung abzuschätzen, müssen wir den Algorithmus in einer Datenbank verwenden, die der realen entspricht, aber zufällig generierte Werte enthält. Wenn wir diesen Vorgang daher mehrmals wiederholen, können wir die Wahrscheinlichkeit abschätzen, zufällig gleiche oder bessere Ergebnisse zu erzielen . Wenn diese Wahrscheinlichkeit hoch ist, befinden wir uns höchstwahrscheinlich in einer Überanpassungssituation. Beispielsweise beträgt die Wahrscheinlichkeit, dass ein Polynom vierten Grades eine Korrelation von 1 mit 5 zufälligen Punkten auf einer Ebene aufweist, 100%. Diese Korrelation ist also unbrauchbar und wir befinden uns in einer Überanpassungssituation.

Andrea Berdondini
quelle