Out-of-Bag-Fehler machen den Lebenslauf in zufälligen Wäldern unnötig?

15

Ich bin ziemlich neu in zufälligen Wäldern. In der Vergangenheit habe ich immer die Genauigkeit von Fit vs. Test mit Fit vs. Zug verglichen , um eine Überanpassung festzustellen. Aber ich habe gerade hier gelesen , dass:

"In zufälligen Gesamtstrukturen ist keine Kreuzvalidierung oder ein separater Testsatz erforderlich, um eine unvoreingenommene Schätzung des Testsatzfehlers zu erhalten. Sie wird intern während des Laufs geschätzt ..."

Der kleine Absatz oben befindet sich im Abschnitt " OOB-Fehlerschätzung" . Dieses Out-of-Bag-Fehlerkonzept ist für mich völlig neu und etwas verwirrend: Der OOB-Fehler in meinem Modell beträgt 35% (oder 65% Genauigkeit). Wenn ich meine Daten jedoch einer Quervalidierung unterziehe, handelt es sich lediglich um einen einfachen Fehler Verfahren) und beide vergleichen fit vs Test gegen fit vs Zug I jeweils eine 65% ige Genauigkeit und eine 96% ige Genauigkeit erhalten. Nach meiner Erfahrung wird dies als Überanpassung angesehen, aber das OOB weist einen Fehler von 35% auf, genau wie mein Fit vs. Test- Fehler. Überanpassung Sollte ich überhaupt Kreuzvalidierung verwenden, um in zufälligen Wäldern auf Überanpassung zu prüfen?

Kurz gesagt, ich bin nicht sicher , ob ich die OOB vertrauen sollte unvoreingenommen Fehler des Prüfgerätes Fehler zu erhalten , wenn mein fit vs Zug zeigt an, dass ich Überanpassung!

jgozal
quelle
OOB kann zur Bestimmung von Hyperparametern verwendet werden. Um die Leistung eines Modells einschätzen zu können, sollte für mich eine Kreuzvalidierung verwendet werden.
Metariat
@Matemattica Wenn du über Hyperparameter sprichst, wovon sprichst du genau? Entschuldigung für meinen Mangel an Wissen im Thema
jgozal
Anzahl der Bäume und Merkmale, die bei jeder Iteration zufällig ausgewählt wurden
Metariat
Ich weiß, dass dies eine völlig andere Frage ist, aber wie bestimmen Sie die Anzahl der Bäume und die Stichprobe der Merkmale bei jeder Iteration aus einem Fehler?
Jgozal
1
Vielleicht könnte das helfen: stats.stackexchange.com/a/112052/78313 Im Allgemeinen habe ich noch nie einen solchen Unterschied in RF gesehen!
Metariat

Antworten:

21
  • Trainingsfehler (wie in predict(model, data=train)) sind normalerweise unbrauchbar. Wenn Sie die Bäume nicht (vom Standard abweichend) beschneiden, kann sie aufgrund des Algorithmus nicht viel höher als 0 sein . Random Forest verwendet die Bootstrap-Aggregation von Entscheidungsbäumen, von denen bekannt ist, dass sie schlecht angepasst sind. Dies ist wie ein Trainingsfehler für einen 1-Nächsten-Nachbarn-Klassifizierer.

  • Der Algorithmus bietet jedoch eine sehr elegante Methode zur Berechnung der Out-of-Bag-Fehlerabschätzung, die im Wesentlichen eine Out-of-Bootstrap-Schätzung des aggregierten Modellfehlers ist. Der Out-of-Bag-Fehler ist der geschätzte Fehler zum Aggregieren der Vorhersagen des1eBruchteil der Bäume, die ohne diesen speziellen Fall ausgebildet wurden.
    Die für den Out-of-Bag-Fehler aggregierten Modelle sind nur dann unabhängig, wenn keine Abhängigkeit zwischen den Eingabedatenzeilen besteht. Dh jede Zeile = ein unabhängiger Fall, keine hierarchische Datenstruktur / kein Clustering / keine wiederholten Messungen.

    Der Out-of-Bag-Fehler ist also nicht genau derselbe (weniger Bäume zum Zusammenfassen, mehr Übungsfallkopien) wie ein Kreuzvalidierungsfehler, aber für praktische Zwecke ist er nah genug.

  • Sinnvoll wäre es, einen Out-of-Bag-Fehler mit einer externen Validierung zu vergleichen, um eine Überanpassung zu erkennen. Wenn Sie jedoch nichts über Clustering in Ihren Daten wissen, ist ein "einfacher" Fehler bei der Kreuzvalidierung genauso optimistisch wie der Out-of-Bag-Fehler: Die Aufteilung erfolgt nach sehr ähnlichen Grundsätzen.
    Sie müssen Out-of-Bag- oder Kreuzvalidierung mit Fehler vergleichen, damit ein gut durchdachtes Testexperiment dies erkennt.

cbeleites unterstützt Monica
quelle
11

Out-of-Bag-Fehler sind nützlich und ersetzen möglicherweise andere Leistungsschätzungsprotokolle (z. B. Kreuzvalidierung), sollten jedoch mit Vorsicht verwendet werden.

Wie bei der Kreuzvalidierung wird die Leistungsschätzung unter Verwendung von Out-of-Bag-Proben unter Verwendung von Daten berechnet, die nicht zum Lernen verwendet wurden. Wenn die Daten so verarbeitet wurden, dass Informationen über Stichproben hinweg übertragen werden, ist die Schätzung (wahrscheinlich) verzerrt. Einfache Beispiele, die mir einfallen, sind die Auswahl von Features oder die Zuweisung fehlender Werte. In beiden Fällen (und insbesondere bei der Merkmalsauswahl) werden die Daten unter Verwendung von Informationen aus dem gesamten Datensatz transformiert, wodurch die Schätzung verzerrt wird.

George
quelle