Optimale Anzahl von Falten bei der fachen Kreuzvalidierung: Ist ein aussagekräftiger Lebenslauf immer die beste Wahl?

47

Gibt es abgesehen von Überlegungen zur Rechenleistung Gründe zu der Annahme, dass eine Erhöhung der Anzahl der Falten bei der Kreuzvalidierung zu einer besseren Modellauswahl / -validierung führt (dh je höher die Anzahl der Falten, desto besser)?

Wird das Argument auf die Spitze getrieben, führt eine ausschließliche Kreuzvalidierung zwangsläufig zu besseren Modellen als eine fache Kreuzvalidierung?K

Einige Hintergrundinformationen zu dieser Frage: Ich arbeite an einem Problem mit sehr wenigen Instanzen (z. B. 10 Positiven und 10 Negativen) und fürchte, dass sich meine Modelle möglicherweise nicht gut verallgemeinern lassen / mit so wenig Daten überladen würden.

Amelio Vazquez-Reina
quelle
1
Ein älterer verwandter Thread: Auswahl von K bei der K-fachen Kreuzvalidierung .
Amöbe sagt Reinstate Monica
Diese Frage ist kein Duplikat, da sie sich auf kleine Datensätze und "Überlegungen zur Rechenleistung" beschränkt. Dies ist eine schwerwiegende Einschränkung, die die Frage für diejenigen mit großen Datensätzen und dem Trainingsalgorithmus mit einem zumindest linearen Rechenaufwand in Bezug auf die Anzahl der Instanzen (oder einer Vorhersage in Bezug auf die Quadratwurzel der Anzahl der Instanzen) nicht anwendbar macht.
Serge Rogatch

Antworten:

46

Eine ausschließliche Kreuzvalidierung führt im Allgemeinen nicht zu einer besseren Leistung als die K-fache und ist mit größerer Wahrscheinlichkeit schlechter , da sie eine relativ hohe Varianz aufweist (dh, ihr Wert ändert sich für verschiedene Datenstichproben stärker als der Wert für k-fache Kreuzvalidierung). Dies ist bei einem Modellauswahlkriterium nicht der Fall, da das Modellauswahlkriterium so optimiert werden kann, dass lediglich die zufällige Variation in der jeweiligen Datenstichprobe ausgenutzt wird, anstatt eine echte Leistungsverbesserung zu erzielen, dh eine Überanpassung ist wahrscheinlicher das Modell Auswahlkriterium. Der Grund, warum in der Praxis eine einmalige Kreuzvalidierung verwendet wird, besteht darin, dass sie für viele Modelle als Nebenprodukt der Anpassung des Modells sehr kostengünstig bewertet werden kann.

Wenn der Rechenaufwand nicht in erster Linie ein Problem darstellt, besteht ein besserer Ansatz darin, eine wiederholte k-fache Kreuzvalidierung durchzuführen, wobei die Prozedur der k-fachen Kreuzvalidierung jedes Mal mit verschiedenen zufälligen Partitionen in k disjunkte Teilmengen wiederholt wird. Dies reduziert die Varianz.

Wenn Sie nur 20 Muster haben, ist es sehr wahrscheinlich , dass Sie das Modell Auswahlkriterium erleben Überanpassung, die ein sehr vernachlässigt pitfall in der Statistik ist und maschinelles Lernen (schamloser Werbung: siehe mein Papier zum Thema). Vielleicht ist es besser, ein relativ einfaches Modell zu wählen und es nicht sehr aggressiv zu optimieren, oder Sie verwenden einen Bayes-Ansatz und mitteln alle Modellentscheidungen, gewichtet nach ihrer Plausibilität. Die IMHO-Optimierung ist die Wurzel allen Übels in der Statistik. Daher ist es besser, nicht zu optimieren, wenn dies nicht erforderlich ist, und bei jeder Optimierung vorsichtig vorzugehen.

Beachten Sie auch, dass Sie bei der Modellauswahl eine verschachtelte Kreuzvalidierung verwenden müssen, wenn Sie auch eine Leistungsschätzung benötigen (dh Sie müssen die Modellauswahl als integralen Bestandteil des Modellanpassungsverfahrens betrachten und diese Kreuzvalidierung durchführen) auch).

Dikran Beuteltier
quelle
8
+1. Ich mag Ihre Nachricht "Optimierung ist die Wurzel allen Übels in der Statistik" ...
S. Kolassa - Reinstate Monica
5
Vielen Dank @DikranMarsupial. Ich folge nicht ganz. Warum sollten mit Leave-One-Out erlernte Modelle eine höhere Varianz aufweisen als mit der regulären k-fachen Kreuzvalidierung? Meine Intuition sagt mir, dass sich die Trainingssätze über Falten stark überlappen, da wir über Falten nur einen Datenpunkt verschieben, sodass ich nur geringe Unterschiede zwischen den Modellen erwarten würde. Oder in die andere Richtung gehen, in K-fach, wenn K niedrig ist, wären die Trainingssätze für jede Falte ziemlich unterschiedlich und die resultierenden Modelle sind wahrscheinlicher unterschiedlich. Liege ich falsch?
Amelio Vazquez-Reina
Das ist eine sehr gute Frage für sich, also schlage ich vor, dass Sie sie als neue Frage stellen, und ich werde darüber nachdenken, wie ich sie beantworten soll!
Dikran Marsupial
Danke @DikranMarsupial folgte ich Ihren Rat und begann eine andere Frage hier .
Amelio Vazquez-Reina
1
@DikranMarsupial Ich dachte, ich würde hier erwähnen, dass ich einen weiteren Thread gestartet habe, der von Ihrem Kommentar zur "Optimierung der Statistik" in dieser Antwort inspiriert ist. Ihr Kommentar hat mich dazu gebracht, die Überanpassung aus einer allgemeineren Perspektive zu betrachten, an die ich gewöhnt bin.
Amelio Vazquez-Reina
8

Die Wahl der Anzahl K faltet sich unter Berücksichtigung der Lernkurve

Ich möchte argumentieren, dass die Wahl der geeigneten Anzahl von Falten stark von der Form und Position der Lernkurve abhängt, hauptsächlich aufgrund ihres Einflusses auf die Verzerrung . Dieses Argument, das sich auf einen nicht berücksichtigten Lebenslauf erstreckt, stammt größtenteils aus dem Buch "Elemente des statistischen Lernens", Kapitel 7.10, Seite 243.K

Für Diskussionen über den Einfluss von auf die Varianz siehe hierK

Zusammenfassend wird der wahre Vorhersagefehler durch eine fünf- oder zehnfache Kreuzvalidierung überschätzt, wenn die Lernkurve bei der gegebenen Trainingssatzgröße eine beträchtliche Steigung aufweist. Ob diese Tendenz in der Praxis nachteilig ist, hängt vom Ziel ab. Auf der anderen Seite weist eine ausgelassene Kreuzvalidierung eine geringe Verzerrung auf, kann jedoch eine hohe Varianz aufweisen.

Eine intuitive Visualisierung anhand eines Spielzeugbeispiels

Um dieses Argument visuell zu verstehen, betrachten Sie das folgende Spielzeugbeispiel, in dem wir ein Polynom 4. Grades an eine verrauschte Sinuskurve anpassen:

Bildbeschreibung hier eingeben

Intuitiv und visuell erwarten wir, dass dieses Modell bei kleinen Datensätzen aufgrund von Überanpassung schlecht abschneidet. Dieses Verhalten spiegelt sich in der Lernkurve wider, in der wir Mittlerer quadratischer Fehler gegen Trainingsgröße zusammen mit 1 Standardabweichung darstellen. Beachten Sie, dass ich mich entschlossen habe, 1 - MSE hier zu zeichnen, um die in ESL Seite 243 verwendete Abbildung zu reproduzieren±1±

Bildbeschreibung hier eingeben

Diskussion über das Argument

Die Leistung des Modells verbessert sich erheblich, da die Trainingsgröße auf 50 Beobachtungen ansteigt. Eine weitere Erhöhung auf beispielsweise 200 bringt nur geringe Vorteile. Betrachten Sie die folgenden zwei Fälle:

  1. Wenn unser Trainingssatz 200 Beobachtungen hätte, würde eine fache Kreuzvalidierung die Leistung über eine Trainingsgröße von 160 schätzen, was praktisch der Leistung für Trainingssatzgröße 200 entspricht. Somit würde die Kreuzvalidierung nicht unter einer starken Verzerrung und einer Erhöhung von bis leiden größere Werte bringen wenig Nutzen ( linkes Diagramm )K5K

  2. Allerdings , wenn der Trainingssatz hat Beobachtungen, - fach Kreuzvalidierung würde die Leistung des Modells schätzt über Sätze von Größe Ausbildung 40 und von der Lernkurve würde dies zu einem verzerrten Ergebnis führen. Daher wird in diesem Fall eine Erhöhung von dazu neigen, die Vorspannung zu verringern. ( rechte Handlung ).5 K505K

Bildbeschreibung hier eingeben

[Update] - Kommentare zur Methodik

Den Code für diese Simulation finden Sie hier . Der Ansatz war der folgende:

  1. Erzeugen Sie 50.000 Punkte aus der Verteilung wobei die wahre Varianz von bekannt istϵsin(x)+ϵϵ
  2. Iteriere mal (zB 100 oder 200 mal). Ändern Sie bei jeder Iteration den Datensatz, indem Sie Punkte aus der ursprünglichen Verteilung neu abtastenNiN
  3. Für jeden Datensatz : i
    • Führen Sie eine K-fache Kreuzvalidierung für einen Wert vonK
    • Speichern Sie den durchschnittlichen mittleren quadratischen Fehler (MSE) über die K-Falten
  4. Sobald die Schleife über abgeschlossen ist, berechnen Sie den Mittelwert und die Standardabweichung der MSE über die Datensätze für den gleichen Wert voni KiiK
  5. Wiederholen Sie die obigen Schritte für alle im Bereich bis zu LOOCV{ 5 , . . . , N }K{5,...,N}

Ein alternativer Ansatz besteht darin, nicht bei jeder Iteration einen neuen Datensatz neu abzutasten und stattdessen jedes Mal denselben Datensatz neu zu mischen . Dies scheint ähnliche Ergebnisse zu liefern.

Xavier Bourret Sicotte
quelle
Lassen Sie uns diese Diskussion im Chat fortsetzen .
Xavier Bourret Sicotte
@ Danke für den Code! Ich habe den Code ausgeführt, aber ich verstehe nicht, woher Sie die echte (die in Ihrem Code). Ich denke auch , Ihr Code kompakter sein, wenn Sie zwei Funktionen definieren einen für Bootstrap - Proben (Shuffle = False), ein für KFold (Shuffle = True) :)1 - 11MSE1112
meTchaikovsky
@me_Tchaikovsky Man erinnere sich, dass die MSE des Prädiktors in zerlegt werden kann und dass keine Verzerrung angenommen wird, wenn das Modell mit der wahren zugrunde liegenden Funktion übereinstimmt. Dann bleibt die Varianz des Fehlerterms . Die Varianz von Uniform rv ist also in diesem Fall ε ~ U ( - 0,5 , .5 ) 1 / 12 ( b - a ) 2 1 / 12MSE=Var+Bias2ϵU(.5,.5)1/12(ba)21/12
Xavier Bourret Sicotte