Benötigen wir ein Test-Set für die Verwendung der k-fachen Kreuzvalidierung?

21

Ich habe über die k-fach-Validierung gelesen und möchte sicherstellen, dass ich verstehe, wie es funktioniert.

Ich weiß, dass für die Holdout-Methode die Daten in drei Gruppen aufgeteilt werden und die Testgruppe nur ganz am Ende zur Bewertung der Leistung des Modells verwendet wird, während die Validierungsgruppe zum Optimieren von Hyperparametern usw. verwendet wird.

Halten wir bei der K-Fold-Methode noch einen Testsatz ganz zum Schluss aus und verwenden nur die verbleibenden Daten für das Training und die Optimierung der Hyperparameter, dh, wir teilen die verbleibenden Daten in K-Fold- Werte auf und verwenden dann die durchschnittliche Genauigkeit nach dem Training Mit jeder Falte (oder welcher Leistungsmetrik auch immer, die wir für die Optimierung unserer Hyperparameter auswählen)? Oder verwenden wir überhaupt keinen separaten Testsatz und teilen einfach den gesamten Datensatz in k-Faltungen auf (wenn dies der Fall ist, gehe ich davon aus, dass wir nur die durchschnittliche Genauigkeit der k-Faltungen als unsere endgültige Genauigkeit betrachten)?

b_pcakes
quelle
3
Es hängt davon ab, was Sie tun möchten. Wenn Sie eine allgemeine Leistungsschätzung wünschen, sollte das Modell Tests mit Daten durchführen, die es noch nie zuvor gesehen hat. Dies bedeutet jedoch nicht, dass es sich um eine einzelne Holdout-Iteration handeln muss. Sie können ein Resampling verwenden, um dasselbe Ziel zu erreichen.
Firebug
2
... was bedeutet, dass Sie immer dann, wenn Sie "Validierungsergebnisse" für die Optimierung von Hyperparametern / Modelloptimierung verwenden, eine andere Validierungsstufe benötigen, die von dieser Optimierung unabhängig ist. Für beide Phasen können Sie z. B. entweder eine Gegenüberstellung oder ein Hold-out (oder Out-of-Bootstrap oder ...) verwenden. CV + CV heißt verschachtelter CV, Hold-out + Hold-out führt zu dem von Ihnen erwähnten 3-Set-Setup
cbeleites unterstützt Monica

Antworten:

9

Halten wir bei der K-Fold-Methode noch einen Testsatz für das Ende durch und verwenden nur die verbleibenden Daten für das Training und die Optimierung der Hyperparameter (dh, wir teilen die verbleibenden Daten in k-Faltungen auf und verwenden anschließend die durchschnittliche Genauigkeit) Training mit jeder Falte (oder welcher Leistungsmetrik auch immer, die wir wählen), um unsere Hyperparameter zu optimieren?

Ja. In der Regel sollte das Testset niemals zum Ändern Ihres Modells (z. B. seiner Hyperparameter) verwendet werden.

Die gegenseitige Validierung kann jedoch manchmal auch für andere Zwecke als die Optimierung von Hyperparametern verwendet werden, z. B. um festzustellen, inwieweit die Aufteilung von Zug und Test die Ergebnisse beeinflusst.

Franck Dernoncourt
quelle
6
+1, aber möglicherweise möchten Sie verschachtelte Kreuzvalidierung als Alternative zur Kreuzvalidierung + Testmenge erwähnen.
Amöbe sagt Reinstate Monica
1
msgstr "kann manchmal für andere Zwecke als die Optimierung von Hyperparametern verwendet werden". Beispielsweise können Sie eine Kreuzvalidierung zu Validierungszwecken verwenden (= Testen unbekannter Fälle, um den Generalisierungsfehler zu messen).
cbeleites unterstützt Monica
3

Im Allgemeinen ja. Grundsätzlich sprechen Sie über den Bias-Varianz-Kompromiss. Wenn Sie Daten zum Aufbau Ihres Modells verwenden (Trainings- und Validierungsdaten) und über verschiedene Hyperparameter iterieren und versuchen, eine gemittelte Leistungsmetrik zu maximieren, ist Ihr Modell möglicherweise nicht so gut wie angegeben.

Insbesondere in kleinen Datensätzen kann die zusätzliche Aufteilung jedoch zu einem noch kleineren Trainingssatz führen und zu einem schlechten Modell führen.

verrückt
quelle
2
Dies ist keine echte Antwort auf die Frage.
Michael R. Chernick
Können Sie dies so erweitern, dass es der akzeptierten Antwort und den ziemlich detaillierten Kommentaren etwas hinzufügt?
mdewey
1

Im Idealfall sollten Validierung (für die Modellauswahl) und Abschlusstest nicht gemischt werden. Wenn Ihr k-Wert jedoch hoch ist oder weggelassen wird, ist es weniger schädlich, die Testergebnisse als Richtschnur für Ihre Modellauswahl zu verwenden. Wenn Sie in diesem Szenario eine akademische Arbeit schreiben, tun Sie dies nicht (es sei denn, Sie haben die Mühe zu erklären) - dh, Sie haben immer einen separaten Testsatz. Wenn Sie ein praktisches Projekt erstellen, ist dies in Ordnung.

ymeng
quelle