Da das OP ein Kopfgeld auf diese Frage gesetzt hat, sollte es einige Aufmerksamkeit erregen, und daher ist es der richtige Ort, um einige allgemeine Ideen zu diskutieren, auch wenn es das OP nicht direkt beantwortet.
Vornamen:
a) Kreuzvalidierung ist die allgemeine Bezeichnung für alle Schätz- / Messtechniken, die einen anderen als den Zugsatz verwenden. Synonym: Schätzungen außerhalb oder außerhalb der Stichprobe. Antonym: In-Sample-Schätzung.
Bei der In-Sample-Schätzung handelt es sich um Techniken, die einige Informationen zum Trainingssatz verwenden, um die Modellqualität zu schätzen (nicht unbedingt Fehler). Dies ist sehr häufig der Fall, wenn das Modell eine hohe Verzerrung aufweist, das heißt, wenn starke Annahmen über die Daten getroffen werden. In linearen Modellen (ein High-Bias-Modell) werden, wie im Beispiel der Frage, R-Quadrat, AIC, BIC und Abweichung als Maß für die Modellqualität verwendet - all dies sind In-Sample-Schätzer. In SVM sind beispielsweise die Verhältnisdaten im Unterstützungsvektor zur Anzahl der Daten eine In-Sample-Schätzung des Fehlers des Modells.
Es gibt viele Kreuzvalidierungstechniken:
b) Hold-out ist die obige Methode # 1. Teilen Sie das Set in ein Training und einen Test auf. Es gibt eine lange Geschichte von Diskussionen und Praktiken zu den relativen Größen des Trainings- und Test-Sets.
c) k- fach - Methode Nr. 2 oben. Ziemlich normal.
d) Auslassen - Methode 3 oben.
e) Bootstrap : Wenn Ihr Set N Daten enthält, wählen Sie zufällig N Samples WITH REPLACEMENT aus dem Set aus und verwenden Sie es als Training. Die Daten aus dem Originalsatz, die zu keinem Zeitpunkt abgetastet wurden, werden als Testsatz verwendet. Es gibt verschiedene Möglichkeiten, die endgültige Schätzung des Fehlers des Modells zu berechnen, wobei sowohl der Fehler für den Testsatz (außerhalb der Stichprobe) als auch der Fehler für den Zugsatz (innerhalb der Stichprobe) verwendet werden. Siehe zum Beispiel den .632-Bootstrap. Ich denke, es gibt auch eine .632+ -Formel - es handelt sich um Formeln, die den wahren Fehler des Modells anhand von Fehlern außerhalb und innerhalb der Stichprobe abschätzen.
f) Orthogonal zur Auswahl der obigen Methode ist das Problem der Wiederholung. Mit Ausnahme von "Leave-One-Out" können alle oben genannten Methoden beliebig oft wiederholt werden. Tatsächlich kann man von REPEATED Hold-Out oder REPEATED k- Fold sprechen . Fairerweise wird fast immer die Bootstrap-Methode wiederholt angewendet.
Die nächste Frage ist, welche Methode "besser" ist. Das Problem ist, was "besser" bedeutet.
1) Die erste Antwort ist, ob jede dieser Methoden für die Schätzung des Modellfehlers (für eine unendliche Menge zukünftiger Daten) voreingenommen ist .
2) Die zweite Alternative ist, wie schnell oder wie gut jede dieser Methoden zum wahren Modellfehler konvergiert (wenn sie nicht voreingenommen sind). Ich glaube, das ist immer noch ein Forschungsthema. Lassen Sie mich auf diese beiden Papiere verweisen (hinter der Lohnwand), aber die Zusammenfassung gibt uns ein Verständnis dafür, was sie zu erreichen versuchen. Beachten Sie auch, dass es sehr häufig vorkommt, k- fold als "Kreuzvalidierung" für sich zu bezeichnen.
Es gibt wahrscheinlich viele andere Artikel zu diesen Themen. Das sind nur einige Beispiele.
3) Ein weiterer Aspekt von "besser" ist: Wenn ein bestimmtes Maß des Modellfehlers unter Verwendung einer der oben genannten Techniken angegeben wird, wie sicher können Sie sein, dass der richtige Modellfehler nahe beieinander liegt.
In diesem Fall möchten Sie in der Regel viele Fehlermaßnahmen durchführen und ein Konfidenzintervall berechnen (oder ein glaubwürdiges Intervall, wenn Sie einen Bayes'schen Ansatz verfolgen). In diesem Fall geht es darum, wie sehr Sie der Varianz des Satzes von Fehlermaßnahmen vertrauen können. Beachten Sie, dass Sie mit Ausnahme des Auslassens bei allen oben beschriebenen Techniken viele verschiedene Maße erhalten ( k- Maße für eine k- Falte, n- Maße für eine n- wiederholte Haltezeit) und somit die Varianz (oder Standardabweichung) messen können ) dieser Menge und berechnen ein Konfidenzintervall für das Fehlermaß.
Hier wird es etwas komplizierter. Von dem, was ich aus dem Papier verstehen Keine unverzerrter Schätzer für die Varianz von k -fach Kreuzvalidierung (nicht hinter paywall), kann man nicht die Varianz Sie von einem bekommen vertrauen k -fach - so man kein gutes Konfidenzintervall von konstruieren k - Falten. Auch nach dem, was ich aus dem Artikel über ungefähre statistische Tests zum Vergleichen von Lernalgorithmen für überwachte Klassifizierung (nicht hinter Paywall) verstehe , Techniken, die wiederholte Messungen verwenden (wiederholtes k-fache, wiederholte Unterbrechung (bei Bootstrap nicht sicher) führt zu einer Unterschätzung der tatsächlichen Varianz des Fehlermaßes (dies ist leicht zu erkennen), da Sie eine Stichprobe aus einer endlichen Menge ziehen, wenn Sie die Messung mit einer sehr großen Zahl wiederholen Mal wiederholen sich dieselben Werte, wodurch der Mittelwert gleich bleibt, aber die Varianz verringert wird. Daher sind Techniken für wiederholte Messungen in Bezug auf das Konfidenzintervall zu optimistisch.
In diesem letzten Artikel wird vorgeschlagen, eine 5-fache Wiederholung (5 × 2 CV) durchzuführen, um eine gute Balance zwischen vielen Takten (10) und nicht zu vielen Wiederholungen zu erzielen.
BEARBEITEN:
Natürlich gibt es in Cross Validated großartige Antworten auf einige dieser Fragen (obwohl sie manchmal untereinander nicht übereinstimmen). Hier sind einige:
Cross-Validierung oder Bootstrapping zur Bewertung der Klassifizierungsleistung?
Unterschiede zwischen Kreuzvalidierung und Bootstrapping zur Abschätzung des Vorhersagefehlers
Cross-Validierung oder Bootstrapping zur Bewertung der Klassifizierungsleistung?
Grundlegendes zum Bootstrapping für die Validierung und Modellauswahl
Im Allgemeinen ist die Tag -Kreuzvalidierung hier Ihr Freund.
Was ist die beste Lösung? Ich weiß es nicht. Ich habe 5 × 2 CV verwendet, wenn ich sehr streng sein muss, wenn ich sicher sein muss, dass eine Technik besser ist als eine andere, insbesondere in Veröffentlichungen. Und ich verwende ein Holdout, wenn ich nicht vorhabe, Varianz oder Standardabweichung zu messen, oder wenn ich zeitliche Einschränkungen habe - es gibt nur ein Modell, das in einem Holdout lernt .