Regresja logistyczna jest rodzajem modelu regresji, który służy do przewidywania prawdopodobieństwa wystąpienia określonego zdarzenia. Jest szczególnie przydatna w sytuacjach, gdy chcemy przewidzieć, czy dana osoba należy do określonej kategorii (np. czy klient kupi dany produkt, czy pacjent zachoruje na dane schorzenie).
W przeciwieństwie do tradycyjnej regresji liniowej, regresja logistyczna zakłada, że zmienna objaśniana (zwana też zmienną odpowiedzi) jest binarna (ma wartość 0 lub 1). W takim przypadku model regresji logistycznej można przedstawić w postaci równania:
p = 1 / (1 + exp(-b0 - b1 * X1 - b2 * X2 - ... - bn * Xn))
gdzie:
p
to przewidywane prawdopodobieństwo wystąpienia zdarzenia (odpowiednio 0 lub 1)X1, X2, ..., Xn
to zmienne objaśniająceb0, b1, ..., bn
to współczynniki regresji, które są ustalane podczas trenowania modelu
Podobnie jak w przypadku regresji liniowej, celem trenowania modelu regresji logistycznej jest znalezienie takich wartości współczynników b0, b1, ..., bn
, by równanie to jak najlepiej opisywało dane treningowe. Można to osiągnąć na przykład za pomocą metody gradientu prostego.
from sklearn.linear_model import LogisticRegression
# Przygotowanie danych - załóżmy, że mamy zbiór treningowy zawierający cechy oraz etykiety (0 lub 1)
X = [[1], [2], [3], [4]] # cechy
y = [0, 0, 1, 1] # etykiety
# Utworzenie modelu regresji logistycznej
reg = LogisticRegression().fit(X, y)
# Współczynniki regresji:
print(reg.intercept_) # b0 - wyraz wolny
print(reg.coef_) # b1 - współczynnik przy X
# Wynik:
# b0 = -1.5
# b1 = 1
# Równanie regresji to p = 1 / (1 + exp(-1.5 - 1 * X))
W powyższym przykładzie model regresji logistycznej został trenowany za pomocą metody gradientu prostego, która szuka takich wartości współczynników b0
i b1
, by logarytm prawdopodobieństwa (log-odds) był liniowo zależny od cech. W tym przypadku model znalazł następujące wartości współczynników:
b0
= -1.5b1
= 1
Dzięki temu równanie regresji, które najlepiej opisuje dane treningowe, brzmi p = 1 / (1 + exp(-1.5 - 1 * X))
. Teraz model jest gotowy do przewidywania prawdopodobieństwa wystąpienia zdarzenia (odpowiednio 0 lub 1) dla nowych danych.