Pięć najlepszych klasyfikatorów do wypróbowania w pierwszej kolejności

25

Poza oczywistymi cechami klasyfikatora, takimi jak

  • koszt obliczeniowy,
  • oczekiwane typy danych funkcji / etykiet i
  • przydatność do określonych rozmiarów i wymiarów zbiorów danych,

jakich pięciu najlepszych (lub 10, 20?) klasyfikatorów wypróbowuje najpierw na nowym zbiorze danych , o którym jeszcze niewiele wiadomo (np. semantyka i korelacja poszczególnych cech)? Zwykle wypróbowuję Naive Bayes, Nearest Neighbor, drzewo decyzyjne i SVM - chociaż nie mam żadnego dobrego powodu do tego wyboru, poza tym, że je znam i w większości rozumiem, jak działają.

Myślę, że należy wybrać klasyfikatory, które obejmują najważniejsze ogólne podejścia klasyfikacyjne. Który wybór poleciłbyś według tego kryterium lub z innego powodu?


AKTUALIZACJA: Alternatywnym sformułowaniem tego pytania może być: „Jakie są ogólne podejścia do klasyfikacji i jakie konkretne metody obejmują te najważniejsze / popularne / obiecujące?”

Oben Sonne
źródło
Myślę, że jest to duplikat ( stats.stackexchange.com/questions/3458/… ). Jedyną dodatkową wartością pytania tutaj mogą być „kryteria wyboru klasyfikatorów” (co uczyniłoby pytanie bardzo ogólnym). Jeśli to duplikat, głosuj na zamknięcie, w przeciwnym razie głosuj na cw;)
steffen
@steffen: Twoje pytanie jest pomocne, ale myślę, że nie jest duplikatem. Rzeczywiście moje pytanie jest dość ogólne. Nie szukam rozwiązania konkretnego problemu, ale z ogólnych powodów, dla których warto skorzystać z których uczniów - odpowiednio zaktualizuję swoje pytanie.
Oben Sonne,

Odpowiedzi:

21

Losowy las

Szybka, solidna, dobra dokładność, w większości przypadków nic nie dostrajania, nie wymaga normalizacji, odporna na kolinearność, generuje całkiem dobre przybliżenie błędów i przydatny ranking ważności jako efekt uboczny treningu, trywialnie równoległy, przewiduje w mgnieniu oka.

Wady: wolniejsze niż trywialne metody, takie jak kNN lub NB, działają najlepiej z równymi klasami, gorsza dokładność niż SVM w przypadku problemów desperacko wymagających sztuczki jądra, jest twardą czarną skrzynką, nie robi kawy.

użytkownik88
źródło
1
@mbq (+1) Jeśli chodzi o nierównowagę klas, nadal możemy polegać na próbkowaniu warstwowym podczas pakowania.
chl
3
@mbq, nie robi kawy? To jest właśnie przełom.
kardynał
Dzięki za podpowiedź do Losowych Lasów . Ale czy spróbowałbyś tylko ich? Co jeśli nie jesteś zadowolony z wyników? Który klasyfikator byś spróbował? Lub, na co odpowiedziałbyś, gdyby ktoś zapytał: „Dlaczego nie spróbowałeś innych metod?”
Oben Sonne
@Oben Cóż, zrozumiałem, że tworzysz rodzaj puli jednego klasyfikatora na odpowiedź.
@mbq: Nie bardzo, ale okazuje się, że to taka pula. Prawdopodobnie nie wyraziłem się wystarczająco jasno w pytaniu. Właściwie chciałem wiedzieć, który zestaw klasyfikatorów należy najpierw wypróbować, aby objąć różne ogólne metody klasyfikacji (o różnych mocnych i słabych stronach). Zawsze zadaję sobie pytanie, czy nie powinienem próbować więcej klasyfikatorów. Pomocna byłaby wiedza, że ​​te, które próbowałem, reprezentują najbardziej typowe / obiecujące podejścia. Ale do tego muszę wiedzieć, dla którego zestawu klasyfikatorów to prawda. (Jestem daleki od bycia ekspertem w dziedzinie statystyk, więc daj mi znać, jeśli mój umysł jest tu trochę pokręcony)
Oben Sonne
7

Klasyfikator procesu Gaussa (nie wykorzystujący aproksymacji Laplace'a), najlepiej z marginalizacją zamiast optymalizacji hiperparametrów. Czemu?

  1. ponieważ dają klasyfikację probabilistyczną
  2. możesz użyć funkcji jądra, która pozwala operować bezpośrednio na danych niewektorowych i / lub wykorzystywać wiedzę ekspercką
  3. radzą sobie z niepewnością związaną z właściwym dopasowaniem modelu, a tę niepewność można przełożyć na proces podejmowania decyzji
  4. ogólnie bardzo dobre wyniki predykcyjne.

Wady

  1. powolny
  2. wymaga dużo pamięci
  3. niepraktyczne w przypadku problemów na dużą skalę.

Pierwszym wyborem będzie jednak regaryzowana regresja logistyczna lub regresja kalenicowa [bez wyboru funkcji] - w przypadku większości problemów bardzo proste algorytmy działają raczej dobrze i trudniej je pomylić (w praktyce różnice w wydajności między algorytmami są mniejsze niż różnice w wydajności między operatorem je prowadzącym).

użytkowników88
źródło
1

Sam, gdy zbliżasz się do nowego zestawu danych, powinieneś zacząć obserwować cały problem. Przede wszystkim uzyskaj rozkład dla cech jakościowych oraz średnich i standardowych odchyleń dla każdej cechy ciągłej. Następnie:

  • Usuń funkcje, w których brakuje więcej niż X% wartości;
  • Usuń cechy jakościowe, gdy konkretna wartość osiągnie ponad 90–95% częstotliwości względnej;
  • Usuń ciągłe operacje za pomocą CV = standardowe / średnie <0,1;
  • Uzyskaj ranking parametrów, np. ANOVA dla ciągłego i Chi-kwadrat dla kategorycznego;
  • Uzyskaj znaczący podzbiór funkcji;

Następnie zwykle dzielę techniki klasyfikacji na 2 zestawy: technikę białej skrzynki i czarną skrzynkę. Jeśli chcesz wiedzieć, jak działa klasyfikator, powinieneś wybrać w pierwszym zestawie, np. Drzewa decyzyjne lub klasyfikatory oparte na regułach.

Jeśli musisz sklasyfikować nowe rekordy bez budowania modelu, powinieneś spojrzeć na chętnego ucznia, np. KNN.

Po tym myślę, że lepiej jest mieć próg między dokładnością a prędkością: Sieć neuronowa jest nieco wolniejsza niż SVM.

Oto moja pierwsza pięć technik klasyfikacji:

  1. Drzewo decyzyjne;
  2. Klasyfikatory oparte na regułach;
  3. SMO (SVM);
  4. Naive Bayes;
  5. Sieci neuronowe.
Simone
źródło
4
-1 Absolutnie niepoprawny przepływ pracy dla dużych p małych n, gwarantowane jest przekroczenie FS.
1
czy kNN nie jest leniwym uczniem, a nie chętnym (ponieważ tak naprawdę nic nie robisz, dopóki nie będziesz musiał, kiedy pojawi się wzór klasyfikacji)? Wszelkie wstępne przetwarzanie wykonywane przed zastosowaniem klasyfikatora może mieć większy wpływ na wydajność niż różnica między klasyfikatorami; wybór funkcji jest szczególnie trudny (łatwo prowadzi do nadmiernego dopasowania), a metody takie jak SVM z regularyzacją zwykle działają lepiej bez wyboru funkcji. Z pewnością nie poleciłbym sieci neuronowych, zbyt wiele potencjalnych pułapek.
Dikran Torbacz