Wie passt die k-fache Kreuzvalidierung in den Kontext von Trainings- / Validierungs- / Testsätzen?


14

Meine Hauptfrage betrifft den Versuch zu verstehen, wie die k-fache Kreuzvalidierung in den Kontext von Trainings- / Validierungs- / Testsätzen passt (wenn sie überhaupt in einen solchen Kontext passt).

Normalerweise wird davon gesprochen, die Daten in einen Trainings-, Validierungs- und Testsatz aufzuteilen - beispielsweise in einem Verhältnis von 60/20/20 pro Andrew Ng-Kurs - wobei der Validierungssatz verwendet wird, um optimale Parameter für das Modelltraining zu ermitteln.

Wenn man jedoch die k-fache Kreuzvalidierung verwenden möchte, um ein repräsentativeres Genauigkeitsmaß zu erhalten, wenn die Datenmenge relativ gering ist, was bedeutet die k-fache Kreuzvalidierung genau in dieser 60/20/20-Aufteilung? Szenario?

Würde das zum Beispiel bedeuten, dass wir die Trainings- und Testsätze (80% der Daten) tatsächlich kombinieren und eine k-fache Kreuzvalidierung durchführen würden, um unser Genauigkeitsmaß zu erhalten (effektiv mit einem expliziten „Testsatz“ zu verwerfen? Wenn ja, welches trainierte Modell verwenden wir a) in der Produktion und b) um es gegen den Validierungssatz zu verwenden und optimale Trainingsparameter zu identifizieren? Eine mögliche Antwort für a und b ist beispielsweise die Verwendung des Best-Fold-Modells.

Antworten:


12

Eine Kreuzvalidierung hilft normalerweise dabei, die Notwendigkeit eines Validierungssatzes zu vermeiden.

Die Grundidee mit Trainings- / Validierungs- / Testdatensätzen lautet wie folgt:

  1. Training: Sie probieren verschiedene Modelltypen mit unterschiedlichen Hyperparametern in den Trainingsdaten aus (z. B. lineares Modell mit unterschiedlicher Auswahl von Merkmalen, neuronales Netz mit unterschiedlicher Auswahl an Schichten, zufälliger Wald mit unterschiedlichen Werten von mtry).

  2. Validierung: Sie vergleichen die Leistung der Modelle in Schritt 1 anhand des Validierungssatzes und wählen den Gewinner aus. Dies hilft, falsche Entscheidungen zu vermeiden, die durch Überanpassung des Trainingsdatensatzes getroffen werden.

  3. Test: Sie probieren das Gewinnermodell anhand der Testdaten aus , um ein Gefühl dafür zu bekommen, wie gut es in der Realität funktioniert. Dadurch wird die in Schritt 2 eingeführte Überanpassung aufgehoben. Hier würden Sie keine weitere Entscheidung treffen. Es sind nur einfache Informationen.

In dem Fall, in dem Sie den Validierungsschritt durch eine Kreuzvalidierung ersetzen, erfolgt der Angriff auf die Daten fast identisch, Sie haben jedoch nur einen Trainings- und einen Testdatensatz. Es ist kein Validierungsdatensatz erforderlich.

  1. Training: Siehe oben.

  2. Validierung: Sie führen eine Kreuzvalidierung der Trainingsdaten durch, um das beste Modell von Schritt 1 in Bezug auf die Kreuzvalidierungsleistung auszuwählen (hier werden die ursprünglichen Trainingsdaten wiederholt in einen temporären Trainings- und Validierungssatz aufgeteilt). Die in der Kreuzvalidierung berechneten Modelle werden nur zur Auswahl des besten Modells von Schritt 1 verwendet, die alle auf dem vollständigen Trainingssatz berechnet werden.

  3. Test: Siehe oben.


1
Vielen Dank! Um zu bestätigen, kann man im CV-Kontext 80% Zug- und 20% Testaufteilung haben. Dann kann man ein Modell auf diesen 80% der Daten aufbauen und gegen die 20% testen, um die Genauigkeit zu erhalten. Um verschiedene Modellvarianten auszuprobieren, kann man einen 10-fachen Lebenslauf für den Trainingsdatensatz (80% der Daten) erstellen - effektiv 8% der Gesamtdaten trainieren und gegen 72% der Gesamtdaten in jeder Falte testen. Basierend auf den CV-Ergebnissen kann man die optimalen Hyperparameterwerte identifizieren und daraus ein neues Modell erstellen, das auf allen Trainingsdaten (80% des vollständigen Datensatzes) trainiert und mit dem verbleibenden 20% -Testdatensatz verglichen wird. Richtig?
Blu

3
Ja, außer dass Sie in jedem Lebenslauf 72% für das Training und 8% für die Validierung verwenden würden ;-)
Michael M

Super Antwort @MichaelM. Ich habe über Nested Cross-Validation (NCV) gelesen und es fällt mir schwer, mich zu entscheiden, ob ich es verwenden oder einfach das tun soll, was Sie für den Lebenslauf beschrieben haben. Und nur damit ich es verstehe, würde NCV auf Schritt 3 angewendet. Anstatt eine 1-Sieger-Punktzahl zu erhalten, erhalten Sie K-Sieger-Punktzahlen (Multiplikation der Gesamtläufe mit K, Schritt 1-2, K-mal wiederholt mit unterschiedlichen Zugdaten von 80%), die Sie dann mitteln können. Also Fragen: 1) Ist mein Verständnis richtig? 2) Wird die Verwendung von NCV empfohlen?
Aziz Javed

Du bist genau richtig. Verschachtelter Lebenslauf hilft dabei, zuverlässigere Schätzungen zu erhalten als der oben beschriebene "einfache" Ansatz. Wenn es die Zeit erlaubt, ist dies definitiv eine Option. Wissen Sie, für welchen Datensatz das endgültige Modell im verschachtelten Lebenslauf berechnet wird? In vollem Umfang?
Michael M

3

K.Die fache Kreuzvalidierung ist wie viele andere eine (Neu-) Stichprobenstrategie.

Die Aufteilung in Training / Validierung / Test ist ebenfalls eine Stichprobenstrategie.

Sie können das Training / die Validierung durch eine andere Stichprobenstrategie ersetzen. Dann würden Sie durchführenK.-Falten Sie den Lebenslauf auf 80% der Daten und testen Sie die restlichen 20%.

Sie können es auch auf den Testteil anwenden (dies wird als verschachtelte Kreuzvalidierung bezeichnet) K.- -1 Falten werden zum Trainieren / Validieren verwendet und der Rest zum Testen. Anschließend iterieren Sie diese über Falten.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.