Próbuję zrozumieć, jak w pełni zrozumieć proces decyzyjny modelu klasyfikacji drzewa decyzyjnego zbudowanego za pomocą sklearn. Dwa główne aspekty, na które patrzę, to reprezentacja drzewa grafviz oraz lista ważniejszych cech. To, czego nie rozumiem, to sposób, w jaki znaczenie funkcji jest określane w kontekście drzewa. Na przykład, oto moja lista ważności funkcji:
Ranking funkcji: 1. FeatureA (0.300237)
Cecha B (0,166800)
Cecha C (0,092472)
FeatureD (0,075009)
Cecha E (0,068310)
Cecha F (0,067118)
Cecha G (0,066510)
Cecha H (0,043502)
Cecha I (0,040281)
Cecha J (0,039006)
FeatureK (0,032618)
Cecha L (0,008136)
Cecha M (0,000000)
Jednak gdy patrzę na szczyt drzewa, wygląda to tak:
W rzeczywistości niektóre funkcje, które są klasyfikowane jako „najważniejsze”, pojawiają się dopiero w dalszej części drzewa, a górną częścią drzewa jest FeatureJ, który jest jedną z najniżej ocenianych funkcji. Moim naiwnym założeniem byłoby, że najważniejsze cechy zostałyby umieszczone w pobliżu szczytu drzewa, aby mieć największy wpływ. Jeśli jest to niepoprawne, to co powoduje, że funkcja jest „ważna”?
źródło
Odpowiedzi:
Nie jest konieczne, aby im ważniejsza była cecha, tym wyższy jest jej węzeł w drzewie decyzyjnym.
Jest tak po prostu dlatego, że w każdym z tych dwóch przypadków (podział vs ważność) można zastosować różne kryteria (np. Gini Impurity, Entropy-Information Gain, MSE itp.).
Na przykład,
SkLearn
możesz zdecydować się na podział węzłów w drzewie decyzyjnym zgodnie z kryterium Entropy-Information Gain (zobaczcriterion
i'entropy'
atSkLearn
), podczas gdy ważność funkcji jest określona przez Gini Ważność, która jest średnim spadkiem Gini zanieczyszczeń dla danej zmiennej we wszystkich drzew lasu losowego (patrzfeature_importances_
naSkLearn
i tutaj ).Jeśli mam rację,
SkLearn
to samo ma zastosowanie, nawet jeśli zdecydujesz się na podział węzłów w drzewie decyzyjnym zgodnie z kryterium zanieczyszczenia Gini, podczas gdy ważność funkcji jest podana przez Gini Ważność, ponieważ Gini Zanieczyszczenie i Gini Ważność nie są identyczne (zobacz także to i to na Stackoverflow o ważności Gini).źródło
W scikit-learn istotną cechą jest zmniejszenie zanieczyszczenia węzłów. Kluczem jest to, że mierzy ważność tylko na poziomie węzła. Następnie wszystkie węzły są ważone przez liczbę próbek docierających do tego węzła.
Tak więc, jeśli tylko kilka próbek znajdzie się w lewym węźle po pierwszym podziale, może to nie oznaczać, że J jest najważniejszą cechą, ponieważ wzmocnienie w lewym węźle może wpływać tylko na bardzo niewiele próbek. Jeśli dodatkowo wydrukujesz liczbę próbek w każdym węźle, możesz uzyskać lepszy obraz tego, co się dzieje.
źródło
To, że węzeł znajduje się niżej na drzewie, niekoniecznie oznacza, że jest mniej ważne. Znaczenie funkcji w sci-kitlearn jest obliczane na podstawie tego, jak czysto węzeł oddziela klasy (indeks Gini). Zauważysz nawet w przyciętym drzewie, że A jest podzielony trzy razy w porównaniu do J raz, a wyniki entropii (podobna miara czystości jak Gini) są nieco wyższe w węzłach A niż J.
Jeśli jednak mógłbyś wybrać tylko jeden węzeł, wybrałbyś J, ponieważ dałoby to najlepsze prognozy. Ale gdybyś miał opcję, aby wiele węzłów podejmowało kilka różnych decyzji, A byłby najlepszym wyborem.
źródło
Istotność zmiennej mierzy się przez zmniejszenie dokładności modelu, gdy zmienna jest usuwana. Nowe drzewo decyzyjne utworzone za pomocą nowego modelu bez zmiennej może wyglądać zupełnie inaczej niż oryginalne drzewo. Decyzja o podziale na diagramie jest podejmowana przy uwzględnieniu wszystkich zmiennych w modelu.
Jaką zmienną do podziału w katalogu głównym (i innych węzłach) mierzy się przez zanieczyszczenie. Dobra czystość (np .: wszystko w lewej gałęzi ma tę samą wartość docelową) nie gwarantuje dobrej dokładności. Twoje dane mogą być wypaczone, twoja prawa gałąź ma więcej odpowiedzi niż lewa gałąź. Dlatego nie jest dobrze po prostu poprawnie sklasyfikować lewą gałąź, musimy również wziąć pod uwagę prawą gałąź. Dlatego zmienna dzieląca może, ale nie musi, być ważną zmienną dla ogólnej dokładności modelu.
Zmienne znaczenie jest lepszym miernikiem wyboru zmiennych.
źródło