Kiedy używać Random Forest zamiast SVM i odwrotnie?


28

Kiedy należy używać Random Forestna SVModwrót?

Rozumiem, że cross-validationporównanie modeli jest ważnym aspektem wyboru modelu, ale tutaj chciałbym dowiedzieć się więcej na temat zasad praktycznych i heurystyki tych dwóch metod.

Czy ktoś może wyjaśnić subtelności, mocne i słabe strony klasyfikatorów, a także problemy, które najlepiej pasują do każdego z nich?


1
Wynik dokładności jest jedyną prawdziwą miarą ich względnej wydajności, chociaż może istnieć stan techniki, który wskazuje, który typ klasyfikatora spośród wielu dostępnych może być lepszy dla twojego rodzaju danych, jeśli masz szczęście. Możesz być bardziej ograniczony przez to, ile czasu zajmuje dostrojenie parametrów, w takim przypadku Losowy Las prawdopodobnie okaże się łatwiejszą propozycją tych dwóch.
image_doctor,

Odpowiedzi:


29

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ą.


Wystarczy dodać: losowe lasy nie dają ci prawdopodobieństwa. Potrzebujesz albo probabilistycznej implementacji drzewa decyzyjnego, albo później skalibrujesz dopasowany model Losowego Lasu, jeśli chcesz „prawdziwych” prawdopodobieństw.
Archie

5

Modele SVM działają lepiej na rzadkich danych niż ogólnie drzewa. Na przykład w klasyfikacji dokumentu możesz mieć tysiące, a nawet dziesiątki tysięcy cech, aw dowolnym wektorze dokumentu tylko niewielka część tych cech może mieć wartość większą niż zero. Prawdopodobnie istnieją między nimi inne różnice, ale to właśnie znalazłem dla moich problemów.


3

To naprawdę zależy od tego, co chcesz osiągnąć, jak wyglądają twoje dane itp. SVM ogólnie będzie działał lepiej na liniowych zależnościach, w przeciwnym razie potrzebujesz jądra nieliniowego, a wybór jądra może zmienić wyniki. Ponadto SVM są mniej interpretowalne - na przykład, jeśli chcesz wyjaśnić, dlaczego klasyfikacja była taka, jaka była - będzie nietrywialna. Drzewa decyzyjne mają lepszą interpretację, działają szybciej, a jeśli masz zmienne kategorialne / liczbowe, jest to w porządku, a ponadto: zależności nieliniowe są obsługiwane dobrze (biorąc pod uwagę N wystarczająco duże). Ponadto trenują szybciej niż SVM w ogóle, ale mają tendencję do prześcigania ...

Spróbowałbym również Regresji logistycznej - świetny klasyfikowalny interpretator)

Podsumowując - ogólną zasadą jest wypróbowanie czegokolwiek i porównanie tego, co daje najlepsze wyniki / interpretację.


1

Aby uzupełnić dobre stwierdzone już punkty:

Od Czy potrzebujemy setek klasyfikatorów, aby rozwiązać rzeczywiste problemy z klasyfikacją? losowe lasy częściej osiągają lepszą wydajność niż losowe lasy.

Poza tym sposób implementacji algorytmów (i ze względów teoretycznych) losowe lasy są zwykle znacznie szybsze niż (nieliniowe) maszyny SVM. Rzeczywiście, jako @Ianenok, maszyny SVM są zwykle bezużyteczne powyżej 10 000 punktów danych.

Jednak wiadomo, że SVM działają lepiej na niektórych określonych zestawach danych (obrazy, dane z mikromacierzy ...).

Zatem po raz kolejny krzyżowa walidacja jest rzeczywiście najlepszym sposobem na sprawdzenie, która metoda działa najlepiej.

Źródło: Losowy las vs SVM


um? „losowe lasy częściej osiągają lepszą wydajność niż losowe lasy”.
Sanjay Manohar
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.