Wann soll Random Forest über SVM und umgekehrt verwendet werden?


28

Wenn würde man verwenden , Random Forestüber , SVMund umgekehrt?

Ich verstehe das cross-validationund der Modellvergleich ist ein wichtiger Aspekt bei der Auswahl eines Modells, aber hier möchte ich mehr über Faustregeln und Heuristiken der beiden Methoden erfahren.

Kann jemand bitte die Feinheiten, Stärken und Schwächen der Klassifikatoren sowie die Probleme erklären, die für jeden von ihnen am besten geeignet sind?


1
Der Genauigkeitswert ist das einzig wahre Maß für die relative Leistung. Es gibt jedoch möglicherweise einen Stand der Technik, der angibt, welcher Klassifizierertyp aus den vielen verfügbaren Klassifizierern für Ihre Art von Daten besser geeignet ist, wenn Sie Glück haben. Möglicherweise sind Sie gezwungener, wie lange es dauert, Ihre Parameter zu optimieren. In diesem Fall wird sich die Zufallsstruktur wahrscheinlich als einfacher herausstellen.
image_doctor

Antworten:


29

Ich würde sagen, die Wahl hängt sehr davon ab, welche Daten Sie haben und was Ihr Zweck ist. Ein paar "Faustregeln".

Random Forest eignet sich grundsätzlich für Probleme mit mehreren Klassen, während SVM grundsätzlich zwei Klassen umfasst. Bei Mehrklassenproblemen müssen Sie es in mehrere Binärklassifizierungsprobleme reduzieren.

Random Forest funktioniert gut mit einer Mischung aus numerischen und kategorialen Merkmalen. Wenn Merkmale in den verschiedenen Maßstäben vorliegen, ist dies ebenfalls in Ordnung. Grob gesagt können Sie mit Random Forest Daten so verwenden, wie sie sind. SVM maximiert den "Spielraum" und stützt sich daher auf das Konzept der "Entfernung" zwischen verschiedenen Punkten. Es liegt an Ihnen, zu entscheiden, ob "Distanz" sinnvoll ist. Infolgedessen ist die One-Hot-Codierung für kategoriale Features ein Muss. Außerdem wird im Vorverarbeitungsschritt eine Min-Max-Skalierung oder eine andere Skalierung dringend empfohlen.

Wenn Sie Daten mit Punkten und Merkmalen haben, besteht ein Zwischenschritt in SVM darin, eine Matrix zu konstruieren (überlegen Sie sich den Speicherbedarf), indem Sie Punktprodukte berechnen (rechnerische Komplexität). Daher ist SVM als Faustregel kaum über 10 ^ 5 Punkte skalierbar. Eine große Anzahl von Merkmalen (homogene Merkmale mit bedeutendem Abstand, Pixel des Bildes wären ein perfektes Beispiel) ist im Allgemeinen kein Problem.m n × n n 2nmn×nn2

Für ein Klassifizierungsproblem gibt Random Forest die Wahrscheinlichkeit an, zur Klasse zu gehören. SVM gibt Ihnen Abstand zur Grenze, Sie müssen sie dennoch in Wahrscheinlichkeit umwandeln, wenn Sie Wahrscheinlichkeit benötigen.

Bei diesen Problemen, bei denen SVM angewendet wird, ist die Leistung im Allgemeinen besser als bei Random Forest.

SVM gibt Ihnen "Unterstützungsvektoren", dh Punkte in jeder Klasse, die der Grenze zwischen Klassen am nächsten liegen. Sie können für sich genommen für die Interpretation von Interesse sein.


Nur um es hinzuzufügen: Es ist nicht einfach für Random Forests, Ihnen Wahrscheinlichkeiten zu geben. Sie benötigen entweder eine probabilistische Implementierung eines Entscheidungsbaums oder kalibrieren anschließend Ihr angepasstes Random Forest-Modell, wenn Sie "wahre" Wahrscheinlichkeiten wünschen.
Archie

5

SVM-Modelle sind bei spärlichen Daten leistungsfähiger als Bäume im Allgemeinen. Beispielsweise können in der Dokumentklassifizierung Tausende, sogar Zehntausende von Merkmalen vorhanden sein, und in einem bestimmten Dokumentvektor kann nur ein kleiner Bruchteil dieser Merkmale einen Wert größer als Null aufweisen. Wahrscheinlich gibt es andere Unterschiede zwischen ihnen, aber das habe ich für meine Probleme gefunden.


3

Es hängt wirklich davon ab, was Sie erreichen möchten, wie Ihre Daten aussehen usw. SVM bietet im Allgemeinen eine bessere Leistung bei linearen Abhängigkeiten. Andernfalls benötigen Sie einen nichtlinearen Kernel und die Auswahl des Kernels kann die Ergebnisse verändern. SVM sind auch weniger interpretierbar. Wenn Sie beispielsweise erläutern möchten, warum die Klassifizierung so war, wie sie war, ist dies nicht trivial. Entscheidungsbäume haben eine bessere Interpretierbarkeit, sie arbeiten schneller und wenn Sie kategoriale / numerische Variablen haben, ist das auch in Ordnung: Nichtlineare Abhängigkeiten werden gut gehandhabt (wenn N groß genug ist). Auch sie trainieren schneller als SVM im Allgemeinen, neigen aber dazu, sich zu überanpassen ...

Ich würde auch versuchen, logistische Regression (großer interpretierbarer Klassifikator)

Zusammenfassend lässt sich sagen, dass die Faustregel darin besteht, alles zu versuchen und zu vergleichen, was die besten Ergebnisse / Interpretationen liefert.


1

Ergänzend zu den bereits genannten guten Punkten:

Von Brauchen wir Hunderte von Sichter Real World Klassifizierung Probleme zu lösen? Zufallswälder erzielen mit größerer Wahrscheinlichkeit eine bessere Leistung als Zufallswälder.

Außerdem ist die Art und Weise, wie Algorithmen implementiert werden (und aus theoretischen Gründen), in der Regel viel schneller als bei (nicht linearen) SVMs. In der Tat sind SVMs als @Ianenok über 10 000 Datenpunkte hinaus unbrauchbar.

Es ist jedoch bekannt, dass SVMs bei bestimmten Datensätzen (Bilder, Microarray-Daten ...) eine bessere Leistung erzielen.

Daher ist die Kreuzvalidierung in der Tat der beste Weg, um herauszufinden, welche Methode die beste Leistung erbringt.

Quelle: Zufälliger Wald vs SVM


Äh? "Zufällige Wälder erzielen mit größerer Wahrscheinlichkeit eine bessere Leistung als zufällige Wälder."
Sanjay Manohar
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.