Praktische Fragen zur Optimierung von Random Forests


65

Meine Fragen beziehen sich auf zufällige Wälder. Das Konzept dieses schönen Klassifikators ist mir klar, aber es gibt noch viele praktische Fragen zur Verwendung. Leider konnte ich keinen praktischen Leitfaden für RF finden (ich habe nach etwas wie "Ein praktischer Leitfaden für das Training eingeschränkter Boltzman-Maschinen" von Geoffrey Hinton gesucht, aber nach "Random Forests"!

Wie kann man RF in der Praxis einstellen?

Stimmt es, dass eine größere Anzahl von Bäumen immer besser ist? Gibt es eine vernünftige Grenze (außer natürlich die Kapazität) für die Zunahme der Anzahl der Bäume und wie kann man diese für einen bestimmten Datensatz schätzen?

Was ist mit der Tiefe der Bäume? Wie wähle ich die vernünftige aus? Hat es einen Sinn, mit Bäumen unterschiedlicher Länge in einem Wald zu experimentieren, und was ist die Anleitung dafür?

Gibt es andere Parameter, die Sie beim Training von RF beachten sollten? Algos zum Bauen einzelner Bäume darf sein?

Wenn sie sagen, dass RF unempfindlich gegen Überanpassung sind, wie wahr ist das?

Ich freue mich über Antworten und / oder Links zu Leitfäden oder Artikeln, die ich bei meiner Suche möglicherweise verpasst habe.


Antworten:


43

Ich bin keine maßgebliche Persönlichkeit. Beachten Sie daher die folgenden kurzen Hinweise für Praktiker:

Mehr Bäume sind immer besser mit sinkenden Erträgen. Tiefere Bäume sind fast immer besser, wenn mehr Bäume für ähnliche Leistungen benötigt werden.

Die obigen zwei Punkte sind direkt ein Ergebnis des Bias-Varianz-Kompromisses. Tiefere Bäume verringern die Tendenz; mehr Bäume verringern die Varianz.

Der wichtigste Hyperparameter ist, wie viele Features für jede Aufteilung getestet werden müssen. Je mehr nutzlose Funktionen es gibt, desto mehr Funktionen sollten Sie ausprobieren. Dies muss angepasst werden. Sie können es über OOB-Schätzungen abstimmen, wenn Sie nur Ihre Leistung anhand Ihrer Trainingsdaten erfahren möchten und es keine Partnerschaften gibt (~ wiederholte Messungen). Auch wenn dies der wichtigste Parameter ist, liegt das Optimum in der Regel ziemlich nahe an den ursprünglichen Vorgabewerten (sqrt (p) oder (p / 3) für Klassifizierung / Regression).

Ziemlich neue Forschungsergebnisse zeigen, dass Sie nicht einmal eine umfassende geteilte Suche in einer Funktion durchführen müssen, um eine gute Leistung zu erzielen. Probieren Sie einfach einige Schnittpunkte für jedes ausgewählte Feature aus und fahren Sie fort. Das macht das Training noch schneller. (~ Extrem zufällige Wälder / Bäume).


Noch ein paar Anmerkungen: In der Praxis bestätige ich die Konvergenz normalerweise, indem ich Vorhersagen von einer Baumhälfte zur anderen vergleiche. Soweit es um Überanpassung geht, ist es eher eine Funktion dessen, worauf Sie verallgemeinern wollen. Wenn Sie an einer repräsentativen Stichprobe trainieren, werden sie nicht übermäßig fit sein, aber so funktioniert es selten.
Shea Parkes

Gilt Ihre Aussage "Tiefere Bäume = Besser, alles andere konstant" für extrem verrauschte Daten mit sich über die Zeit ändernden Abhängigkeitsstrukturen, bei denen lineare Beziehungen am robustesten sind, um sich nicht zwischen dem Trainingssatz und dem Testsatz zu ändern?
Jase

Ich könnte das Potenzial für flachere Bäume besser sehen, wenn Sie eine Situation haben, in der Sie nur flache Beziehungen lernen sollten, aber ich möchte wirklich empirische Beweise verwenden, um dies zu beweisen (und keine Zeit haben, daran zu arbeiten). Wenn Sie glauben oder Beweise dafür haben, dass die linearen Beziehungen am belastbarsten sind, würde ich nachdrücklich über etwas nachdenken, das nicht baumbasiert ist. Vielleicht neuronale Netze mit Sprungschichten?
Shea Parkes

Nehmen wir an, Sie haben einen Datensatz mit 3 relevanten Funktionen und 100 Funktionen, bei denen es sich um weißes Rauschen handelt, sowie 50 Datenpunkte. Aber Sie wissen nicht, welche Rauschen und welche Rauschen im Voraus relevant sind. Sie wissen nur, dass Ihre Daten so rauschbehaftet sind, dass dies der Fall ist. Offensichtlich sind extrem flache Bäume mit großen Bäumen mtrybesser, es sind keine Beweise oder empirischen Beweise erforderlich, um dies zu erkennen.
Jase

22
  • Anzahl der Bäume : je größer desto besser: ja. Eine Möglichkeit, zu bewerten und zu wissen, wann Sie aufhören müssen, besteht darin, die Fehlerrate beim Erstellen Ihres Gesamtstruktur (oder anderer Bewertungskriterien, die Sie verwenden können) zu überwachen und zu erkennen, wann sie konvergiert. Sie können dies am Lernsatz selbst oder, falls verfügbar, an einem unabhängigen Testsatz tun. Es muss auch beachtet werden, dass die Anzahl der Testknoten in Ihren Bäumen durch die Anzahl der Objekte begrenzt ist. Wenn Sie also viele Variablen und nicht so viele Trainingsobjekte haben, wird eine größere Gesamtstruktur dringend empfohlen, um die Anzahl zu erhöhen Chancen, alle Deskriptoren mindestens einmal in Ihrer Gesamtstruktur auszuwerten.

  • Baumtiefe : Es gibt verschiedene Möglichkeiten, um die Tiefe Ihrer Bäume zu steuern (maximale Tiefe, Anzahl der Knoten, Anzahl der zum Teilen erforderlichen Objekte, Aufheben der Teilung, wenn die Teilung die Passform nicht ausreichend verbessert, ... ). In den meisten Fällen wird empfohlen, die Bäume zu beschneiden (die Tiefe zu begrenzen), wenn Sie mit verrauschten Daten arbeiten. Schließlich können Sie Ihre voll entwickelten Bäume verwenden, um die Leistung kürzerer Bäume zu berechnen, da diese eine "Teilmenge" der voll entwickelten Bäume sind.

  • Wie viele Funktionen an jedem Knoten zu testen sind : Überprüfen Sie Ihre Erfahrungen anhand eines breiten Wertebereichs (einschließlich der empfohlenen). Sie sollten eine Leistungskurve erhalten und in der Lage sein, ein Maximum zu ermitteln, das angibt, welcher Wert für diesen Parameter der beste ist + Shea Parkes Antwort.

  • Shea Parkes erwähnte die Extra-Trees, hier ist das Originalpapier, in dem die Methode detailliert beschrieben wird: http://orbi.ulg.ac.be/bitstream/2268/9357/1/geurts-mlj-advance.pdf

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.