Gibt es eine Überanpassung bei diesem Modellierungsansatz?


11

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 gbmund 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:

  1. 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.
  2. Die Leistung der 5. Gruppe wurde mit diesem Modell berechnet.
  3. 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.
  4. 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.


Ich würde gerne mehr Details in Ihrem ersten Aufzählungspunkt für den Abschnitt "25 Mal den folgenden ... wiederholen" sehen. Welche Daten sind 5-fach und wie werden die Daten für jeden Satz von Metaparametern verwendet?
Wayne

@ Wayne, siehe meine Bearbeitung.
B_Miner

Antworten:


5

Stellen Sie sich vor, Sie wählen nicht nur GBM gegen RF aus, sondern wählen stattdessen zwischen 100 verschiedenen GBM-Klassifikatoren (vorausgesetzt, das GBM-Training verwendet eine Art Zufälligkeit und Sie weisen ihnen zufällige Startwerte von 1 bis 100 zu). Dann würden Sie eines dieser 100 GBMs als das beste GBM auswählen. Aber es ist mit ziemlicher Sicherheit so, dass das von 100 Modellen, die Sie ausgewählt haben, das Glück hatte, seine 99 Geschwister zu schlagen, und daher wird Ihre Leistungsschätzung optimistisch sein.

Sie haben nur zwei Lernende verwendet, und sie wurden nicht mit einem identischen Algorithmus trainiert, sodass Ihr einzelner GBM wahrscheinlich keinen großen Auswahldruck hatte (insbesondere, wenn er die RF dramatisch übertraf), aber Ihre Fehlerschätzung wird es immer noch sein ein bisschen optimistisch.


Wenn GBM einmal als endgültiges Modell ausgewählt wurde (und so tut, als hätte ich gleich zu Beginn einen einzelnen Testsatz herausgezogen), nehme ich alle Trainingsdaten und passe ein GBM damit an (wieder unter Verwendung von CV, um die Parameter des Algorithmus auszuwählen). dann bewerte ich diesen Testsatz. Würden Sie wirklich denken, dass das Fehlermaß bei diesem einen Testsatz besser war als das, was ich aus den 25 erneuten Proben hatte? Dies ist der Teil, mit dem ich zu kämpfen habe. Können Sie nicht dieselben Daten für die Modellauswahl verwenden (GBM über RF oder GBM im Vergleich zu 100 anderen Auswahlmöglichkeiten) UND das daraus resultierende Fehlermaß verwenden?
B_Miner

Ich habe natürlich die Idee, keine Trainingsdaten zur Leistungsbewertung zu verwenden, aber dieser Fall schien anders und gültig zu sein ...
B_Miner

@B_Miner Ich denke, es ist ein sehr geringfügiger Verstoß, aber ich bin nicht in Ihrem Thesis Committee: P
rrenaud

Wenn der Verstoß vorliegt, würden Sie ihn darauf zurückführen, "dieselben Daten für die Modellauswahl zu verwenden (GBM über RF oder GBM gegenüber 100 anderen Auswahlmöglichkeiten) UND das daraus resultierende Fehlermaß zu verwenden"?
B_Miner

3

Es hört sich so an, als hätten Sie versucht, zwei Techniken zu mischen, von denen jede legitim ist, aber so, wie Sie es getan haben, scheint es, als würden zwischen den Fällen Daten verloren gehen.

Auf der unteren Ebene scheinen Sie den Lebenslauf korrekt zu verwenden. Was bedeuten würde, dass die oberste Ebene auch ein Lebenslauf sein sollte, was zu einem verschachtelten Lebenslauf führt, aber Ihre oberste Ebene ist kein Lebenslauf.

Auf der obersten Ebene klingt es so, als wollten Sie vielleicht eine Bootstrap-Validierung durchführen. In diesem Fall würde ein Doppel-Bootstrap für die oberste und die unterste Ebene funktionieren, aber Ihre oberste Ebene ist kein richtiger Bootstrap.

Vielleicht möchten Sie sich diesen Artikel zum Austausch von Stapeln ansehen. und die Artikel, auf die es verweist, und umstrukturieren möglicherweise Ihre oberste Ebene, um ein Lebenslauf zu sein. Beachten Sie auch, dass kein anderer als Frank Harrell Beiträge in diesem Thread veröffentlicht und vorschlägt, dass der Lebenslauf mehrmals wiederholt wird. (Ich war schockiert und dachte, eine Wiederholung sollte es tun.)


Was meinst du mit Top Level - die 25 Iterationen wiederholter Auslassungsgruppen?
B_Miner

Ich habe Dr. Harrells Kommentare gelesen. Ich denke, es gibt eine Trennung zwischen einigen dieser Ratschläge und Data Mining (große Datenmengen). 25 Iterationen, die ich abgeschlossen habe, dauerten 4 Tage und die negativen Fälle wurden im Wesentlichen unter Stichproben genommen.
B_Miner
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.