Hinweis: Groß- / Kleinschreibung ist n >> p
Ich lese Elemente des statistischen Lernens und es gibt verschiedene Erwähnungen über den "richtigen" Weg zur Kreuzvalidierung (z. B. Seite 60, Seite 245). Insbesondere ist meine Frage, wie das endgültige Modell (ohne einen separaten Testsatz) mit einem k-fach CV oder einem Bootstrapping ausgewertet werden kann, wenn eine Modellsuche durchgeführt wurde. Es scheint, dass es in den meisten Fällen (ML-Algorithmen ohne eingebettete Merkmalsauswahl) geben wird
- Ein Funktionsauswahlschritt
- Ein Schritt zur Auswahl von Metaparametern (z. B. der Kostenparameter in SVM).
Meine Fragen:
- Ich habe gesehen, dass der Merkmalsauswahlschritt durchgeführt werden kann, wenn die Merkmalsauswahl für den gesamten Trainingssatz durchgeführt und beiseite gehalten wird. Dann wird unter Verwendung des k-fachen CV der Merkmalsauswahlalgorithmus in jeder Falte verwendet (wobei jedes Mal möglicherweise unterschiedliche Merkmale ausgewählt werden) und der Fehler gemittelt. Dann würden Sie die ausgewählten Funktionen unter Verwendung aller Daten (die beiseite gelegt wurden) verwenden, um den endgültigen Modus zu trainieren, aber den Fehler aus der Kreuzvalidierung als Schätzung der zukünftigen Leistung des Modells verwenden. IST DAS RICHTIG?
- Wenn Sie zur Auswahl von Modellparametern die Kreuzvalidierung verwenden, wie kann die Modellleistung anschließend geschätzt werden? IST ES DAS GLEICHE VERFAHREN, WIE OBEN NUMMER 1, ODER SOLLTEN SIE NESTED CV WIE AUF SEITE 54 ( pdf ) ODER ETWAS ANDERES VERWENDEN ?
- Wenn Sie beide Schritte ausführen (Funktions- und Parametereinstellung) ..... Was tun Sie dann? komplexe verschachtelte Schleifen?
- Wenn Sie eine separate Holdout-Stichprobe haben, verschwindet das Problem, und Sie können mithilfe der Kreuzvalidierung Funktionen und Parameter auswählen (ohne sich Sorgen zu machen, da Ihre Leistungsschätzung aus einem Holdout-Satz stammt).
Antworten:
Der Schlüssel zum Erinnern ist, dass zur Kreuzvalidierung, um eine (fast) unvoreingenommene Leistungsschätzung zu erhalten, jeder Schritt, der mit der Anpassung des Modells verbunden ist, in jeder Falte des Kreuzvalidierungsverfahrens unabhängig durchgeführt werden muss. Das Beste, was Sie tun können, ist, die Featureauswahl, die Einstellung von Meta- / Hyperparametern und die Optimierung der Parameter als integrale Bestandteile der Modellanpassung anzuzeigen. Führen Sie keinen dieser Schritte aus, ohne die anderen beiden Schritte auszuführen.
Die optimistische Verzerrung, die durch Abweichung von diesem Rezept eingeführt werden kann, kann überraschend groß sein, wie Cawley und Talbot zeigten , bei denen die Verzerrung, die durch eine anscheinend harmlose Abweichung eingeführt wurde, größer war als der Leistungsunterschied zwischen konkurrierenden Klassifikatoren. Schlimmer noch, voreingenommene Protokolle bevorzugen schlechte Modelle am stärksten, da sie empfindlicher auf die Anpassung von Hyperparametern reagieren und daher anfälliger für eine Überanpassung des Modellauswahlkriteriums sind!
Antworten auf spezifische Fragen:
Das Verfahren in Schritt 1 ist gültig, da die Merkmalsauswahl in jeder Falte separat durchgeführt wird. Bei der Kreuzvalidierung handelt es sich also um das gesamte Verfahren, das zum Anpassen des endgültigen Modells verwendet wird. Die Kreuzvalidierungsschätzung weist eine leichte pessimistische Tendenz auf, da der Datensatz für jede Falte geringfügig kleiner ist als der gesamte für das endgültige Modell verwendete Datensatz.
Für 2 müssen Sie diesen Vorgang unabhängig von der für die Leistungsschätzung verwendeten Kreuzvalidierung für jede Falte der Kreuzvalidierung wiederholen, da für die Auswahl der Modellparameter eine Kreuzvalidierung verwendet wird. Dies führt zu einer verschachtelten Kreuzvalidierung.
Für 3 müssen Sie im Wesentlichen eine verschachtelte Kreuzvalidierung durchführen. Im Wesentlichen müssen Sie in jeder Falte der äußersten Kreuzvalidierung (die für die Leistungsschätzung verwendet wird) alles wiederholen Sie tun möchten, um das endgültige Modell anzupassen.
Für 4 - Ja, wenn Sie über ein separates Hold-Out-Set verfügen, liefert dies eine unvoreingenommene Schätzung der Leistung, ohne dass eine zusätzliche Gegenprüfung erforderlich ist.
quelle
Ich habe eine umfassende Kreuzvalidierungsanalyse für einen Datensatz durchgeführt, dessen Erwerb Millionen gekostet hat, und es ist kein externer Validierungssatz verfügbar. In diesem Fall habe ich eine umfangreiche verschachtelte Kreuzvalidierung durchgeführt, um die Gültigkeit sicherzustellen. Ich habe Features und optimierte Parameter nur aus den jeweiligen Trainingssets ausgewählt. Dies ist für große Datenmengen rechenintensiv, aber ich musste es tun, um die Gültigkeit aufrechtzuerhalten. Es gibt jedoch Komplikationen, die damit einhergehen. Beispielsweise werden in jedem Trainingssatz unterschiedliche Funktionen ausgewählt.
Meine Antwort lautet also, dass dies in Fällen, in denen Sie keinen praktikablen Zugriff auf einen externen Datensatz haben, ein vernünftiger Weg ist. Wenn Sie einen externen Datensatz haben, können Sie so ziemlich in die Stadt fahren, wie Sie möchten, und dann den externen Datensatz einmal testen.
quelle