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.