Pre-requisite: Regresja liniowa
W tym artykule omówiono podstawy regresji logistycznej i jej implementację w Pythonie. Regresja logistyczna jest w zasadzie nadzorowanym algorytmem klasyfikacyjnym. W problemie klasyfikacji, zmienna docelowa (lub wyjście), y, może przyjmować tylko wartości dyskretne dla danego zestawu cech (lub wejść), X.
Wbrew powszechnemu przekonaniu, regresja logistyczna JEST modelem regresji. Model ten buduje model regresji, aby przewidzieć prawdopodobieństwo, że dany wpis danych należy do kategorii oznaczonej numerem „1”. Podobnie jak regresja liniowa zakłada, że dane podążają za funkcją liniową, regresja logistyczna modeluje dane za pomocą funkcji sigmoidalnej.
Regresja logistyczna staje się techniką klasyfikacji tylko wtedy, gdy do obrazu wprowadzony zostaje próg decyzyjny. Ustawienie wartości progowej jest bardzo ważnym aspektem regresji logistycznej i zależy od samego problemu klasyfikacji.
Na decyzję o wartości progu decyzyjnego duży wpływ mają wartości precyzji i recall. W idealnym przypadku chcielibyśmy, aby zarówno precyzja jak i przywołanie wynosiły 1, ale rzadko tak się dzieje. W przypadku kompromisu Precyzja-Recall używamy następujących argumentów, aby zdecydować o wartości progowej:-
1. Low Precision/High Recall: W aplikacjach, w których chcemy zmniejszyć liczbę fałszywych negatywów bez konieczności zmniejszania liczby fałszywych pozytywów, wybieramy wartość decyzyjną, która ma niską wartość Precision lub wysoką wartość Recall. Na przykład, w aplikacji diagnozowania raka, nie chcemy, aby jakikolwiek dotknięty pacjent został sklasyfikowany jako nie dotknięty, bez zwracania uwagi na to, czy u pacjenta błędnie zdiagnozowano raka. Dzieje się tak dlatego, że brak raka może być wykryty przez kolejne choroby medyczne, ale obecność choroby nie może być wykryta u już odrzuconego kandydata.
2. High Precision/Low Recall: W zastosowaniach, w których chcemy zmniejszyć liczbę fałszywych pozytywów bez konieczności zmniejszania liczby fałszywych negatywów, wybieramy wartość decyzyjną, która ma wysoką wartość Precision lub niską wartość Recall. Na przykład, jeśli klasyfikujemy klientów, czy zareagują pozytywnie lub negatywnie na spersonalizowaną reklamę, chcemy mieć absolutną pewność, że klient zareaguje pozytywnie na reklamę, ponieważ w przeciwnym razie negatywna reakcja może spowodować utratę potencjalnej sprzedaży od klienta.
W oparciu o liczbę kategorii, regresja logistyczna może być sklasyfikowana jako:
- binomial: zmienna docelowa może mieć tylko 2 możliwe typy: „0” lub „1”, które mogą reprezentować „wygrana” vs „przegrana”, „zaliczenie” vs „porażka”, „martwy” vs „żywy”, itp.
- wielomianowa: zmienna docelowa może mieć 3 lub więcej możliwych typów, które nie są uporządkowane (tj. typy nie mają znaczenia ilościowego), jak „choroba A” vs „choroba B” vs „choroba C”.
- porządkowa: zajmuje się zmiennymi docelowymi z uporządkowanymi kategoriami. Na przykład, wynik testu może być skategoryzowany jako: „bardzo słaby”, „słaby”, „dobry”, „bardzo dobry”. Tutaj każdej kategorii można przypisać wynik taki jak 0, 1, 2, 3.
Początkowo zbadamy najprostszą formę regresji logistycznej, tj. dwumianową regresję logistyczną.
Dwumianowa regresja logistyczna
Rozważmy przykładowy zbiór danych, który odwzorowuje liczbę godzin nauki z wynikiem egzaminu. Wynik może przyjmować tylko dwie wartości, czyli zdany(1) lub niezdany(0):
Godziny(x) | 0.50 | 0.75 | 1.00 | 1.25 | 1.50 | 1.75 | 2.00 | 2.25 | 2.50 | 2.75 | 3.00 | 3.25 | 3.50 | 3.75 | 4.00 | 4.25 | 4.50 | 4.75 | 5.00 | 5.50 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Pass(y) | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
So, mamy
i.e. y jest kategoryczną zmienną docelową, która może przyjąć tylko dwa możliwe typy: „0” lub „1”.
Aby uogólnić nasz model, zakładamy, że:
- Zbiór danych ma „p” zmiennych cech i „n” obserwacji.
- Macierz cech jest reprezentowana jako:
Tutaj, oznacza wartości cech dla obserwacji.
Tutaj, zachowujemy konwencję pozwalając = 1. (Czytaj dalej, zrozumiesz logikę za kilka chwil). - Obserwacja, , może być reprezentowana jako:
- reprezentuje przewidywaną odpowiedź dla obserwacji, tj . Wzór, którego używamy do obliczania nazywa się hipoteza.
Jeśli przeszedłeś przez Regresja liniowa, powinieneś pamiętać, że w Regresja liniowa, hipoteza użyliśmy do przewidywania był:
gdzie, są współczynniki regresji.
Let regression coefficient matrix/vector, be:
Then, in a more compact form,
The reason for taking = 1 is pretty clear now.
We needed to do a matrix product, but there was no
actual multiplied to in original hypothesis formula. Tak więc, zdefiniowaliśmy = 1.
Teraz, jeśli spróbujemy zastosować Regresję Liniową na powyższym problemie, prawdopodobnie otrzymamy wartości ciągłe używając hipotezy, którą omówiliśmy powyżej. Ponadto, nie ma sensu, aby wziąć wartości większe niż 1 lub mniejsze niż 0.
Więc, niektóre modyfikacje są wykonane do hipotezy do klasyfikacji:
gdzie,
jest nazywany logistycznej funkcji lub sigmoid funkcji.
Tutaj jest wykres przedstawiający g(z):
Z powyższego wykresu możemy wywnioskować, że:
- g(z) ma tendencję do 1 jak
- g(z) ma tendencję do 0 jak
- g(z) jest zawsze ograniczone między 0 i 1
Więc, teraz, możemy zdefiniować prawdopodobieństwa warunkowe dla 2 etykiet(0 i 1) dla obserwacji jako:
Możemy to zapisać bardziej zwięźle jako:
Teraz definiujemy kolejny termin, prawdopodobieństwo parametrów jako:
Likelihood to nic innego jak prawdopodobieństwo danych(przykładów treningowych), biorąc pod uwagę model i określone wartości parametrów(tutaj, ). Otrzymujemy je mnożąc wszystkie wartości parametrów dla danego modelu i przykładów treningowych. Dla ułatwienia obliczeń przyjmujemy prawdopodobieństwo logarytmiczne:
Funkcja kosztu regresji logistycznej jest proporcjonalna do odwrotności prawdopodobieństwa parametrów. Stąd możemy otrzymać wyrażenie dla funkcji kosztu, J używając równania log likelihood jako:
i naszym celem jest oszacowanie tak, aby funkcja kosztu była zminimalizowana !!Usługując algorytm zejścia gradientowego
Po pierwsze, bierzemy częściowe pochodne w.r.t each to derive the stochastic gradient descent rule (we present only the final derived value here):
Here, y and h(x) represent the response vector and predicted response vector(respectively). Również, jest wektor reprezentujący wartości obserwacji dla feature.
Teraz, aby uzyskać min,
where jest nazywany szybkość uczenia się i musi być ustawiony explicitly.
Zobaczmy python implementację powyższej techniki na przykładowym zbiorze danych (pobierz go stąd):2.25 2.50 2.75 3.00 3.25 3.50 3.75 4.00 4.25 4.50 4.75 5.00 5.50 Uwaga: Zejście gradientowe jest jednym z wielu sposobów szacowania .
Podstawowo są to bardziej zaawansowane algorytmy, które można łatwo uruchomić w Pythonie po zdefiniowaniu funkcji kosztu i gradientów. Algorytmy te to:
- BFGS(Broyden-Fletcher-Goldfarb-Shanno algorithm)
- L-BFGS(Like BFGS but uses limited memory)
- Conjugate Gradient
Wady/wady używania któregokolwiek z tych algorytmów w stosunku do zejścia gradientowego:
- Wady
- Nie musisz wybierać szybkości uczenia
- Często działa szybciej (nie zawsze tak jest)
- Może numerycznie aproksymować gradient dla Ciebie (nie zawsze działa dobrze)
.
- Wady
- Większa złożoność
- Więcej czarnej skrzynki, chyba że nauczysz się specyfiki
Wielomianowa regresja logistyczna
W wielomianowej regresji logistycznej, zmienna wyjściowa może mieć więcej niż dwa możliwe dyskretne wyjścia. Rozważmy zbiór danych cyfr. Tutaj zmienną wyjściową jest wartość cyfry, która może przyjmować wartości z (0, 12, 3, 4, 5, 6, 7, 8, 9).
Poniżej znajduje się implementacja wielomianowej regresji logistycznej przy użyciu scikit-learn do przewidywania na zbiorze danych cyfr.Logistic Regression model accuracy(in %): 95.6884561892
Na koniec, oto kilka punktów na temat regresji logistycznej do rozważenia:
- Nie zakłada liniowej zależności między zmienną zależną a zmiennymi niezależnymi, ale zakłada liniową zależność między logitem zmiennych objaśniających a odpowiedzią.
- Zmiennymi niezależnymi mogą być nawet terminy potęgowe lub jakieś inne nieliniowe transformacje oryginalnych zmiennych niezależnych.
- Zmienna zależna NIE musi być normalnie rozłożona, ale zazwyczaj przyjmuje rozkład z rodziny wykładniczej (np. dwumianowy, Poissona, wielomianowy, normalny,…); binarna regresja logistyczna zakłada dwumianowy rozkład odpowiedzi.
- Jednorodność wariancji NIE musi być spełniona.
- Błędy muszą być niezależne, ale NIE normalnie rozłożone.
- Używa estymacji maksymalnej wiarygodności (MLE) zamiast zwykłej estymacji najmniejszych kwadratów (OLS) do oszacowania parametrów, a zatem opiera się na przybliżeniach dla dużych próbek.
Ten artykuł został napisany przez Nikhila Kumara. Jeśli podoba Ci się GeeksforGeeks i chciałbyś przyczynić się do jego powstania, możesz również napisać artykuł korzystając z adresu contribute.geeksforgeeks.org lub wysłać go pocztą na adres [email protected]. Zobacz, jak twój artykuł pojawia się na stronie głównej GeeksforGeeks i pomóż innym Geekom.