Ich werde versuchen, diese Frage mit einer Kombination aus veröffentlichten Beweisen, persönlicher Erfahrung und Spekulation zu beantworten.
A) Veröffentlichte Beweise.
Das einzige mir bekannte Papier, das bei der Beantwortung der Frage hilft, ist Delgado et al. 2014 - Brauchen wir Hunderte von Klassifikatoren, um Probleme bei der Klassifizierung in der realen Welt zu lösen? - JMLR, das Hunderte verschiedener Algorithmen und Implementierungen auf 121 Datensätzen für UCI ausführt. Sie stellen fest, dass RBF SVM zwar nicht der "beste" Algorithmus ist (es sind zufällige Wälder, wenn ich mich richtig erinnere), aber zu den Top 3 (oder 5) gehört.
Wenn Sie bedenken, dass ihre Auswahl von Datensätzen eine "gute Stichprobe" von Problemen der realen Welt ist, dann ist SVM definitiv ein Algorithmus, der bei neuen Problemen ausprobiert werden sollte, aber man sollte zuerst zufällige Gesamtstruktur ausprobieren!
Die Grenzen für die Verallgemeinerung dieses Ergebnisses liegen darin, dass die Datensätze fast alle groß und dünn sind (n >> p), nicht sehr dünn - was ich spekuliere, sollte für RF eher ein Problem sein und nicht sehr groß (sowohl n als auch p).
Schließlich empfehle ich nach den veröffentlichten Erkenntnissen zwei Websites, die unterschiedliche Implementierungen zufälliger Wälder vergleichen:
B) Persönliche Erfahrung.
Ich glaube, dass Papiere wie Delgado et al. Sehr wichtig für die Community des maschinellen Lernens sind, deshalb habe ich versucht, ihre Ergebnisse unter verschiedenen Bedingungen zu replizieren. Ich habe 15 verschiedene Algorithmen für mehr als 100 binäre Datensätze ausgeführt (aus Delgados Datensatz). Ich glaube auch, dass ich bei der Auswahl der Hyperparameter vorsichtiger war als sie.
Mein Ergebnis ist, dass die SVM der "beste Algorithmus" war (mittlerer Rang 4,9). Ich gehe davon aus, dass SVM RF bestanden hat, da der ursprüngliche Datensatz viele Probleme mit mehreren Klassen enthielt - die ich im Spekulationsteil erörtern werde -, sollte ein Problem für SVM sein.
EDIT (16. Juni):
Aber RF ist viel schneller und es war der zweitbeste Algorithmus (mittlerer Rang 5,6), gefolgt von gbm (5,8), nnets (7,2) und so weiter. Ich habe bei diesen Problemen keine standardmäßige logistische Regression versucht, aber ich habe ein elastisches Netz (L1 und L2 reguliertes LR) ausprobiert, aber es hat keine gute Leistung erbracht (mittlerer Rang 8,3) ~
Ich habe die Analyse der Ergebnisse oder das Schreiben des Papiers noch nicht abgeschlossen, daher kann ich nicht einmal auf einen technischen Bericht mit den Ergebnissen verweisen. Hoffentlich kann ich diese Antwort in einigen Wochen erneut bearbeiten und auf einen technischen Bericht mit den Ergebnissen verweisen.
Das Papier ist unter http://arxiv.org/abs/1606.00930 verfügbar. Es stellt sich heraus, dass RF und SVM nach der vollständigen Analyse hinsichtlich der erwarteten Fehlerrate nahezu gleichwertig sind und SVM am schnellsten ist (zu meiner Überraschung !!). Ich empfehle RF nicht mehr so nachdrücklich (aus Geschwindigkeitsgründen).
Meine persönliche Erfahrung ist also, dass SVM zwar ein bisschen mehr Genauigkeit bringt, es aber fast immer eine bessere Wahl ist, eine RF zu verwenden.
Auch bei größeren Problemen kann es unmöglich sein, einen Batch-SVM-Solver zu verwenden (ich habe noch nie einen Online-SVM-Solver wie LASVM oder andere verwendet).
Schließlich habe ich nur in einer Situation die logistische Regression verwendet. Ich habe ein "intensives" Feature-Engineering für ein Bildklassifizierungsproblem durchgeführt (z. B. - zwei verschiedene Beschreibungen des Bildes kombinieren oder nicht und die Dimensionalität der Beschreibungen). Und ich habe die logistische Regression verwendet, um unter den vielen Alternativen auszuwählen (da es in LR keine Hyperparametersuche gibt). Sobald wir uns für die besten Merkmale entschieden haben (gemäß LR), haben wir eine RF (Auswahl der besten Hyperparameter) verwendet, um den endgültigen Klassifikator zu erhalten.
C) Spekulation
Ich habe noch nie ernsthaft an Problemen mit mehreren Klassen gearbeitet, aber ich habe das Gefühl, dass SVM nicht so gut darin ist. Das Problem ist nicht das Problem zwischen Eins-gegen-Eins- oder Eins-gegen-Alle-Lösungen, sondern dass alle mir bekannten Implementierungen für alle (OVO- oder OVA-) Klassifizierer dieselben Hyperparameter verwenden. Die Auswahl der richtigen Hyperparameter für SVM ist so kostspielig, dass keine der mir bekannten Standardimplementierungen nach den einzelnen Klassifizierern sucht. Ich spekuliere, dass dies ein Problem für SVM ist (aber kein Problem für RF !!).
Andererseits würde ich bei Problemen mit mehreren Klassen direkt zu RF gehen.