Przewidywane klasy z (binarnej) regresji logistycznej są określane przy użyciu progu prawdopodobieństwa członkostwa w klasie generowanego przez model. Jak rozumiem, domyślnie używa się zwykle 0,5.
Ale zmiana progu zmieni przewidywane klasyfikacje. Czy to oznacza, że próg jest hiperparametrem? Jeśli tak, dlaczego (na przykład) nie jest możliwe łatwe przeszukiwanie siatki progów za pomocą metody scikit-learn GridSearchCV
(tak jak w przypadku parametru regularyzacji C
).
Odpowiedzi:
Próg decyzyjny tworzy kompromis między liczbą przewidywanych pozytywnych wyników a liczbą negatywnych prognoz, ponieważ - tautologicznie, zwiększenie progu decyzyjnego zmniejszy przewidywaną liczbę pozytywnych i zwiększy liczbę negatywnych przewidujesz
Próg decyzyjny nie jest hiperparametrem w sensie strojenia modelu, ponieważ nie zmienia elastyczności modelu.
Sposób, w jaki myślisz o słowie „strojenie” w kontekście progu decyzyjnego, różni się od tego, jak dostrojone są hiperparametry. Zmiana hiperparametrówdo i innych modeli zmienia model(np. współczynniki regresji logistycznej będą różne), podczas gdy dostosowanie progu może zrobić tylko dwie rzeczy: wymienić TP na FN i FP na TN. Jednak model pozostaje taki sam, ponieważ nie zmienia to współczynników. (To samo dotyczy modeli, które nie mają współczynników, takich jak losowe lasy: zmiana progu nic nie zmienia w drzewach.) W wąskim znaczeniu masz rację, że znalezienie najlepszego kompromisu między błędami jest „dostrajanie”, ale mylisz się, sądząc, że zmiana progu jest powiązana z hiperparametrami innych modeli w sposób zoptymalizowany przez
GridSearchCV
.Innymi słowy, zmiana progu decyzyjnego odzwierciedla z twojej strony wybór liczby fałszywych pozytywów i fałszywych negatywów, które chcesz mieć. Rozważ hipotetyczne, że ustawiłeś próg decyzyjny na całkowicie niewiarygodną wartość, taką jak -1. Wszystkie prawdopodobieństwa są nieujemne, więc przy tym progu przewidzisz „dodatni” dla każdej obserwacji. Z pewnego punktu widzenia jest to świetne, ponieważ twoja fałszywa ujemna stopa wynosi 0,0. Jednak współczynnik fałszywie dodatnich wyników jest również ekstremalny na poziomie 1,0, więc w tym sensie wybór progu na -1 jest okropny.
Idealnym rozwiązaniem jest oczywiście TPR 1,0 i FPR 0,0 i FNR 0,0. Ale zwykle nie jest to możliwe w aplikacjach rzeczywistych, więc pytanie brzmi: „ile FPR jestem gotów zaakceptować za ile TPR?”. I to jest motywacja ROC krzywych.
źródło
GridSearchCV
Tak, to trochę. Jest to hiperparametr twojej reguły decyzyjnej , ale nie regresja leżąca u jej podstaw.
Jest to błąd projektowy w sklearn. Najlepszą praktyką w przypadku większości scenariuszy klasyfikacji jest dopasowanie modelu bazowego (który przewiduje prawdopodobieństwa) przy użyciu pewnej miary jakości tych prawdopodobieństw (np. Utraty logarytmicznej w regresji logistycznej). Następnie należy dostosować próg decyzyjny dotyczący tych prawdopodobieństw, aby zoptymalizować niektóre cele biznesowe reguły klasyfikacji. Biblioteka powinna ułatwiać optymalizację progu decyzyjnego w oparciu o pewną miarę jakości, ale nie sądzę, że robi to dobrze.
Myślę, że to jedno z miejsc, w których sklearn źle to zrozumiał. Biblioteka zawiera metodę
predict
dla wszystkich modeli klasyfikacyjnych, dla której ustalono progi0.5
. Ta metoda jest bezużyteczna i zdecydowanie opowiadam się za tym, aby nigdy jej nie wywoływać. Szkoda, że sklearn nie zachęca do lepszego przepływu pracy.źródło
predict
domyślnego wyboru metody 0,5 jako granicy, aleGridSearchCV
akceptujęscorer
obiekty, które mogą dostroić modele w odniesieniu do utraty entropii poza próbą. Czy brakuje mi twojego punktu?