Ist ein überhöhtes Modell unbedingt unbrauchbar?


25

Angenommen, ein Modell hat eine Genauigkeit von 100% bei den Trainingsdaten, jedoch eine Genauigkeit von 70% bei den Testdaten. Stimmt das folgende Argument für dieses Modell?

Es ist offensichtlich, dass es sich um ein überarbeitetes Modell handelt. Die Testgenauigkeit kann durch Reduzieren der Überanpassung verbessert werden. Dieses Modell kann jedoch immer noch nützlich sein, da es für die Testdaten eine akzeptable Genauigkeit aufweist.


17
Wenn 70% für die jeweiligen Anwendungen akzeptabel sind, stimme ich Ihnen zu.
Richard Hardy

6
Ich würde @RichardHardy voll und ganz zustimmen. Nehmen wir zum Beispiel eine zufällige Gesamtstruktur: Oft liegt die Insample-Leistung (nicht die Out-of-Bag-Leistung) konstruktionsbedingt nahe bei 100%, was eine grobe Überanpassung darstellt. Die geringere Leistung, die aus der Tasche oder bei Test- / Validierungssätzen ausgewertet wird, ist jedoch möglicherweise hoch genug, um sie zu einem nützlichen Modell zu machen.
Michael M

1
@Metariat Warum nicht? Diese Genauigkeit wird mit einem Testsatz erzielt, der in der Trainingsphase nicht verwendet wird.
Hossein

3
@Metariat, Ein solches Argument kann den größten Teil der statistischen Praxis in Anspruch nehmen, z. B. den OLS-Schätzer im linearen Normalmodell, den Test für die Gleichheit eines Stichprobenmittelwerts mit einem hypothetischen Wert und was nicht. Interessant ist, dass das Argument nicht von der Überanpassung des Modells an das Trainingsmuster abhängt. Dies gilt auch für Underfit-Modelle und jedes Modell im Allgemeinen. Stimmt das nicht t
Richard Hardy

4
Ich würde dieses Modell nicht als überangepasst bezeichnen. Es wird ein überarbeitetes Modell erstellt, das die Validierungsleistung mit der Testleistung vergleicht. Selbst dann nur, wenn die Testleistung erheblich niedriger als akzeptabel war, möglicherweise katastrophal. Trainingsleistung bedeutet nichts.
Firebug

Antworten:


32

Ich denke, das Argument ist richtig. Wenn in der jeweiligen Anwendung 70% akzeptabel sind, ist das Modell nützlich , obwohl es überpasst ist (im Allgemeinen unabhängig davon, ob es überpasst ist oder nicht).

Während das Abwägen von Überanpassung gegen Unteranpassung die Optimalität betrifft (auf der Suche nach einer optimalen Lösung), geht es bei einer zufriedenstellenden Leistung um ausreichende Leistung (ist das Modell für die Aufgabe gut genug?). Ein Modell kann ausreichend gut sein, ohne optimal zu sein.

Edit: Nach den Kommentaren von Firebug und Matthew Drury im Rahmen des OP werde ich das hinzufügen, um zu beurteilen, ob das Modell überpasst ist, ohne zu wissen, dass die Validierungsleistung problematisch sein kann. Firebug schlägt vor, die Validierung mit der Testleistung zu vergleichen, um das Ausmaß der Überanpassung zu messen. Wenn das Modell jedoch eine 100% ige Genauigkeit des Trainingssatzes liefert, ohne eine 100% ige Genauigkeit des Testsatzes zu liefern, ist dies ein Indikator für eine mögliche Überanpassung (insbesondere im Falle einer Regression, jedoch nicht unbedingt bei der Klassifizierung).


Sie haben nach einem Beispiel gefragt: Nehmen Sie den Code für ein neuronales Netz in den Iris- Datensatz unter stats.stackexchange.com/a/273930/2958 und versuchen Sie es dann mit set.seed(100)einer Abbildung wie der hier beschriebenen und set.seed(15)umgekehrt. Vielleicht besser zu sagen "ein Indikator für eine mögliche Überanpassung"
Henry

Ist es jemals möglich, dass ein Modell sowohl im Zug als auch im Test eine 100% ige Genauigkeit erreicht und nicht überarbeitet wurde?
Rika

1
@Breeze, ich denke, Sie könnten dies in einem separaten Thread erfragen (und bei Bedarf einen Link zu diesem für den Kontext erstellen).
Richard Hardy

Ich habe gerade hier ist der Link
Rika

25

In meinem früheren Projekt mit der Erkennung von Kreditkartenbetrug möchten wir die Daten / die fest codierten Daten absichtlich überarbeiten, um Betrugsfälle zu erkennen. (Beachten Sie, dass die Überanpassung einer Klasse nicht genau das allgemeine Überanpassungsproblem ist, von dem OP gesprochen hat.) Ein solches System hat relativ niedrige Fehlalarme und erfüllt unsere Anforderungen.

Also, ich würde sagen, ein überarbeitetes Modell kann in manchen Fällen nützlich sein.


5
Diese Antwort ist sehr interessant, da sie einen Anwendungsfall darstellt. Ich denke mit "hard-coded to remember" @ hxd1011 bedeutet, dass das Modell sichergestellt hat, dass jeder der gemeldeten Betrugsfälle zu einem "Betrugsflag" führt und dass sie nicht geglättet oder durch eine, ähm, angepasste Funktion weginterpoliert wurden . So etwas, oder?
IcannotFixThis

@IcannotFixThis yes. Tatsächlich haben wir viele andere Möglichkeiten ausprobiert, um falsch positive Ergebnisse zu kontrollieren. Aber der Versuch, Betrugsfälle überzurüsten, funktionierte auf verrückte Weise gut.
Haitao Du

3
ββ

3
Das mag ärgerlich sein, aber es ist tausendmal weniger ärgerlich, als wenn Sie Ihre Finanzen ruinieren, weil jemand, der schändlich ist, Ihre Karteninformationen hat.
Matthew Drury

12

Vielleicht: Vorsicht. Wenn Sie sagen, dass eine Genauigkeit von 70% (wie auch immer Sie sie messen) für Sie gut genug ist, nehmen Sie an, dass die Fehler zufällig oder gleichmäßig verteilt sind.

Aber eine der Sichtweisen auf Überanpassung ist, dass es vorkommt, wenn eine Modelltechnik es zulässt (und der Trainingsprozess dies fördert), den Macken im Trainingsset zu viel Aufmerksamkeit zu schenken. Personen in der allgemeinen Bevölkerung, die diese Macken teilen, können sehr unausgeglichene Ergebnisse erzielen.

Vielleicht haben Sie ein Modell, das besagt, dass alle roten Hunde Krebs haben - wegen dieser besonderen Eigenart in Ihren Trainingsdaten. Oder dass verheiratete Menschen im Alter zwischen 24 und 26 Jahren fast garantiert betrügerische Versicherungsansprüche geltend machen. Ihre Genauigkeit von 70% lässt viel Raum, damit die Taschen der Probanden zu 100% falsch sind, da Ihr Modell überarbeitet ist.

(Nicht übermäßig fit zu sein, ist keine Garantie dafür, dass Sie keine Taschen voller falscher Vorhersagen haben. Tatsächlich hat ein Unter-Fit-Modell viele schlechte Vorhersagen, aber mit Überanpassung wissen Sie, dass Sie den Effekt von Macken in Ihren Trainingsdaten vergrößern .)


Vielen Dank. Meinen Sie damit, dass es möglich ist, dass diese Genauigkeit von 70% bei den Macken in den Trainingsdaten erreicht wird, die auch in den Testdaten verfügbar sind? Können wir nicht anhand der Genauigkeit der Testdaten beurteilen? Ich denke, die Macken in den Trainingsdaten, die in den Testdaten verfügbar sind, sollten während des Trainings gelernt werden.
Hossein

1
Wenn ich Sie verstehe, ist das Gegenteil der Fall: Durch Überanpassung an Macken haben Sie Ihre hohe Genauigkeit beim Training erreicht. Der Grund für die geringere Genauigkeit beim Testen ist, dass diese Fehler nicht für den gesamten Datensatz gelten. Aber natürlich können Ihre Trainings- und Test-Sets - auch wenn Sie eine Kreuzvalidierung durchführen, was hilfreich ist - in Bezug auf Ihre Bevölkerung etwas Besonderes sein. In diesem Fall können Ihre Test- / Validierungsergebnisse Ihre tatsächliche Leistung nicht genau vorhersagen.
Wayne

Sie haben Recht, dass das Testset in Bezug auf die Population etwas eigenartig ist, dies ist jedoch nicht spezifisch für die überzogenen Modelle. Alle unsere Bewertungen leiden darunter, und wir haben keine andere Wahl, als uns auf das Test-Set als Proxy für die wahre Bevölkerung zu verlassen.
Hossein

Es ist wahr, es ist nicht einzigartig für überausgestattete Modelle, aber es wird in einem überausgestatteten Modell verstärkt. Ich möchte per definitionem sagen, dass das Modell überarbeitet ist, weil es eindeutig unter einer Überbetonung der Macken leidet.
Wayne

7

Nein, sie können nützlich sein, aber es hängt von Ihrem Zweck ab. Einige Dinge fallen mir ein:

  1. Fββ1

  2. Ein solcher Klassifikator kann in einem Ensemble sehr nützlich sein . Wir könnten einen Klassifikator mit normalen Gewichten haben, einen, der TPR übergewichtet, einen, der FNR übergewichtet. Dann ergibt selbst eine einfache Dreierregelabstimmung oder Mittelung eine bessere AUC als jeder einzelne beste Klassifikator. Wenn jedes Modell andere Hyperparameter (oder unterabgetastete Trainingssätze oder Modellarchitekturen) verwendet, erhält das Ensemble eine gewisse Immunität gegen Überanpassung.

  3. Ebenso ist es für Echtzeit- Anti-Spam, Anti-Betrug oder Kreditbewertung in Ordnung und wünschenswert, eine Hierarchie von Klassifizierern zu verwenden. Die Level-1-Klassifikatoren sollten sehr schnell (ms) auswerten und es ist in Ordnung, einen hohen FPR zu haben . Alle Fehler, die sie machen, werden von genaueren, umfassenderen, langsameren Klassifikatoren auf höherer Ebene oder letztendlich von menschlichen Gutachtern abgefangen. Ein offensichtliches Beispiel: Verhindern Sie, dass gefälschte Schlagzeilen aus Übernahmen von Twitter-Konten wie dem "Bombenanschlag im Weißen Haus von 2013, der drei tötet", den Handel in Milliardenhöhe innerhalb von Millisekunden nach der Veröffentlichung beeinträchtigen. Es ist in Ordnung, wenn der Level-1-Klassifikator dies als positiv für Spam kennzeichnet. Lassen Sie uns ein wenig Zeit in Anspruch nehmen, um (automatisch) die Wahrheit / Falschheit von sensationellen, aber nicht überprüften Nachrichtenberichten festzustellen.


2

Ich bestreite nicht, dass ein überarbeitetes Modell immer noch nützlich sein könnte. Denken Sie jedoch daran, dass diese 70% irreführende Informationen sein können. Was Sie brauchen, um zu beurteilen, ob ein Modell nützlich ist oder nicht, ist der Fehler außerhalb der Stichprobe , nicht der Testfehler (der außerhalb der Stichprobe ist nicht bekannt, daher müssen wir ihn mithilfe eines verblindeten Testsets abschätzen ), und dass 70% kaum die gute Annäherung ist.

Um sicherzustellen, dass wir uns nach dem Kommentar von @RichardHardy in der Terminologie auf derselben Seite befinden, definieren wir den Testfehler als den Fehler, der beim Anwenden des Modells auf das Blindtest-Set auftritt. Und der Fehler außerhalb der Stichprobe ist der Fehler, wenn das Modell auf die gesamte Grundgesamtheit angewendet wird.

Die Annäherung des Fehlers außerhalb der Stichprobe hängt von zwei Dingen ab: dem Modell selbst und den Daten.

  • Ein "optimales" Modell ergibt eine (Test-) Genauigkeit, die kaum von den Daten abhängt, in diesem Fall wäre es eine gute Annäherung. "Ungeachtet" der Daten wäre der Vorhersagefehler stabil.

  • Die Genauigkeit eines überausgestatteten Modells hängt jedoch stark von den Daten ab (wie Sie bereits erwähnt haben, 100% vom Trainingssatz und 70% vom anderen Satz). Es kann also vorkommen, dass bei der Anwendung auf einen anderen Datensatz die Genauigkeit weniger als 70% (oder mehr) beträgt und es zu bösen Überraschungen kommt. Mit anderen Worten, diese 70% sagen Ihnen, was Sie glauben, aber es ist nicht so.


1
Ist der verwendete Testsatz, der eine Genauigkeit von 70% erzielt, nicht in der Trainingsphase zu sehen? Ist er nicht eine gute Schätzung für den Fehler außerhalb der Stichprobe? Ich denke, der Unterschied zwischen Trainingsfehler (100%) und Testfehler (70%) ist kein guter Hinweis auf den Unterschied zwischen Out-of-Sample-Fehler und Testfehler. Es ist möglich, dass das überausgerüstete Modell in der realen Welt eine Genauigkeit von 70% aufweist, während es für die Trainingsdaten eine Genauigkeit von 100% aufweist. Ich gehe davon aus, dass der Trainingsfehler geringer ist als der Testfehler, da die Trainingsdaten zum Generieren des Modells verwendet werden, die Testdaten jedoch während des Trainings nicht angezeigt werden.
Hossein

5
Ich glaube, Sie haben möglicherweise den Validierungssatz und den Testsatz sowie die entsprechenden Fehler verwechselt . Die Testfehler sind der out-of-Probenfehler. Während Validierungsfehler eine optimistische Maßnahme eines ausgewählten Modell, Test ist Fehler nicht. Der Testfehler ist eine unvoreingenommene Schätzung, wie das Modell auf eine neue Probe aus derselben Population durchführen wird. Wir können die Varianz des Testfehlers abschätzen zu können , so dass wir ganz gut sind , indem nur das zu wissen , Test so langen Fehler wie der Testsatz nicht zu klein ist. @ Hossein
Richard Hardy

3
Können Sie den Unterschied zwischen Fehlern außerhalb der Stichprobe und Testfehlern erläutern? Nach meinem Verständnis sind beides die Fehler, die beim Anwenden des Modells auf Proben auftreten, die nicht zum Trainieren des Modells verwendet werden. Der einzige mögliche Unterschied, den ich feststellen kann, besteht darin, dass bei Verwendung von Zeitreihendaten die Daten außerhalb der Stichprobe aus späteren Zeitpunkten stammen sollten, aber in dieser Frage wird dies nicht erwähnt.
Nuclear Wang

1
Aus meiner Sicht ist der Testfehler der Fehler, der beim Anwenden des Modells auf eine verblindete Menge auftritt. Er ist eine Annäherung an den Fehler außerhalb der Stichprobe, der beim Anwenden des Modells auf die gesamte Grundgesamtheit auftritt. Und es ist nicht dasselbe, die wertvolle Information ist der Fehler außerhalb der Stichprobe. Wenn das Modell überdimensioniert ist, ist der Testfehler nicht stabil und es kann zu schlechten Ergebnissen bei den anderen Datensätzen kommen.
Metariat

4
@Metariat, Sie haben Recht, dass der Testfehler eine Schätzung ist und von Test zu Test unterschiedlich sein kann. Wie ich bereits erwähnt habe, gibt es jedoch keinen Grund zu der Annahme, dass der Testfehler den wahren Fehler unterschätzt (im Durchschnitt nicht). Wenn wir also eine ausreichend große Testprobe nehmen, können wir den Testfehler mit einem gewünschten Vertrauensniveau in einem gewünschten Bereich begrenzen. In der Praxis sollten Sie den Testfehler möglicherweise definieren, indem Sie Ihre Antwort bearbeiten, um sicherzustellen, dass Sie nicht falsch verstehen, was Sie meinen, wenn Sie den Testfehler mit dem Fehler außerhalb der Stichprobe vergleichen.
Richard Hardy
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.