Zbudowałem klasyfikator regresji logistycznej, który jest bardzo dokładny na moich danych. Teraz chcę lepiej zrozumieć, dlaczego tak dobrze działa. W szczególności chciałbym uszeregować, które funkcje mają największy udział (które cechy są najważniejsze) i, najlepiej, obliczyć, ile każda cecha przyczynia się do dokładności całego modelu (lub czegoś w tym stylu). Jak mam to zrobic?
Moją pierwszą myślą było uszeregowanie ich na podstawie ich współczynnika, ale podejrzewam, że to nie może być prawda. Jeśli mam dwie funkcje, które są równie przydatne, ale rozkład pierwszego jest dziesięć razy większy niż drugi, to spodziewałbym się, że pierwszy otrzyma niższy współczynnik niż drugi. Czy istnieje bardziej rozsądny sposób oceny ważności funkcji?
Zauważ, że nie próbuję zrozumieć, jak mała zmiana w funkcji wpływa na prawdopodobieństwo wyniku. Staram się raczej zrozumieć, jak cenna jest każda funkcja, jeśli chodzi o dokładność klasyfikatora. Poza tym moim celem jest nie tyle wybranie funkcji, albo skonstruowanie modelu z mniejszą liczbą funkcji, ale próba zapewnienia „wyjaśnienia” wyuczonego modelu, aby klasyfikator nie był tylko nieprzejrzystą czarną skrzynką.
Odpowiedzi:
Pierwszą rzeczą do odnotowania jest to, że nie używasz regresji logistycznej jako klasyfikatora. Fakt, że jest binarny, nie ma absolutnie nic wspólnego z użyciem tej metody największego prawdopodobieństwa do faktycznej klasyfikacji obserwacji. Kiedy to miniesz, skoncentruj się na złotym standardzie informacji, który jest produktem ubocznym o maksymalnym prawdopodobieństwie: statystyce ilorazu prawdopodobieństwa . Możesz stworzyć wykres pokazujący częściowy wkład każdego predyktora pod względem jego częściowegoY χ2 χ2 Statystyczny. Te statystyki mają maksymalną informację / moc. Możesz użyć bootstrap, aby pokazać, jak trudno jest wybrać „zwycięzców” i „przegranych”, uzyskując przedziały ufności w szeregach informacji predykcyjnych dostarczanych przez każdy predyktor po uwzględnieniu innych predyktorów. Przykład znajduje się w sekcji 5.4 moich notatek z kursu - ponownie kliknij Materiały, a następnie Materiały ponownie.
Jeśli masz wysoce skorelowane funkcje, możesz wykonać „test fragmentu”, aby połączyć ich wpływ. Wykres, który to robi, jest przedstawiony na rysunku 15.11, gdzie
size
przedstawia łączny udział 4 oddzielnych predyktorów.źródło
Krótka odpowiedź jest taka, że nie ma jednego „właściwego” sposobu na udzielenie odpowiedzi na to pytanie.
Aby zapoznać się z najlepszym przeglądem zagadnień, zobacz artykuły Ulrike Groemping, np. Estimators of Relative Sensance in Linear Regression Based on Decarianition Decomposition . Opcje, które omawia, obejmują zarówno proste heurystyki, jak i zaawansowane rozwiązania wielowymiarowe wymagające dużej mocy obliczeniowej.
http://prof.beuth-hochschule.de/fileadmin/prof/groemp/downloads/amstat07mayp139.pdf
Groemping proponuje własne podejście w pakiecie R o nazwie RELAIMPO, które również warto przeczytać.
https://cran.r-project.org/web/packages/relaimpo/relaimpo.pdf
Jedną szybką i nieprzyzwoitą heurystyką, której użyłem, jest zsumowanie kwadratów chi (wartości F, statystyki t) powiązanych z każdym parametrem, a następnie ponowne zredagowanie poszczególnych wartości tą sumą. Wynik byłby miarą względnego znaczenia możliwego do oszacowania.
To powiedziawszy, nigdy nie byłem fanem „standardowych współczynników beta”, chociaż są one często zalecane przez profesję i szeroko stosowane. Oto problem z nimi: standaryzacja jest jednoznaczna i zewnętrzna w stosunku do rozwiązania modelowego. Innymi słowy, to podejście nie odzwierciedla warunkowej natury wyników modelu.
źródło
Dość solidnym sposobem na zrobienie tego byłoby spróbowanie dopasowania modelu N razy, gdzie N jest liczbą funkcji. Za każdym razem używaj N-1 funkcji i pomiń jedną z nich. Następnie możesz użyć swojej ulubionej miary sprawdzania poprawności, aby zmierzyć, w jakim stopniu włączenie lub wyłączenie każdej funkcji wpływa na wydajność modelu. W zależności od liczby posiadanych funkcji może to być kosztowne obliczeniowo.
źródło
Jeśli chodzi o twój ostatni punkt, to oczywiście możliwe, że zmienna może znacznie przyczynić się do oszacowania prawdopodobieństwa logarytmu, nie wpływając w rzeczywistości na „prawdziwy” logarytm, ale nie sądzę, żeby to musiało być zbyt dużym problemem, jeśli mieć zaufanie do procedury, która doprowadziła do oszacowań.
źródło
Masz rację, dlaczego nie powinieneś używać współczynników jako miernika trafności, ale absolutnie możesz, jeśli podzielisz je przez ich standardowy błąd! Jeśli oszacowałeś model za pomocą R, jest to już zrobione dla Ciebie! Możesz nawet usunąć najmniej ważne funkcje z modelu i zobaczyć, jak to działa.
Bardziej heurystyczne podejście do badania, w jaki sposób różne zmiany zmiennych wpływają na wynik, robi dokładnie to: wypróbuj różne dane wejściowe i zbadaj ich szacunkowe prawdopodobieństwo. Ponieważ jednak twój model jest dość prosty, uzgadniałbym się z tym
źródło