Załóżmy, że pracuję nad jakimś problemem klasyfikacji. (Wykrywanie oszustw i spamowanie w komentarzach to dwa problemy, nad którymi obecnie pracuję, ale ogólnie jestem ciekaw jakiegokolwiek zadania klasyfikacyjnego).
Skąd mam wiedzieć, którego klasyfikatora powinienem użyć?
- Drzewo decyzyjne
- SVM
- Bayesian
- Sieć neuronowa
- Najbliżsi sąsiedzi K.
- Q-learning
- Algorytm genetyczny
- Procesy decyzyjne Markowa
- Konwolucyjne sieci neuronowe
- Regresja liniowa lub regresja logistyczna
- Wzmocnienie, pakowanie, zabijanie
- Losowe wspinanie pod górę lub symulowane wyżarzanie
- ...
W jakich przypadkach jeden z nich jest „naturalnym” pierwszym wyborem i jakie są zasady wyboru tego pierwszego?
Przykłady rodzaju odpowiedzi, których szukam (z książki Wprowadzenie do wyszukiwania informacji Manninga i in. ):
za. Jeśli twoje dane są oznaczone, ale masz ich tylko ograniczoną ilość, powinieneś użyć klasyfikatora o wysokim odchyleniu (na przykład Naive Bayes) .
Zgaduję, że dzieje się tak, ponieważ klasyfikator o wyższym odchyleniu będzie miał mniejszą wariancję, co jest dobre z powodu małej ilości danych.
b. Jeśli masz mnóstwo danych, klasyfikator nie ma tak wielkiego znaczenia, więc prawdopodobnie powinieneś po prostu wybrać klasyfikator o dobrej skalowalności.
Jakie są inne wytyczne? Nawet odpowiedzi typu „jeśli będziesz musiał wyjaśnić swój model pewnej osobie wyższej kadry kierowniczej, to może powinieneś użyć drzewa decyzyjnego, ponieważ reguły decyzyjne są dość przejrzyste” są dobre. Jednak mniej dbam o kwestie związane z implementacją / biblioteką.
Ponadto, w przypadku nieco osobnego pytania, oprócz standardowych klasyfikatorów bayesowskich, czy istnieją „standardowe najnowocześniejsze” metody wykrywania spamu w komentarzach (w przeciwieństwie do spamu e-mail)?