Powiedziałbym, że wybór zależy bardzo od tego, jakie dane posiadasz i jaki jest twój cel. Kilka „praktycznych zasad”.
Random Forest jest z natury odpowiedni dla problemów z wieloklasami, podczas gdy SVM jest z natury dwuklasowy. W przypadku problemu wieloklasowego należy zredukować go do wielu problemów z klasyfikacją binarną.
Losowy las działa dobrze z mieszanką cech numerycznych i kategorycznych. Gdy funkcje są w różnych skalach, jest również w porządku. Z grubsza mówiąc, z Random Forest możesz korzystać z danych takimi, jakie są. SVM maksymalizuje „margines”, a zatem opiera się na koncepcji „odległości” między różnymi punktami. Od Ciebie zależy, czy „odległość” ma znaczenie. W związku z tym konieczne jest jedno-gorące kodowanie funkcji jakościowych. Ponadto wysoce zalecane jest skalowanie min-max lub inne na etapie przetwarzania wstępnego.
Jeśli masz dane z punktami i funkcjami , etapem pośrednim w SVM jest konstruowanie macierzy (pomyśl o wymaganiach dotyczących pamięci do przechowywania) poprzez obliczenie (złożoność obliczeniowa). Dlatego z zasady SVM jest mało skalowalny powyżej 10 ^ 5 punktów. Duża liczba funkcji (jednorodne cechy o znacznej odległości, piksel obrazu byłby idealnym przykładem) na ogół nie stanowi problemu.nmn×nn2
W przypadku problemu z klasyfikacją Random Forest daje prawdopodobieństwo przynależności do klasy. SVM daje odległość do granicy, nadal musisz jakoś przekonwertować ją na prawdopodobieństwo, jeśli potrzebujesz prawdopodobieństwa.
W przypadku tych problemów, do których stosuje się SVM, generalnie działa lepiej niż Losowy Las.
SVM daje „wektory wsparcia”, czyli punkty w każdej klasie najbliżej granicy między klasami. Mogą być zainteresowani interpretacją.