W jakich przypadkach lepiej jest użyć drzewa decyzyjnego, a innych - KNN?
Po co używać jednego z nich w niektórych przypadkach? A drugi w różnych przypadkach? (Patrząc na jego funkcjonalność, a nie na algorytm)
Czy ktoś ma jakieś wyjaśnienia lub odniesienia na ten temat?
machine-learning
data-mining
decision-trees
gchavez1
źródło
źródło
Odpowiedzi:
Służą do różnych celów.
KNN nie jest nadzorowany, drzewo decyzyjne (DT) nadzorowane. ( KNN nadzoruje uczenie się, podczas gdy K-środki nie są nadzorowane, myślę, że ta odpowiedź powoduje pewne zamieszanie. ) KNN jest używany do grupowania, DT do klasyfikacji. ( Oba są używane do klasyfikacji. )
KNN określa sąsiedztwa, dlatego musi istnieć wskaźnik odległości. Oznacza to, że wszystkie funkcje muszą być numeryczne. Na metryki odległości mogą wpływać różne skale między atrybutami, a także przestrzeń wielowymiarowa.
Z kolei DT przewiduje klasę dla danego wektora wejściowego. Atrybuty mogą być liczbowe lub nominalne.
Jeśli więc chcesz znaleźć podobne przykłady, możesz użyć KNN. Jeśli chcesz sklasyfikować przykłady, możesz użyć ID.
źródło
knn
ik-means
są różnymi algorytmami, a ta odpowiedź niestety (i błędnie) pomija te dwie procedury w górę.knn
nie jest ani nadzorowane, ani wykorzystywane do tworzenia klastrów! Patrz P: Zróżnicowane kNN i kMeanKlasyfikatory takie jak Drzewo decyzyjne, Bayesian, propagacja wsteczna, maszyna wektorów wsparcia należą do kategorii „chętnych uczniów” , ponieważ najpierw budują model klasyfikacji na zbiorze danych szkoleniowych, zanim są w stanie faktycznie sklasyfikować [niewidzialną] obserwację z zestawu danych testowych . Wyuczony model jest teraz „chętny” (głodny czytania) do klasyfikowania wcześniej niewidzianych obserwacji, stąd nazwa.
Klasyfikator oparty na KNN nie buduje jednak żadnego modelu klasyfikacji. Uczy się bezpośrednio z instancji treningowych (obserwacji). Zaczyna przetwarzać dane dopiero po otrzymaniu obserwacji testowej w celu sklasyfikowania. Zatem KNN należy do kategorii podejść „Leniwy uczeń” .
Na podstawie powyższych fundamentalnych różnic możemy wyciągnąć następujące wnioski:
Ponieważ KNN wykonuje uczenie na miejscu, wymaga częstych przeszukiwania baz danych, dlatego może być kosztownie obliczone. Klasyfikator drzewa decyzyjnego nie wymaga takich wyszukiwań, ponieważ ma gotowy model klasyfikacji w pamięci.
Ponieważ KNN wykonuje uczenie oparte na instancjach, dobrze dostrojony K może modelować złożone przestrzenie decyzyjne o arbitralnie skomplikowanych granicach decyzyjnych, które nie są łatwo modelowane przez innych „chętnych” uczniów, takich jak Drzewa decyzyjne.
„Chętni” uczniowie pracują partiami, modelując jednocześnie jedną grupę obserwacji treningowych. Dlatego nie nadają się do nauki przyrostowej. Ale KNN w naturalny sposób wspiera nauczanie przyrostowe (strumienie danych), ponieważ jest uczniem opartym na instancjach.
Ponadto, klasyfikator KNN podaje poziomy błędów testowych bliższe wskaźnikom klas bayesowskich (złoty standard). Jak podano w ISLR :
źródło
Z uczenia maszynowego Pythona Sebastiana Raschki :
Drzewo decyzyjne może jednak szybko sklasyfikować nowe przykłady. Właśnie przeprowadzasz serię porównań boolowskich.
źródło
Dodałbym, że drzewa decyzyjne mogą być używane zarówno do zadań klasyfikacji, jak i regresji. Z drugiej strony DT przewiduje, że klasa w przyjętej odpowiedzi byłaby bardziej szczegółowa, opisując drzewa klasyfikacji, które technicznie są podtypem ogólnej koncepcji DT. Jedno odniesienie (ignorowanie dolnych warstw omawiających konkretne implementacje):
Stąd: http://www.simafore.com/blog/bid/62482/2-main-differences-between-classification-and-regression-trees
źródło