Odpowiedzi:
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:
Szanse w dzienniku wynoszą zatem:
Podobnie jak w regresji liniowej, modelujemy to za pomocą liniowej kombinacji współczynników i predyktorów:
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:
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.
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:
y = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e
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
ln(y/(1 + y))
Formą regresji logistycznej jest zatem:
ln(y/(1 + y)) = b_0 + b_1 * x_1 + b_2 * x_2 + ... b_n * x_n + e
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.
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.