Wie viel ist zu viel Überanpassung?

9

Wo ziehen Sie konzeptionell die Grenze zwischen einem Überanpassungsmodell und einem Modell mit angemessener Anpassung?

Es ist klar, dass Sie überanpassen, wenn Ihr Modell auf Ihrem Trainingssatz ein paar Prozent besser abschneidet als auf Ihrem Testsatz. Angenommen, ich habe theoretisch ein Modell auf einem Trainingssatz trainiert, dann auf einem Testsatz validiert und festgestellt, dass mein Trainingssatz eine um 0,2% höhere Genauigkeit aufweist als mein Testsatz. Ist das zu viel Überanpassung?

foboi1122
quelle

Antworten:

9

Es ist klar, dass Sie überanpassen, wenn Ihr Modell auf Ihrem Trainingssatz ein paar Prozent besser abschneidet als auf Ihrem Testsatz.

Es ist nicht wahr. Ihr Modell hat basierend auf dem Training gelernt und vor dem Testsatz nicht "gesehen", daher sollte es offensichtlich eine bessere Leistung auf dem Trainingssatz erzielen. Die Tatsache, dass es beim Test-Set (etwas) schlechter abschneidet, bedeutet nicht, dass das Modell überpasst - der "spürbare" Unterschied kann darauf hindeuten.

Überprüfen Sie die Definition und Beschreibung von Wikipedia :

Eine Überanpassung tritt auf, wenn ein statistisches Modell zufällige Fehler oder Rauschen anstelle der zugrunde liegenden Beziehung beschreibt. Eine Überanpassung tritt im Allgemeinen auf, wenn ein Modell übermäßig komplex ist, z. B. wenn zu viele Parameter im Verhältnis zur Anzahl der Beobachtungen vorliegen. Ein Modell, das überpasst wurde, weist im Allgemeinen eine schlechte Vorhersageleistung auf, da es geringfügige Schwankungen in den Daten übertreiben kann.

Die Möglichkeit einer Überanpassung besteht, da das zum Trainieren des Modells verwendete Kriterium nicht mit dem Kriterium zur Beurteilung der Wirksamkeit eines Modells übereinstimmt. Insbesondere wird ein Modell normalerweise trainiert, indem seine Leistung für einen Satz von Trainingsdaten maximiert wird. Seine Wirksamkeit wird jedoch nicht durch seine Leistung bei den Trainingsdaten bestimmt, sondern durch seine Fähigkeit, bei unsichtbaren Daten gute Leistungen zu erbringen. Eine Überanpassung tritt auf, wenn ein Modell beginnt, Trainingsdaten zu "merken", anstatt zu "lernen", um aus dem Trend zu verallgemeinern.

Im Extremfall passt das Überanpassungsmodell perfekt zu den Trainingsdaten und schlecht zu den Testdaten. In den meisten Beispielen aus dem wirklichen Leben ist dies jedoch viel subtiler und es kann viel schwieriger sein, eine Überanpassung zu beurteilen. Schließlich kann es vorkommen, dass die Daten, die Sie für Ihr Trainings- und Test-Set haben, ähnlich sind, sodass das Modell für beide Sets eine gute Leistung zu erbringen scheint. Wenn Sie es jedoch für ein neues Dataset verwenden, ist es aufgrund von Überanpassung schlecht, wie bei Google-Grippetrends Beispiel .

Stellen Sie sich vor, Sie haben Daten über ein und seinen Zeittrend (siehe unten). Sie haben rechtzeitig Daten von 0 bis 30 und entscheiden sich dafür, 0 bis 20 Teile der Daten als Trainingssatz und 21 bis 30 als Hold-Out-Stichprobe zu verwenden. Es funktioniert bei beiden Stichproben sehr gut, es gibt einen offensichtlichen linearen Trend. Wenn Sie jedoch Vorhersagen für neue unsichtbare Daten vor Zeiten für Zeiten über 30 treffen, scheint die gute Anpassung illusorisch zu sein.Y

Geben Sie hier die Bildbeschreibung ein

Dies ist ein abstraktes Beispiel, aber stellen Sie sich ein reales vor: Sie haben ein Modell, das den Verkauf eines Produkts vorhersagt. Es funktioniert im Sommer sehr gut, aber der Herbst kommt und die Leistung sinkt. Ihr Modell passt zu den Sommerdaten - vielleicht ist es nur für die Sommerdaten gut, vielleicht ist es nur für die diesjährigen Sommerdaten gut, vielleicht ist dieser Herbst ein Ausreißer und das Modell ist in Ordnung ...

Tim
quelle
3
Bei Kernelmodellen wie dem SVM ist es nicht ungewöhnlich, die beste Generalisierungsleistung ohne Fehler im Trainingssatz zu erzielen. IMHO verursacht das Betrachten des Trainingssatzfehlers mehr Probleme als es wert ist, besser nur den Validierungssatzfehler zu betrachten (obwohl dies auch überanpassen kann, wenn Sie die Hyperparameter zu stark einstellen).
Dikran Marsupial
Sollte der Unterschied zwischen dem Fehler im Trainingssatz und im Testsatz beim Vergleich zweier verschiedener Modelle berücksichtigt werden, oder sollte das Modell ausgewählt werden, das den geringsten Fehler im Testsatz aufweist?
Siddhesh
1
@Siddhesh Sie haben zwei Modelle: model12% der Fälle im Zug und 2% in Testsätzen model2korrekt klassifiziert (0% Unterschied), 90% Fälle im Zug korrekt klassifiziert und 50% im Testsatz (30% Unterschied) - welches würde du wählst..? Der Unterschied kann auf Probleme hinweisen , misst jedoch nicht die Modellleistung an sich .
Tim
@ Tim: Aber was ist, wenn Testfehler vergleichbar ist, hier ist die Frage, die ich habe stats.stackexchange.com/questions/202339/…
Siddhesh
1
@Siddhesh wie von Dikran Marsupial geschrieben und wie in meiner Antwort und dem obigen Kommentar angegeben, muss der Unterschied nichts bedeuten. Das Beispiel in meiner Antwort zeigt eine Situation, in der es keinen Unterschied zwischen Zug- und Testsätzen gibt, das Modell sich jedoch bei zukünftigen Daten schlecht verhält.
Tim