Wann ist eine verschachtelte Kreuzvalidierung wirklich erforderlich und kann einen praktischen Unterschied bewirken?

36

Wenn Sie eine Kreuzvalidierung für die Modellauswahl (wie z. B. die Optimierung von Hyperparametern) verwenden und die Leistung des besten Modells bewerten, sollten Sie eine verschachtelte Kreuzvalidierung verwenden . Die äußere Schleife dient zur Bewertung der Leistung des Modells, und die innere Schleife dient zur Auswahl des besten Modells. Das Modell wird an jedem äußeren Trainingssatz (unter Verwendung der inneren CV-Schleife) ausgewählt und seine Leistung wird an dem entsprechenden äußeren Testsatz gemessen.

Dies wurde in vielen Threads diskutiert und erklärt (wie z. B. hier Training mit dem vollständigen Datensatz nach Kreuzvalidierung ? , siehe die Antwort von @DikranMarsupial) und ist mir völlig klar. Wenn Sie sowohl für die Modellauswahl als auch für die Leistungsschätzung nur eine einfache (nicht verschachtelte) Kreuzvalidierung durchführen, kann dies zu einer positiv verzerrten Leistungsschätzung führen. @DikranMarsupial hat einen Artikel aus dem Jahr 2010 zu genau diesem Thema ( Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung ) mit der Überschrift " Ist Überanpassung bei der Modellauswahl wirklich ein echtes Problem in der Praxis?" - und das Papier zeigt, dass die Antwort ja ist.

Abgesehen davon arbeite ich jetzt mit multivariater Multi-Ridge-Regression und sehe keinen Unterschied zwischen einfachem und verschachteltem Lebenslauf. In diesem speziellen Fall scheint ein verschachtelter Lebenslauf eine unnötige Rechenlast zu sein. Meine Frage ist: Unter welchen Bedingungen wird ein einfacher Lebenslauf zu einer spürbaren Verzerrung führen, die mit einem verschachtelten Lebenslauf vermieden wird? Wann spielt der verschachtelte Lebenslauf in der Praxis eine Rolle und wann spielt er keine Rolle? Gibt es Faustregeln?

Hier ist eine Illustration mit meinem aktuellen Datensatz. Die horizontale Achse ist für die Gratregression. Die vertikale Achse ist ein Kreuzvalidierungsfehler. Die blaue Linie entspricht der einfachen (nicht verschachtelten) Kreuzvalidierung mit 50 zufälligen 90:10 Trainings- / Testaufteilungen. Die rote Linie entspricht der verschachtelten Kreuzvalidierung mit 50 zufälligen 90:10 Trainings- / Testaufteilungen, wobei λ mit einer inneren Kreuzvalidierungsschleife ausgewählt wird (ebenfalls 50 zufällige 90:10 Aufteilungen). Linien sind Mittelwerte über 50 zufällige Teilungen, Schattierungen zeigen ± 1 Standardabweichung.log(λ)λ±1

Einfache versus verschachtelte Kreuzvalidierung

λλ

Aktualisieren

Es ist tatsächlich so :-) Es ist nur so, dass der Unterschied winzig ist. Hier ist die Vergrößerung:

Einfache oder verschachtelte Kreuzvalidierung, Vergrößern

λ=0.00250

Einfache versus verschachtelte Kreuzvalidierung, Unterschiede

λ=0.002

(Ich habe die ganze Prozedur ein paar Mal ausgeführt, und es passiert jedes Mal.)

Meine Frage ist, unter welchen Bedingungen können wir erwarten, dass diese Tendenz winzig ist, und unter welchen Bedingungen sollten wir das nicht tun?

Amöbe sagt Reinstate Monica
quelle
Ich bin mir nicht sicher, ob ich das Diagramm verstehe. Könnten Sie eine Streudiagramm erstellen, das den geschätzten Fehler aus verschachtelter und nicht verschachtelter Kreuzvalidierung auf jeder Achse zeigt (vorausgesetzt, die 50 Testtrainingsteile waren jedes Mal gleich)? Wie groß ist der von Ihnen verwendete Datensatz?
Dikran Beuteltier
1
Ich habe das Streudiagramm erstellt, aber alle Punkte liegen sehr nahe an der Diagonale, und es ist schwer, Abweichungen davon zu erkennen. Also subtrahierte ich stattdessen einen einfachen CV-Fehler (für optimales Lambda) vom verschachtelten CV-Fehler und zeichnete diesen über alle Trainingstest-Splits auf. Es scheint eine sehr kleine, aber wahrnehmbare Tendenz zu geben! Ich habe das Update gemacht. Lassen Sie mich wissen, wenn die Zahlen (oder meine Erklärungen) verwirrend sind. Ich möchte, dass dieser Beitrag klar ist.
Amöbe sagt Reinstate Monica
Im ersten Absatz haben Sie das Modell auf jedem Außentrainingssatz ausgewählt ; sollte es vielleicht stattdessen inner sein ?
Richard Hardy
@RichardHardy Nein. Aber ich kann sehen, dass dieser Satz nicht sehr klar formuliert ist. Das Modell wird bei jedem Außentrainingssatz "ausgewählt". Verschiedene Modelle (zB Modelle mit unterschiedlichen Lambdas) sind fit auf jedem Innentrainingssatz, getestet auf innerTestSets, und dann eines des Modells ist , ausgewählt , basierend auf dem gesamten Außentrainingssatz. Die Leistung wird dann mithilfe eines äußeren Testsatzes bewertet. Macht das Sinn?
Amöbe sagt Reinstate Monica

Antworten:

13

Ich würde vorschlagen, dass die Abweichung von der Varianz des Modellauswahlkriteriums abhängt. Je höher die Abweichung, desto größer ist wahrscheinlich die Abweichung. Die Varianz des Modellauswahlkriteriums hat zwei Hauptursachen: die Größe des Datensatzes, auf dem es ausgewertet wird (wenn Sie also einen kleinen Datensatz haben, ist die Verzerrung wahrscheinlich größer) und die Stabilität des statistischen Modells (wenn Die Modellparameter werden durch die verfügbaren Trainingsdaten gut geschätzt. Das Modell ist weniger flexibel, um das Modellauswahlkriterium durch Optimieren der Hyperparameter zu übertreffen. Der andere relevante Faktor ist die Anzahl der zu treffenden Modellauswahl und / oder der zu stimmenden Hyperparameter.

In meiner Studie beschäftige ich mich mit leistungsfähigen nichtlinearen Modellen und relativ kleinen Datensätzen (häufig in maschinellen Lernstudien verwendet). Beide Faktoren bedeuten, dass eine verschachtelte Kreuzvalidierung unbedingt erforderlich ist. Wenn Sie die Anzahl der Parameter erhöhen (möglicherweise einen Kernel mit einem Skalierungsparameter für jedes Attribut), kann die Überanpassung "katastrophal" sein. Wenn Sie lineare Modelle mit nur einem einzigen Regularisierungsparameter und einer relativ großen Anzahl von Fällen (im Verhältnis zur Anzahl der Parameter) verwenden, ist der Unterschied wahrscheinlich viel geringer.

Ich sollte hinzufügen, dass ich empfehlen würde, immer geschachtelte Kreuzvalidierung zu verwenden, sofern dies rechnerisch machbar ist, da hierdurch eine mögliche Verzerrungsquelle beseitigt wird, sodass wir (und die Peer-Reviewer; o) uns nicht darum kümmern müssen, ob dies der Fall ist vernachlässigbar oder nicht.

Dikran Beuteltier
quelle
2
Wenn Sie alle Daten verwenden, wird der Trainingssatzfehler dann nicht effektiv geplottet? Ziemlich oft verwende ich Klassifizierungsmodelle, bei denen die besten Modelle keinen Trainingssatzfehler, aber einen Generalisierungsfehler ungleich Null aufweisen, obwohl der Regularisierungsparameter sorgfältig ausgewählt wird.
Dikran Beuteltier
1
Ein paar tausend Trainingsmuster oder weniger. Was für ein Modell benutzt du? Wenn der Datensatz größer wird, verringern sich die statistischen Probleme und die Rechenprobleme nehmen in der Regel zu. Die k-fache Kreuzvalidierung ist nur k-mal langsamer als die Anpassung des Basismodells (einschließlich der Optimierung von Hyperparametern), sodass sie selten von machbar zu nicht machbar wechselt. Die k-fache Kreuzvalidierung lässt sich auch leicht parallelisieren, was ich normalerweise mache.
Dikran Beuteltier
1
Es gibt nur eine unvoreingenommene Leistungsschätzung. Im Wesentlichen verschachtelter Lebenslauf schätzt die Leistung einer Methode zum Anpassen eines Modells einschließlich der Modellauswahl durch Kreuzvalidierung. Um das operationelle Modell zu erhalten, wiederholen wir die Methode in der Regel nur mit dem gesamten Datensatz, wodurch die gleichen Modellauswahlmöglichkeiten wie bei der "flachen" Kreuzvalidierungsprozedur zur Verfügung stehen.
Dikran Marsupial
1
Ich bin auch auf das Problem des verschachtelten Lebenslaufs gestoßen. Bei der Verwendung des unverfälschten verschachtelten Lebenslaufs werden Modelle mit kleineren Daten angepasst. Bei einem 10-fachen Lebenslauf sind es 81% im verschachtelten Lebenslauf und 90% im nicht verschachtelten Lebenslauf. Auch die Testfalte beträgt 9% im Vergleich zu 10% im nicht verschachtelten Zustand. Erzeugt dies zusätzliche Varianz bei der Modellbewertung? Speziell für kleine Datensätze, wie 350 Samples in diesem Beitrag. Ist dies der "Nachteil" bei der Verwendung eines verschachtelten Lebenslaufs? Wenn ja, wie sollten wir entscheiden, ob geschachtelter Lebenslauf im Verhältnis zur Größe des Datensatzes verwendet wird? Schätzen Sie wirklich die Meinung von Experten wie Ihnen zu diesem Thema. Gibt es einen Artikel zu diesem Thema? @Dikran Beuteltier
Zesla
2
@zesla Ja, das ist in der Tat der Fall, wenn weniger Daten für die innere Kreuzvalidierung vorhanden sind, was die Varianz erhöht. Das endgültige Modell wird jedoch unter Verwendung des gesamten Datensatzes (einschließlich der Hyperparameterschätzung) erstellt. Bei der Leistungsschätzung gibt es immer einen Kompromiss zwischen Verzerrung und Varianz. Es ist am wichtigsten, geschachtelte Kreuzvalidierung zu verwenden, wenn der Datensatz klein ist, da Überanpassung bei der Modellauswahl und Verzerrung eher ein Problem darstellt. In praktischen Anwendungen, in denen es nur wenige Hyperparameter gibt, ist der Unterschied möglicherweise von geringer praktischer Bedeutung. Arxiv.org/abs/1809.09446 .
Dikran Marsupial