Mir wurde kürzlich gesagt, dass der Prozess, dem ich folgte (Bestandteil einer MS-Arbeit), als überpassend angesehen werden könnte. Ich versuche, dies besser zu verstehen und zu sehen, ob andere zustimmen.
Das Ziel dieses Teils des Papiers ist es,
Vergleichen Sie die Leistung von Gradientenverstärkten Regressionsbäumen mit zufälligen Wäldern in einem Datensatz.
Sehen Sie sich die Leistung des endgültigen Modells an (entweder GBM oder RF).
Die gbm
und randomForest
-Pakete in R werden zusammen mit verwendet
caret
.
Der folgende Prozess war wie folgt:
- Vorläufige Vorverarbeitung der Daten (z. B. Einfügen fehlender Werte der nominalen Prädiktoren in eine eindeutige Kategorie namens "Fehlend"). Die Zielvariable wurde im Hinblick auf eine Vorverarbeitung (die sehr minimal war) nicht betrachtet.
- Erstellen Sie ein Wertegitter für die Metaparameter jedes Algorithmus (z. B. Anzahl der Iterationen für GBM).
- Erstellen Sie 25 zufällige Teilungen des Datensatzes (65% Training und 35% Test).
Wiederholen Sie dies 25 Mal für GBM (jedes Mal, wenn Sie eine der zufälligen Zug- / Testaufteilungen verwenden. Jedes Mal, wenn Training und Testsatz "aktuell" sind, ändert sich natürlich - dies wird wiederholt, indem Sie die Kreuzvalidierung ohne Gruppen auslassen):
- Verwenden Sie die 5-fache Kreuzvalidierung, um die "optimalen" Parametereinstellungen des Algorithmus über die Rastersuche zu ermitteln. Im aktuellen Lauf wurde überhaupt nichts aus früheren Läufen verwendet.
- Passen Sie nach der Bestimmung ein Modell an den vollständigen "aktuellen" Trainingssatz an und sagen Sie den "aktuellen" Testsatz voraus. Legen Sie das Leistungsmaß dieses Laufs beiseite.
Sobald 25 Leistungsmessungen (tatsächlich eine domänenspezifische Messung, aber betrachten Sie sie als Genauigkeit) auf diese Weise erhalten wurden, folgen Sie genau demselben Prozess unter Verwendung genau derselben unabhängigen Stichproben von Zug und Test für RF (gleicher Prozess, nur mit unterschiedlichen Rastersuche natürlich).
Jetzt habe ich 25 Leistungsmessungen aus den damals "aktuellen" Testsätzen für GBM und RF. Ich vergleiche sie mit einem Wilcoxon Signed Rank Test und einem Permutationstest. Ich fand GBM überlegen. Ich habe auch behauptet, dass die Verteilung des Leistungsmaßes aus diesen 25 Läufen für GBM die erwartete Leistung des endgültigen GBM-Klassifikators ist.
Was ich nicht getan habe, war, von Anfang an einen zufälligen Testsatz herauszuholen und ihn beiseite zu legen, um ihn mit dem endgültigen GBM-Modell zu vergleichen, das aus allen Trainingsdaten erstellt wurde. Ich behaupte, dass das, was ich getan habe, tatsächlich viel besser war, da ich den Split-Daten- / Tune-Modell- / Test-on-Hold-Out-Prozess 25 Mal wiederholt habe, anstatt nur einmal.
Gibt es hier eine Überanpassung? Bedeutet dies, dass die aus dem Prozess gewonnenen Leistungsmessungen nicht als Leistungsschätzung für das vollständige Modell verwendet werden können, da die 25 Läufe zur Auswahl von GBM gegenüber RF verwendet wurden?
BEARBEITEN Als Antwort auf Waynes Kommentar wurde Folgendes in jedem der 25 Läufe getan:
- Die für den i-ten Trainingssatz (i = 1, .., 25) abgetasteten Daten wurden in 5 gleich große Gruppen aufgeteilt. Ein Modell wurde unter Verwendung von 4 der 5 Gruppen angepasst, wobei die GBM-Parameter (z. B. Anzahl der Iterationen) gleich den Werten im j-ten Raster (j = 1, .., 18) gesetzt wurden.
- Die Leistung der 5. Gruppe wurde mit diesem Modell berechnet.
- Die Schritte 1 und 2 wurden noch viermal wiederholt (regulärer alter k-facher CV mit k = 5). Die Leistung wurde aus den 5 Teilläufen gemittelt, und dies machte die erwartete Leistung von GBM mit diesem bestimmten Satz von Parameterwerten aus.
- Die Schritte 1 bis 3 wurden für die 17 anderen "Zeilen" im Gitter wiederholt.
Nach Abschluss wurden die besten Parameterwerte aus der obigen Übung ermittelt und ein GBM unter Verwendung dieser Parameterwerte und des vollständigen i-ten Trainingssatzes angepasst. Seine Leistung wurde am i-ten Testsatz geschätzt.
Nachdem dieser gesamte Prozess 25 Mal durchgeführt wurde, standen GBM 25 Leistungsmessungen zur Verfügung. Dann wurden sie auf genau die gleiche Weise für RF gesammelt.
Nachdem ich GBM verglichen und ausgewählt hatte, habe ich mir diese 25 Leistungsmessungen angesehen und den Mittelwert und den Standardfehler verwendet, um ein Konfidenzintervall für ein GBM-Modell für diese Daten zu bestimmen.