Kreuzvalidierung: K-fach vs. wiederholte zufällige Teilstichprobe


10

Ich frage mich, welche Art von Modellkreuzvalidierung für das Klassifizierungsproblem gewählt werden soll: K-fach oder zufällige Unterabtastung (Bootstrap-Abtastung)?

Ich gehe davon aus, dass 2/3 des Datensatzes (das sind ~ 1000 Elemente) für das Training und 1/3 für die Validierung verwendet werden.

In diesem Fall ergibt K-Fold nur drei Iterationen (Folds), was nicht ausreicht, um einen stabilen Durchschnittsfehler zu sehen.

Auf der anderen Seite mag ich keine Funktion für zufällige Teilstichproben: Einige Elemente werden nie für die Schulung / Validierung ausgewählt, andere werden mehrmals verwendet.

Verwendete Klassifizierungsalgorithmen: zufällige Gesamtstruktur und logistische Regression.


1
Ich denke, eine vorherige Frage lautet: Hängt diese Auswahl nicht vom zu bewertenden Algorithmus (hauptsächlich seinem Verhalten) ab?
Rubens

1
@ Rubens, ich habe die Frage aktualisiert: Ich bin an RF und logistischer Regression
interessiert

Antworten:


7

Wenn Sie über eine ausreichende Anzahl von Stichproben verfügen und alle Daten verwenden möchten, ist die k-fache Kreuzvalidierung der richtige Weg. ~ 1.500 zu haben scheint viel zu sein, aber ob es für eine k-fache Kreuzvalidierung angemessen ist, hängt auch von der Dimensionalität der Daten ab (Anzahl der Attribute und Anzahl der Attributwerte). Wenn beispielsweise jede Beobachtung 100 Attribute hat, sind 1.500 Beobachtungen niedrig.

Ein weiterer möglicher Nachteil der k-fachen Kreuzvalidierung ist die Möglichkeit, dass ein einzelner extremer Ausreißer die Ergebnisse verzerrt. Wenn Sie beispielsweise einen extremen Ausreißer haben, der Ihren Klassifikator stark beeinflussen kann, sind bei einer 10-fachen Kreuzvalidierung 9 der 10 Partitionen betroffen (obwohl ich bei zufälligen Gesamtstrukturen nicht glaube, dass Sie dieses Problem haben würden ).

Eine zufällige Unterabtastung (z. B. Bootstrap-Abtastung) ist vorzuziehen, wenn Sie entweder unterabgetastet sind oder wenn Sie die obige Situation haben, in der nicht jede Beobachtung in k-1-Falten erscheinen soll.


4

Ich denke, Sie sagen, dass Sie eine dreifache Kreuzvalidierung verwenden möchten, weil Sie etwas über Ihre Daten wissen (dass die Verwendung von k = 10 zu einer Überanpassung führen würde? Ich bin neugierig auf Ihre Argumentation). Ich bin mir nicht sicher, ob Sie das wissen. Wenn nicht, können Sie einfach ein größeres k verwenden.

Wenn Sie immer noch der Meinung sind, dass Sie die standardmäßige k-fache Kreuzvalidierung nicht verwenden können, können Sie den Algorithmus ein wenig ändern: Nehmen Sie an, Sie teilen die Daten in 30 Falten auf und verwenden jedes Mal 20 für das Training und 10 für die Auswertung (und wechseln dann nach oben eine Falte und benutze die erste und die letzte 9 als Bewertung und den Rest als Training). Dies bedeutet, dass Sie alle Ihre Daten verwenden können.

Wenn ich die k-fache Kreuzvalidierung verwende, führe ich den Prozess normalerweise mehrmals mit einer anderen Randomisierung aus, um sicherzustellen, dass ich über ausreichende Daten verfüge. Wenn Sie dies nicht tun, werden Sie je nach Randomisierung unterschiedliche Leistungen sehen. In solchen Fällen würde ich eine Probenahme vorschlagen. Der Trick ist dann, es oft genug zu tun.

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.