Wann vermeide ich Random Forest?


25

Zufällige Wälder sind dafür bekannt, dass sie bei einer Vielzahl von Aufgaben eine recht gute Leistung erbringen . Gibt es Probleme oder spezielle Bedingungen, unter denen man die Verwendung einer zufälligen Gesamtstruktur vermeiden sollte?


8
Hallo. "PLS ist der Ledermann von ...", "Bootstrap ist der Ledermann von ...", "Random Forest ist der Ledermann von ..." <- Ich rate Ihnen, solchen Behauptungen gegenüber misstrauisch zu sein. Es war nur ein Kommentar :)
Stéphane Laurent

Antworten:


24

Wenn man an die spezifische Sprache des Zitats denkt, ist ein Ledermann ein Multitool: ein einzelnes Stück Hardware mit vielen kleinen Dingen, die darin stecken. Es ist eine Zange und ein Messer und ein Schraubenzieher und mehr! Anstatt jedes dieser Werkzeuge einzeln tragen zu müssen, ist der Leatherman ein einzelnes Element, das Sie an Ihre Hose anclipsen können, damit es immer zur Hand ist. Dies ist praktisch , aber der Nachteil ist, dass nicht jedes der Komponentenwerkzeuge das Beste für seine Arbeit ist. Der Dosenöffner ist schwer zu bedienen, die Schraubendrehereinsätze haben normalerweise die falsche Größe und das Messer kann kaum mehr als schnitzen. Wenn das Ausführen einer dieser Aufgaben kritisch ist, sollten Sie ein spezielles Werkzeug verwenden: ein echtes Messer, einen echten Schraubendreher oder eine echte Zange.

Ein zufälliger Wald kann in den gleichen Begriffen gedacht werden. Die zufällige Gesamtstruktur liefert starke Ergebnisse für eine Vielzahl von Datensätzen und reagiert nicht sehr empfindlich auf Optimierungsparameter. Aber es ist nicht perfekt. Je mehr Sie über das Problem wissen, desto einfacher ist es, spezielle Modelle für Ihr spezielles Problem zu erstellen.

Es gibt ein paar offensichtliche Fälle, in denen zufällige Wälder kämpfen werden:

  • Sparsity - Wenn die Daten sehr dünn sind, ist es sehr plausibel, dass für einige Knoten das Bootstrap-Beispiel und die zufällige Teilmenge von Features zusammenarbeiten, um einen unveränderlichen Feature-Space zu erzeugen. Es gibt keine produktive Trennung, daher ist es unwahrscheinlich, dass die Kinder dieses Knotens überhaupt hilfreich sind. XGBoost kann diesbezüglich besser abschneiden.

  • Daten sind nicht achsenausgerichtet - Angenommen, es gibt eine diagonale Entscheidungsgrenze im Raum der beiden Features und . Auch wenn dies die einzige relevante Dimension für Ihre Daten ist, benötigt ein gewöhnliches zufälliges Gesamtstrukturmodell viele Teilungen, um diese diagonale Grenze zu beschreiben. Dies liegt daran, dass jeder Split senkrecht zur Achse von oder . (Dies sollte intuitiv sein, da ein gewöhnliches zufälliges Gesamtstrukturmodell Teilungen der Formx1x2x1x2x1>4.) Rotationswald, der eine PCA-Projektion auf die Teilmenge der für jeden Split ausgewählten Features ausführt, kann verwendet werden, um dies zu überwinden: Die Projektionen auf orthogonaler Basis verringern im Prinzip den Einfluss der achsenausgerichteten Eigenschaft, da die Splits auftreten wird in der ursprünglichen Basis nicht mehr achsausgerichtet.

    Dieses Bild zeigt ein weiteres Beispiel dafür, wie achsgerichtete Teilungen zufällige Gesamtstrukturentscheidungen beeinflussen. Die Entscheidungsgrenze ist ein Kreis am Ursprung. Beachten Sie jedoch, dass dieses bestimmte zufällige Waldmodell eine Box zeichnet, um den Kreis zu approximieren. Es gibt eine Reihe von Dingen, die man tun könnte, um diese Grenze zu verbessern. Am einfachsten ist es, mehr Daten zu sammeln und mehr Bäume zu bauen. Bildbeschreibung hier eingeben

  • Zufällige Gesamtstrukturen funktionieren grundsätzlich nur mit Tabellendaten.dh es gibt keine starke, qualitativ wichtige Beziehung zwischen den Merkmalen im Sinne, dass die Daten ein Bild sind oder die Beobachtungen in einem Graphen miteinander vernetzt sind. Diese Strukturen werden in der Regel von vielen rechteckigen Partitionen nicht gut angenähert. Wenn Ihre Daten in einer Zeitreihe vorliegen, eine Reihe von Bildern darstellen, in einem Diagramm dargestellt werden oder eine andere offensichtliche Struktur aufweisen, fällt es der zufälligen Gesamtstruktur sehr schwer, dies zu erkennen. Ich habe keinen Zweifel, dass Forscher Variationen der Methode entwickelt haben, um diese Situationen zu berücksichtigen, aber ein zufälliger Vanillewald wird diese Strukturen nicht unbedingt auf hilfreiche Weise aufgreifen. Die gute Nachricht ist, dass Sie normalerweise wissen, wann dies der Fall ist, dh Sie wissen, dass Sie Bilder, eine Zeitreihe oder ein Diagramm haben, mit denen Sie arbeiten können.

Ich denke, dass zufällige Vanille-Wälder das Potenzial haben, nicht rechteckige Partitionen zu erkennen. Wir können zum Beispiel quadratische Merkmale haben und Grenzen wie x ^ 2 <c erkennen.
Aniruddha Acharya

2
@ AniruddhaAcharya Ich sagte "Kampf", nicht scheitern. Meine Antwort hier macht deutlich, dass quadratische Merkmale kein unüberwindbares Problem sind. Bei Diagonalen oder Quadratischen oder anderen nicht ausgerichteten Teilungstypen müssen die Bäume jedoch immer wieder rechteckig auf diese Features aufgeteilt werden, um eine Annäherung an eine Diagonale / Kurve zu erreichen. Sie können diesen Effekt in der Handlung zu diesem Beitrag sehen: Schauen Sie sich die scharfen Ecken an. RF verwendet ein Quadrat, um sich einem Kreis anzunähern.
Sycorax sagt Reinstate Monica

Ich meinte, das Hinzufügen der quadratischen (und anderen Features höherer Ordnung) zu RF würde den Aufwand beim Modellieren nicht rechteckiger Partitionen verringern. Beispielsweise können RFs 2 Quadratics verwenden, um den Kreis zu approximieren, anstatt ein Quadrat zu verwenden. Obwohl ich zustimme, dass es nicht so einfach ist wie Modelle, die die Interaktion zwischen Variablen beinhalten, ist es meines Erachtens nicht so schwierig, da RFs nicht auf die Verwendung von Schwellenwerten für die unformatierten Features beschränkt sind.
Aniruddha Acharya

1
@AniruddhaAcharya Wenn Sie wissen, dass quadratische Terme das richtige Modell sind, brauchen Sie keine zufällige Gesamtstruktur: Fügen Sie einem linearen Modell einfach quadratische Terme hinzu. RF ist ein guter Weg, um beliebige Funktionen zu approximieren, insbesondere wenn sie achsgerichtete Entscheidungsfunktionen haben.
Sycorax sagt Reinstate Monica

Warum ist das von @AniruddhaAcharya vorgeschlagene Feature-Engineering (mit quadratischen Begriffen) kein nützlicher Schritt in Verbindung mit RFs? Ja, diese Features könnten zu einem linearen Modell hinzugefügt werden. Letzteres bietet jedoch nicht das Verhalten, die Beiträge vieler Ergebnisse zu kombinieren, die individuell für unterschiedliche Teilmengen der Features optimiert wurden.
Javadba

22

Scharfe Kanten. Genauigkeit.

Sie verwenden Diffusionsmethoden. Sie passen gut zu klumpigen Dingen. Sie passen nicht gut zu aufwändigen und sehr detaillierten Dingen, wenn die Stichprobengröße niedrig ist. Ich würde mir vorstellen, dass sie mit multivariaten Zeitreihendaten nicht gut abschneiden - wenn hier etwas davon abhängt, was da drüben auf Distanz ist.

Durch Farbverläufe verstärkte Wälder passen möglicherweise oder passen zu stark, können jedoch bei denselben Daten einen wesentlich geringeren Fehler verursachen.

" Leathermen " gibt es nicht. Es gibt keine "silbernen Kugeln". Es gibt Werkzeugkästen. Kennen Sie Ihre Werkzeuge und kümmern Sie sich gut um sie, damit sie sich um Sie kümmern können. Seien Sie vorsichtig, "wenn Sie ein Hammer sind, dann sieht jedes Problem wie ein Nagel aus", besonders wenn Sie keine dichte Bibliothek in Ihrem Werkzeugkasten haben.

Solange Sie das Problem nicht genau kennen, können Sie sich leicht vorstellen, dass irgendetwas es lösen könnte oder dass Ihr Lieblingswerkzeug es lösen könnte. Es ist ratsam, sich mit dem Problem vertraut zu machen und mit Ihren Werkzeugen vertraut zu sein.

Hinzugefügt: Wenn Sie über genügend Rechenressourcen oder eine ausreichende Zeitspanne verfügen, um etwas anderes zu verwenden. Der RF ist nicht nur schnell zu trainieren, sondern auch schnell auszuführen. Eine sehr tief gehobene Struktur ist weniger davon. Sie müssen den Overhead haben, um das zu unterstützen.


2
Um Anwalt des Teufels hier: Nichts wird „fit ausgefeilten und sehr gut detailliert Dinge , wenn die Probengröße niedrig ist
usεr11852 sagt wieder einzusetzen Monic

5

Dies ist das erste Mal, dass ich eine Frage beantworte, also nimm mich nicht fest. Aber ich glaube, ich kann deine Frage beantworten:

Wenn Sie sich in der Tat nur für die Modellleistung und nicht für die Interpretierbarkeit interessieren, ist Random Forest in der Tat oft ein sehr guter Lernalgorithmus, der jedoch in den folgenden Fällen etwas schlechter abschneidet:

1.) Wenn die Dimensionalität (Anzahl der Merkmale) in Bezug auf die Anzahl der Trainingsstichproben sehr hoch ist, ist in diesen Fällen eine regulierte lineare Regression oder SVM besser.

2.) In den Daten sind Repräsentationen / Faltungsstrukturen höherer Ordnung vorhanden, wie z. B. bei Bildverarbeitungsproblemen. In diesen Fällen von Computer Vision übertrifft ein neuronales Faltungsnetzwerk eine zufällige Gesamtstruktur (im Allgemeinen ist es besser, Wissen in das Lernen einzubeziehen, wenn es vorhanden ist).

Allerdings sind zufällige Wälder ein sehr guter Ausgangspunkt. Eine der Personen, die ich für ihre maschinellen Lernfähigkeiten bewundere, beginnt immer mit dem Lernen einer zufälligen Gesamtstruktur und eines regulierten linearen Regressors.

Wenn Sie jedoch die bestmögliche Leistung erzielen möchten, sind neuronale Netze heutzutage meines Erachtens auch bekannt. Deep Learning scheint ein sehr attraktiver Ansatz zu sein. Immer mehr Gewinner von Websites mit Datenherausforderungen wie Kaggle verwenden Deep Learning-Modelle für den Wettbewerb. Ein weiterer Vorteil neuronaler Netze besteht darin, dass sie sehr viele Samples verarbeiten können (> 10 ^ 6, man kann sie mit stochastischem Gradientenabstieg trainieren und Datenbits gleichzeitig einspeisen). Persönlich finde ich das ein sehr attraktiver Profi für Deep Learning.


2
Gute Antwort, aber Ihr letzter Punkt stimmt nicht: Mini-Batch-Training kann für alle gängigen Algorithmen für maschinelles Lernen implementiert werden, siehe zum Beispiel h2o .
Jubo

Oke, interessant, das wusste ich nicht. Wollen Sie damit sagen, dass man mit diesen Methoden einen (Entscheidungs-) Baum mithilfe von Mini-Batch- / SGD-Lernen trainieren und so einen einzigen Baum auf der Grundlage einer Mehrheitsaufteilung der Trainingsgesamtdaten erstellen kann (etwa 65%)?
MJW

1
Ich denke, zufällige Gesamtstrukturen sollten immer noch gut sein, wenn die Anzahl der Features hoch ist - verwenden Sie nur nicht viele Features gleichzeitig, wenn Sie einen einzelnen Baum erstellen. hoffentlich) gut machen.
Alexey Grigorev

Soweit ich weiß, verwendet H2O das Map-Reduction-Paradigma für das Minibatch-Training. Einzelne (CART-) Bäume sind in h2o nicht als solche implementiert (aber ich nehme an, ein unbeschnittener Baum ist ein Sonderfall einer zufälligen Gesamtstruktur mit nur einem Baum und maximaler Auswahl an Prädiktoren?).
Jubo

2
Was ist die Rechtfertigung für (1)? Sie machen einen Anspruch geltend, liefern jedoch keine stützenden Argumente.
Sycorax sagt Reinstate Monica

0

Erstens kann die zufällige Gesamtstruktur nicht auf die folgenden Datentypen angewendet werden:

  • bilder
  • Audio-
  • Text (nach der Vorverarbeitung sind die Daten spärlich und RF funktioniert nicht gut mit spärlichen Daten)

Für tabellarische Datentypen ist es immer gut, Random Forest zu überprüfen, weil:

  • Es erfordert weniger Datenvorbereitung und -vorverarbeitung als Neuronale Netze oder SVMs. Beispielsweise müssen Sie keine Feature-Skalierung durchführen.
  • Für das Zufallswaldtraining können Sie einfach die Standardparameter verwenden und die Anzahl der Bäume festlegen (je mehr Bäume in RF, desto besser ). Wenn Sie Random Forest mit neuronalen Netzwerken vergleichen , ist das Training sehr einfach (Sie müssen keine Architektur definieren oder den Trainingsalgorithmus optimieren). Random Forest ist einfacher zu trainieren als Neuronale Netze.
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.