La regressione logistica è innanzitutto la regressione. Diventa un classificatore aggiungendo una regola decisionale. Farò un esempio che va indietro. Cioè, invece di prendere dati e adattare un modello, inizierò con il modello per mostrare come questo sia veramente un problema di regressione.
Nella regressione logistica, stiamo modellando le probabilità del log, o logit, che si verifichi un evento, che è una quantità continua. Se la probabilità che si verifichi l' evento è P ( A ) , le probabilità sono:UNP( A )
P( A )1 - P( A )
Le probabilità del registro, quindi, sono:
log( P( A )1 - P( A ))
Come nella regressione lineare, modelliamo questo con una combinazione lineare di coefficienti e predittori:
logit = b0+ b1X1+ b2X2+ ⋯
Immagina di avere un modello per stabilire se una persona ha i capelli grigi. Il nostro modello utilizza l'età come unico predittore. Ecco, il nostro evento A = una persona ha i capelli grigi:
probabilità di registro di capelli grigi = -10 + 0,25 * età
...Regressione! Ecco un po 'di codice Python e una trama:
%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")
P( A ) . Possiamo usare la funzione sigmoid:
P( A ) = 11 + exp( - probabilità di registro ) )
Ecco il codice:
plt.plot(x, 1 / (1 + np.exp(-log_odds(x))))
plt.xlabel("age")
plt.ylabel("probability of gray hair")
P( A ) > 0,5
La regressione logistica funziona alla grande come classificatore anche in esempi più realistici, ma prima che possa essere un classificatore, deve essere una tecnica di regressione!