Frage

Ich frage mich, welche Art von Modellkreuzvalidierung für das Klassifizierungsproblem ausgewählt werden soll: k-fach oder zufälliger Unterabtastung (Bootstrap-Stichproben)?

Meine beste Vermutung ist es, 2/3 des Datensatzes (~ 1000 Elemente) für das Training und 1/3 zur Validierung zu verwenden.

In diesem Fall gibt k-fold nur drei Iterationen (Falten), was nicht ausreicht, um einen stabilen Durchschnittsfehler zu erkennen.

Andererseits mag ich keine zufällige Unterabtastfunktion: Einige Elemente werden nie für Training/Validierung ausgewählt und einige werden mehr als einmal verwendet.

Klassifizierungsalgorithmen verwendet: Zufällige Wald & logistische Regression.

War es hilfreich?

Lösung

Wenn Sie eine ausreichende Anzahl von Proben haben und alle Daten verwenden möchten, ist die k-fache Kreuzvalidierung der richtige Weg. ~ 1.500 scheint viel zu haben, aber ob es für die 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 aufweist, sind 1.500 Beobachtungen niedrig.

Ein weiterer potenzieller Nachteil der k-fachen Kreuzvalidierung ist die Möglichkeit eines einzelnen, extremen Ausreißers, der die Ergebnisse verzerrt. Wenn Sie beispielsweise einen extremen Ausreißer haben, der Ihren Klassifizierer stark beeinflussen kann, werden in einer 10-fachen Kreuzvalidierung 9 der 10 Partitionen betroffen (obwohl für zufällige Wälder, ich glaube nicht, dass Sie dieses Problem haben würden ).

Zufällige Teilabtastung (z. B. Bootstrap-Stichproben) ist vorzuziehen, wenn Sie entweder untergetastet sind oder wenn Sie die Situation oben haben, in der nicht jede Beobachtung in K-1-Falten erscheint.

Andere Tipps

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

Wenn Sie weiterhin der Meinung sind, dass Sie keine Standard-K-fach-Kreuzvalidierung verwenden können, können Sie den Algorithmus ein wenig ändern: Sagen Sie, Sie teilen die Daten in 30 Falten und verwenden Sie jedes Mal 20 für das Training und 10 für die Bewertung (und verschieben Sie sich dann nach oben eine faltete und benutze die erste und die letzten 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 habe. Wenn Sie dies nicht tun, sehen Sie je nach Randomisierung unterschiedliche Leistungen. In solchen Fällen würde ich Probenahme vorschlagen. Der Trick ist dann, es oft genug zu tun.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top