Ich mache eine verschachtelte Kreuzvalidierung. Ich habe gelesen, dass eine einmalige Kreuzvalidierung voreingenommen sein kann (ich erinnere mich nicht, warum).
Ist es besser, die 10-fache Kreuzvalidierung oder die einmalige Kreuzvalidierung zu verwenden, abgesehen von der längeren Laufzeit für die einmalige Kreuzvalidierung?
machine-learning
cross-validation
Maschinen
quelle
quelle
Antworten:
Nur um etwas zur Antwort von @SubravetiSuraj hinzuzufügen (+1)
Die Kreuzvalidierung liefert eine pessimistisch verzerrte Schätzung der Leistung, da sich die meisten statistischen Modelle verbessern, wenn der Trainingssatz vergrößert wird. Dies bedeutet, dass die k-fache Kreuzvalidierung die Leistung eines Modells schätzt, das auf einem Datensatz von 100 * (k-1) / k% der verfügbaren Daten und nicht auf 100% davon trainiert wurde. Wenn Sie also eine Kreuzvalidierung durchführen, um die Leistung zu schätzen, und dann ein Modell verwenden, das für alle Daten für den operativen Gebrauch geschult wurde, ist die Leistung etwas besser als die Kreuzvalidierungsschätzung vorschlägt.
Die ausschließliche Kreuzvalidierung ist in etwa unbefangen , da der Größenunterschied zwischen dem in jeder Falte verwendeten Trainingssatz und dem gesamten Datensatz nur ein einziges Muster ist. Dazu gibt es einen Artikel von Luntz und Brailovsky (in russischer Sprache).
Luntz, Aleksandr und Viktor Brailovsky. "Über die Schätzung der im statistischen Erkennungsverfahren erhaltenen Zeichen." Technicheskaya Kibernetica 3,6 (1969): 6-12.
siehe auch
Abschätzung der Fehlerraten bei der Diskriminanzanalyse Peter A. Lachenbruch und M. Ray Mickey Technometrics Vol. 3 No. 10, Iss. 1,1968
Obwohl eine ausschließliche Kreuzvalidierung in etwa unvoreingenommen ist, weist sie tendenziell eine hohe Varianz auf (daher würden Sie sehr unterschiedliche Schätzungen erhalten, wenn Sie die Schätzung mit unterschiedlichen anfänglichen Stichproben von Daten aus derselben Verteilung wiederholen würden). Da der Fehler des Schätzers eine Kombination aus Verzerrung und Varianz ist, hängt es von beiden Größen ab, ob eine ausgelassene Kreuzvalidierung besser ist als eine zehnfache Kreuzvalidierung.
Jetzt ist die Varianz beim Anpassen des Modells tendenziell höher, wenn es an einen kleinen Datensatz angepasst wird (da es empfindlicher auf Rausch- / Abtastartefakte in der jeweiligen verwendeten Trainingsstichprobe reagiert). Dies bedeutet, dass eine 10-fache Kreuzvalidierung wahrscheinlich eine hohe Varianz (sowie eine höhere Verzerrung) aufweist, wenn Sie nur über eine begrenzte Datenmenge verfügen, da die Größe des Trainingssatzes geringer ist als bei LOOCV. Daher kann die k-fache Kreuzvalidierung auch Varianzprobleme haben, jedoch aus einem anderen Grund. Aus diesem Grund ist LOOCV oft besser, wenn der Datensatz klein ist.
Der Hauptgrund für die Verwendung von LOOCV ist meiner Meinung nach, dass es für einige Modelle (wie lineare Regression, die meisten Kernel-Methoden, Klassifikatoren für den nächsten Nachbarn usw.) recheneffizient ist und ich es verwenden würde , wenn der Datensatz nicht sehr klein wäre 10-fache Kreuzvalidierung, wenn sie in mein Rechenbudget passt, oder noch besser, Bootstrap-Schätzung und Bagging.
quelle
Meiner Meinung nach ist es besser, eine Kreuzvalidierung wegzulassen, wenn Sie nur wenige Trainingsdaten haben. In diesem Fall können Sie keine 10-fachen Vorhersagen zur Verwendung der restlichen Daten zum Trainieren des Modells treffen.
Wenn Sie andererseits eine große Menge an Trainingsdaten haben, ist eine 10-fache Kreuzvalidierung die bessere Wahl, da es zu viele Iterationen gibt, um eine Kreuzvalidierung auszulassen, und wenn Sie diese vielen Ergebnisse berücksichtigen, können Sie Ihre Hyperparameter optimieren keine so gute idee.
Laut ISL gibt es immer einen Bias-Varianz-Kompromiss zwischen dem Auslassen von Eins und der k-fachen Kreuzvalidierung. In LOOCV (einen Lebenslauf weglassen) erhalten Sie Schätzungen des Testfehlers mit geringerer Abweichung und höherer Varianz, da jeder Trainingssatz n-1 Beispiele enthält, was bedeutet, dass Sie fast den gesamten Trainingssatz in jeder Iteration verwenden. Dies führt auch zu einer höheren Varianz, da es eine große Überlappung zwischen Trainingssätzen gibt und daher die Testfehlerschätzungen stark korrelieren, was bedeutet, dass der Mittelwert der Testfehlerschätzung eine höhere Varianz aufweist.
Das Gegenteil ist bei k-fachem CV der Fall, da es relativ weniger Überlappungen zwischen den Trainingssätzen gibt, so dass die Testfehlerschätzungen weniger korreliert sind, wodurch der mittlere Testfehlerwert nicht so stark abweicht wie LOOCV.
quelle