Regressione logistica: calcolare una probabilità con la funzione sigmoidea

Molti problemi richiedono una stima di probabilità come output. La regressione logistica è un meccanismo estremamente efficiente per calcolare le probabilità. In pratica, puoi utilizzare la probabilità restituita in uno dei seguenti due modi:

  • Applicato "così com'è". Ad esempio, se un modello di previsione dello spam prende un'email come input e restituisce un valore di 0.932, ciò implica una probabilità di 93.2% che l'email sia spam.

  • Convertito in una categoria binaria come True o False, Spam o Not Spam.

Questo modulo si concentra sull'utilizzo dell'output del modello di regressione logistica così com'è. Nel modulo Classificazione, imparerai a convertire questo output in una categoria binaria.

Funzione sigmoidea

Ti starai chiedendo come un modello di regressione logistica possa garantire che il suo output rappresenti una probabilità, restituendo sempre un valore compreso tra 0 e 1. Esiste una famiglia di funzioni chiamate funzioni logistiche il cui output ha le stesse caratteristiche. La funzione logistica standard, nota anche come funzione sigmoidea (sigmoid significa "a forma di S"), ha la formula:

\[f(x) = \frac{1}{1 + e^{-x}}\]

dove:

  • f(x) è l'output della funzione sigmoidea.
  • e è il numero di Eulero: una costante matematica ≈ 2,71828.
  • x è l'input della funzione sigmoide.

La Figura 1 mostra il grafico corrispondente della funzione sigmoidea.

Curva sigmoide (a forma di S) tracciata sul piano cartesiano,
         centrata nell'origine.
Figura 1. Grafico della funzione sigmoidea. La curva si avvicina a 0 quando i valori di x diminuiscono fino a infinito negativo e a 1 quando i valori di x aumentano verso infinito.

Man mano che l'input x aumenta, l'output della funzione sigmoidea si avvicina a 1, ma non lo raggiunge mai. Allo stesso modo, man mano che l'input diminuisce, l'output della funzione sigmoidea si avvicina a 0, ma non lo raggiunge mai.

Fai clic qui per un'analisi più approfondita della matematica alla base della funzione sigmoide

La tabella seguente mostra i valori di output della funzione sigmoide per valori di input compresi tra -7 e 7. Nota la rapidità con cui la sigmoide si avvicina a 0 per i valori di input negativi decrescenti e la rapidità con cui si avvicina a 1 per i valori di input positivi crescenti.

Tuttavia, indipendentemente da quanto grande o piccolo sia il valore di input, l'output sarà sempre maggiore di 0 e minore di 1.

Input Output sigmoideo
-7 0,001
-6 0,002
-5 0,007
-4 0,018
-3 0,047
-2 0,119
-1 0,269
0 0,50
1 0.731
2 0,881
3 0,952
4 0,982
5 0,993
6 0,997
7 0,999

Trasformazione dell'output lineare utilizzando la funzione sigmoidea

La seguente equazione rappresenta la componente lineare di un modello di regressione logistica:

\[z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N\]

dove:

  • z è l'output dell'equazione lineare, chiamato anche log odds.
  • b è il bias.
  • I valori w sono i pesi appresi dal modello.
  • I valori x sono i valori delle caratteristiche per un determinato esempio.

Per ottenere la previsione di regressione logistica, il valore z viene quindi passato alla funzione sigmoide, producendo un valore (una probabilità) compreso tra 0 e 1:

\[y' = \frac{1}{1 + e^{-z}}\]

dove:

  • y' è l'output del modello di regressione logistica.
  • e è il numero di Eulero: una costante matematica ≈ 2,71828.
  • z è l'output lineare (come calcolato nell'equazione precedente).

Fai clic qui per scoprire di più sui log-odds

Nell'equazione $z = b + w_1x_1 + w_2x_2 + \ldots + w_Nx_N$, z è chiamato log-odds perché se inizi con la seguente funzione sigmoidea (dove $y$ è l'output di un modello di regressione logistica, che rappresenta una probabilità):

$$y = \frac{1}{1 + e^{-z}}$$

e poi risolvi l'equazione per z:

$$ z = \log\left(\frac{y}{1-y}\right) $$

z viene quindi definito come il logaritmo del rapporto tra le probabilità dei due possibili risultati: y e 1 – y.

La Figura 2 mostra come l'output lineare viene trasformato in output di regressione logistica utilizzando questi calcoli.

A sinistra: linea con i punti (-7,5, -10), (-2,5, 0) e (0, 5) evidenziati. A destra: curva sigmoide con i punti trasformati
         corrispondenti (-10, 0.00004), (0, 0.5) e (5, 0.9933) evidenziati.
Figura 2. A sinistra: grafico della funzione lineare z = 2x + 5, con tre punti evidenziati. A destra: curva sigmoidea con gli stessi tre punti evidenziati dopo la trasformazione mediante la funzione sigmoidea.

Nella Figura 2, un'equazione lineare diventa input della funzione sigmoidea, che piega la linea retta a forma di S. Nota che l'equazione lineare può restituire valori di z molto grandi o molto piccoli, ma l'output della funzione sigmoide y' è sempre compreso tra 0 e 1, esclusi. Ad esempio, il quadrato giallo nel grafico a sinistra ha un valore z pari a -10, ma la funzione sigmoide nel grafico a destra mappa questo valore -10 in un valore y' pari a 0,00004.

Esercizio: verifica la tua comprensione

Un modello di regressione logistica con tre funzionalità ha i seguenti bias e pesi:

\[\begin{align} b &= 1 \\ w_1 &= 2 \\ w_2 &= -1 \\ w_3 &= 5 \end{align} \]

Dati i seguenti valori di input:

\[\begin{align} x_1 &= 0 \\ x_2 &= 10 \\ x_3 &= 2 \end{align} \]

Rispondi alle seguenti due domande.

1. Qual è il valore di z per questi valori di input?
–1
0
0.731
1
Esatto! L'equazione lineare definita dai pesi e dal bias è z = 1 + 2x1 – x2 + 5 x3. Inserendo i valori di input nell'equazione si ottiene z = 1 + (2)(0) - (10) + (5)(2) = 1
2. Qual è la previsione della regressione logistica per questi valori di input?
0,268
0,5
0.731

Come calcolato nel punto 1 sopra, il logit per i valori di input è 1. Inserendo questo valore di z nella funzione sigmoide:

\(y = \frac{1}{1 + e^{-z}} = \frac{1}{1 + e^{-1}} = \frac{1}{1 + 0.367} = \frac{1}{1.367} = 0.731\)

1
Ricorda che l'output della funzione sigmoidea sarà sempre maggiore di 0 e minore di 1.