La regressione logistica è un modello per la classificazione binaria. Combina le caratteristiche di input in un punteggio lineare, fa passare quel punteggio attraverso la funzione sigmoide e produce un numero tra 00 e 11 che viene interpretato, nel modello adattato, come la probabilità stimata della classe positiva.

Nonostante il nome, la regressione logistica si usa di solito per decidere tra due classi, come promosso/bocciato, spam/non spam oppure insolvenza/non insolvenza. La parola "regressione" si riferisce alla formula lineare all’interno del modello, non alla previsione di un’uscita continua.

Formula della regressione logistica in sintesi

La regressione logistica binaria usa

p(y=1x)=σ(z),z=β0+β1x1++βnxnp(y=1 \mid x) = \sigma(z), \qquad z = \beta_0 + \beta_1 x_1 + \cdots + \beta_n x_n

con la funzione sigmoide

σ(z)=11+ez\sigma(z) = \frac{1}{1 + e^{-z}}

La parte lineare zz può essere qualsiasi numero reale. La sigmoide comprime quel valore nell’intervallo (0,1)(0,1), ed è per questo che l’output può essere usato come stima di probabilità.

Perché la funzione sigmoide è importante

Se usassi il punteggio lineare grezzo zz come probabilità, potresti ottenere valori impossibili come 1.71.7 o 0.4-0.4. La sigmoide risolve il problema mappando punteggi molto negativi vicino a 00, punteggi molto positivi vicino a 11 e punteggi vicini a 00 vicino a 0.50.5.

Questo dà un’interpretazione pratica:

  • se zz è molto negativo, il modello propende per la classe 00
  • se zz è vicino a 00, il modello è incerto
  • se zz è molto positivo, il modello propende per la classe 11

La curva è più ripida vicino a z=0z=0. Quindi una piccola variazione del punteggio può cambiare molto la probabilità vicino a 0.50.5, ma molto meno quando la probabilità è già vicina a 00 o 11.

Esempio svolto di regressione logistica

Supponiamo che un modello usi una sola caratteristica xx e abbia

z=7+0.1xz = -7 + 0.1x

Puoi pensare a xx come a un punteggio in un test e a y=1y=1 come "promosso". I coefficienti qui sono solo un esempio per mostrare il meccanismo.

Se x=65x = 65, allora

z=7+0.1(65)=0.5z = -7 + 0.1(65) = -0.5

Quindi la probabilità prevista è

p(y=1x=65)=σ(0.5)=11+e0.50.378p(y=1 \mid x=65) = \sigma(-0.5) = \frac{1}{1 + e^{0.5}} \approx 0.378

Se x=80x = 80, allora

z=7+0.1(80)=1z = -7 + 0.1(80) = 1

e

p(y=1x=80)=σ(1)=11+e10.731p(y=1 \mid x=80) = \sigma(1) = \frac{1}{1 + e^{-1}} \approx 0.731

Quindi lo stesso modello dà circa il 37.8%37.8\% di probabilità di essere promosso per x=65x=65 e circa il 73.1%73.1\% per x=80x=80. Il punteggio è aumentato di 1.51.5, ma l’output finale è rimasto tra 00 e 11 perché la sigmoide piega il risultato trasformandolo in una probabilità.

Se ora scegli una soglia di 0.50.5, il primo caso viene classificato come classe 00 e il secondo come classe 11. Quest’ultimo passaggio dipende dalla soglia. La stima di probabilità in sé no.

Una scorciatoia utile: con una soglia di 0.50.5, la classe cambia esattamente quando z=0z=0, perché σ(0)=0.5\sigma(0)=0.5.

Come la regressione logistica diventa un classificatore

L’output del modello è una stima di probabilità. La regola di classificazione viene aggiunta dopo.

Per esempio, con soglia 0.50.5:

  • prevedi la classe 11 se p(y=1x)0.5p(y=1 \mid x) \ge 0.5
  • prevedi la classe 00 se p(y=1x)<0.5p(y=1 \mid x) < 0.5

Ma 0.50.5 non è sempre la soglia giusta. Se i falsi positivi e i falsi negativi hanno costi diversi, oppure se le classi sono molto sbilanciate, un’altra soglia può funzionare meglio.

Cosa significano i coefficienti

Il segno di un coefficiente ti dice la direzione dell’effetto sul punteggio lineare zz:

  • se βi>0\beta_i > 0, aumentare xix_i fa crescere zz e tende ad aumentare p(y=1x)p(y=1 \mid x)
  • se βi<0\beta_i < 0, aumentare xix_i fa diminuire zz e tende a ridurre p(y=1x)p(y=1 \mid x)

Questa parte è semplice. Il punto più sottile è che la probabilità non cambia in modo lineare con la caratteristica, perché la curva sigmoide non è una retta.

Nella regressione logistica standard, il modello lineare è sulla scala dei log-odds:

log(p1p)=β0+β1x1++βnxn\log\left(\frac{p}{1-p}\right) = \beta_0 + \beta_1 x_1 + \cdots + \beta_n x_n

Questo significa che ogni aumento di una unità in una caratteristica modifica i log-odds in modo lineare, mantenendo fisse le altre caratteristiche. È più preciso che dire che cambia la probabilità di una quantità fissa.

Errori comuni nella regressione logistica

Trattare l’output come una classe garantita

Una previsione come 0.730.73 non significa che l’evento accadrà sicuramente. Significa che il modello assegna a quell’input una probabilità stimata di circa il 73%73\% per la classe positiva.

Supporre che la soglia debba essere 0.50.5

0.50.5 è comune, ma è una scelta, non una legge. La soglia migliore dipende dall’applicazione.

Pensare che la probabilità cambi linearmente

Il punteggio zz è lineare negli input, ma la probabilità no. Una variazione di una unità in una caratteristica può avere un effetto diverso vicino a p=0.5p=0.5 rispetto a vicino a p=0.95p=0.95.

Dimenticare che il modello è binario, a meno di estensioni

La regressione logistica di base gestisce due classi. Esistono versioni multiclasse, ma sono estensioni, non la stessa configurazione binaria scritta in un altro modo.

Quando si usa la regressione logistica

La regressione logistica si usa spesso quando il target è sì/no, come nel rilevamento dello spam, nella presenza di una malattia, nel churn dei clienti, nell’insolvenza di un prestito o negli esiti promosso/bocciato.

Rimane popolare perché è semplice, veloce e abbastanza interpretabile. È particolarmente utile quando vuoi un classificatore di base, quando il dataset non è enorme oppure quando ti servono probabilità stimate invece di sole etichette rigide.

Un modo semplice per visualizzarla

Pensa alla regressione logistica come a una macchina in due passaggi:

  1. Somma le evidenze con un punteggio lineare.
  2. Trasforma quel punteggio in una probabilità con la sigmoide.

Questa immagine basta per capire la maggior parte degli esempi introduttivi e per vedere perché la regressione logistica si colloca tra i modelli lineari e i problemi di classificazione.

Prova un problema simile di regressione logistica

Scegli un punteggio semplice come

z=3+0.5xz = -3 + 0.5x

Calcola σ(z)\sigma(z) per alcuni valori di xx, come 22, 66 e 1010. Osserva come il punteggio lineare cambi in modo regolare mentre la probabilità si incurva seguendo una curva a S. Poi prova una soglia diversa e vedi quando cambia la classe prevista.

Hai bisogno di aiuto con un problema?

Carica la tua domanda e ottieni una soluzione verificata, passo dopo passo, in pochi secondi.

Apri GPAI Solver →