Regresja logistyczna to przede wszystkim regresja. Staje się klasyfikatorem poprzez dodanie reguły decyzyjnej. Podam przykład, który sięga wstecz. Oznacza to, że zamiast brać dane i dopasowywać model, zacznę od modelu, aby pokazać, jak to naprawdę jest problem regresji.
W regresji logistycznej modelujemy iloraz szans lub logit, że wystąpi zdarzenie, które jest ciągłą wielkością. Jeżeli prawdopodobieństwo wystąpienia zdarzenia wynosi , szanse są następujące:ZAP.( A )
P.( A )1 - P( A )
Szanse w dzienniku wynoszą zatem:
log( P( A )1 - P( A ))
Podobnie jak w regresji liniowej, modelujemy to za pomocą liniowej kombinacji współczynników i predyktorów:
logit = b0+ b1x1+ b2)x2)+ ⋯
Wyobraź sobie, że otrzymujemy model tego, czy dana osoba ma siwe włosy. Nasz model używa wieku jako jedynego predyktora. Tutaj nasze wydarzenie A = osoba ma siwe włosy:
dzienne szanse na siwe włosy = -10 + 0,25 * wiek
...Regresja! Oto trochę kodu Python i wykres:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns
x = np.linspace(0, 100, 100)
def log_odds(x):
return -10 + .25 * x
plt.plot(x, log_odds(x))
plt.xlabel("age")
plt.ylabel("log odds of gray hair")
Teraz zróbmy z niego klasyfikator. Najpierw musimy przekształcić logarytmiczne szanse, aby uzyskać nasze prawdopodobieństwo . Możemy użyć funkcji sigmoidalnej:P.( A )
P.( A ) = 11 + exp( - kursy zalogować ) )
Oto kod:
plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")
Ostatnią rzeczą, którą musimy uczynić z tego klasyfikatora, jest dodanie reguły decyzyjnej. Jedną z bardzo powszechnych zasad jest klasyfikowanie sukcesu za każdym razem, gdy . Przyjmiemy tę zasadę, co oznacza, że nasz klasyfikator będzie przewidywał siwe włosy za każdym razem, gdy dana osoba ma więcej niż 40 lat, i będzie przewidywać włosy siwe, gdy dana osoba ma mniej niż 40 lat.P.( A ) > 0,5
Regresja logistyczna działa również świetnie jako klasyfikator w bardziej realistycznych przykładach, ale zanim będzie klasyfikatorem, musi być techniką regresji!
Krótka odpowiedź
Tak, regresja logistyczna jest algorytmem regresji i przewiduje ciągły wynik: prawdopodobieństwo zdarzenia. To, że używamy go jako binarnego klasyfikatora, wynika z interpretacji wyniku.
Szczegół
Regresja logistyczna jest rodzajem uogólnionego modelu regresji liniowej.
W zwykłym modelu regresji liniowej wynik ciągły
y
jest modelowany jako suma iloczynu predyktorów i ich efektu:gdzie
e
jest błąd.Uogólnione modele liniowe nie modelują
y
bezpośrednio. Zamiast tego używają transformacji, aby rozszerzyć domenęy
na wszystkie liczby rzeczywiste. Ta transformacja nazywa się funkcją link. W przypadku regresji logistycznej funkcją łącza jest funkcja logit (zazwyczaj patrz uwaga poniżej).Funkcja logowania jest zdefiniowana jako
Formą regresji logistycznej jest zatem:
gdzie
y
jest prawdopodobieństwo zdarzenia.Fakt, że używamy go jako binarnego klasyfikatora, wynika z interpretacji wyniku.
Uwaga: probit to kolejna funkcja łącza używana do regresji logistycznej, ale najczęściej używana jest logit.
źródło
W trakcie dyskusji definicja regresji przewiduje zmienną ciągłą. Regresja logistyczna jest klasyfikatorem binarnym. Regresja logistyczna to zastosowanie funkcji logit na wyjściu zwykłego podejścia regresyjnego. Funkcja Logit zmienia się (-inf, + inf) na [0,1]. Myślę, że to właśnie z powodów historycznych zachowało to imię.
Mówiąc coś w stylu „Zrobiłem regresję, aby sklasyfikować obrazy. W szczególności użyłem regresji logistycznej”. jest źle.
źródło
źródło