Logistic Regression
La regressione logistica trasforma una somma pesata delle caratteristiche in una probabilità di classe con la funzione sigmoide. Come viene addestrata, come interpreta i risultati in termini di odds e come usa le soglie.
La regressione logistica è un metodo di apprendimento supervisionato per la classificazione che stima la probabilità che un input appartenga a una classe passando una somma ponderata delle sue feature attraverso la funzione logistica, o sigmoide. Il nome contiene «regressione» perché il modello esegue la regressione dei log-odds della classe rispetto alle feature, ma viene usato per classificare: un filtro antispam, un modello di valutazione del credito o un test di screening trasformano la probabilità in una decisione sì/no tramite una soglia. Joseph Berkson lo sviluppò come modello statistico generale a partire dal 1944, quando coniò il termine «logit», e rimane il riferimento standard per classificare dati tabulari perché si addestra in pochi secondi, restituisce probabilità e i suoi pesi si interpretano direttamente come effetti sugli odds.
Come funziona la regressione logistica#
Il modello calcola un punteggio, z = w·x + b, proprio come fa la regressione lineare, poi lo converte in una probabilità, p = 1 / (1 + e⁻ᶻ). La sigmoide comprime qualsiasi punteggio nell’intervallo da 0 a 1, restituisce 0.5 quando z = 0 e tende a 1 o a 0 quando z cresce molto in una direzione o nell’altra. Invertendola si chiarisce il significato del punteggio: z è uguale ai log-odds, log(p / (1 − p)), quindi il modello presuppone che i log-odds della classe positiva cambino linearmente con ogni feature e che la sua frontiera decisionale sia una retta, un piano o un iperpiano. Un aumento di un’unità in una feature moltiplica gli odds per eʷ, dove w è il peso di quella feature; per questo gli studi medici e sul credito riportano i risultati della regressione logistica come odds ratio.
L’addestramento determina i pesi con la massima verosimiglianza, equivalente a minimizzare la log-loss, detta anche entropia incrociata binaria: −[y·log(p) + (1 − y)·log(1 − p)], calcolata come media sui dati di addestramento. La perdita è convessa, quindi ha un unico minimo, ma non esiste una soluzione in forma chiusa; perciò solutori come L-BFGS, il metodo di Newton o la discesa del gradiente lo raggiungono iterativamente. Senza una penalità, le classi separate perfettamente da un iperpiano spingono i pesi verso l’infinito, quindi le librerie aggiungono la regolarizzazione per impostazione predefinita: LogisticRegression di scikit-learn applica una penalità L2 con C = 1.0, e valori più piccoli di C implicano una regolarizzazione più forte. Poiché la log-loss premia le probabilità accurate, una regressione logistica ben specificata e adeguatamente regolarizzata tende a restituire probabilità ben calibrate, una proprietà misurata da metriche come il Brier score.
Soglie decisionali#
Una soglia trasforma ogni probabilità in un’etichetta e 0.5 è solo il valore predefinito. Modificarla comporta un compromesso tra precisione e recall: un modello di screening oncologico la abbassa per non rilevare meno tumori, mentre un filtro antispam la alza per evitare di nascondere messaggi legittimi. La curva ROC rappresenta questo compromesso per ogni soglia, mentre l’area sottesa misura quanto bene il modello ordina i positivi al di sopra dei negativi. Questo esempio addestra una regressione logistica sul set di dati sul cancro al seno del Wisconsin incluso in scikit-learn e confronta due soglie:
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import precision_score, recall_score
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
X, y = load_breast_cancer(return_X_y=True)
y = 1 - y # make malignant (originally 0) the positive class
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=0)
# Standardize the 30 features, then fit weights by minimizing log loss
model = make_pipeline(StandardScaler(), LogisticRegression())
model.fit(X_train, y_train)
# Predicted probability of malignancy, turned into labels at two thresholds
proba = model.predict_proba(X_test)[:, 1]
for threshold in (0.5, 0.1):
pred = (proba >= threshold).astype(int)
print(
f"Threshold {threshold}: precision {precision_score(y_test, pred):.3f}, recall {recall_score(y_test, pred):.3f}"
)Con la soglia predefinita di 0.5, ogni tumore segnalato dal modello è maligno (precisione 1.000), mentre il modello non rileva 2 dei 53 tumori maligni del set di test (recall 0.962). Con 0.1 rileva tutti e 53 i tumori (recall 1.000) e segnala anche 11 dei 90 tumori benigni (precisione 0.828).
Classificatori multiclasse e reti neurali#
Per più di due classi mutuamente esclusive, la regressione logistica multinomiale calcola un punteggio per classe e converte i punteggi in probabilità la cui somma è 1 usando la funzione softmax, con addestramento basato sulla perdita di entropia incrociata; l’approccio one-vs-rest addestra invece un modello binario separato per ogni classe. I problemi multi-etichetta, in cui un input può avere più etichette contemporaneamente, usano una sigmoide indipendente per ogni classe.
Il livello di output della maggior parte delle reti neurali di classificazione è uno di questi modelli applicato alle feature apprese dai livelli precedenti, come nelle reti di classificazione delle immagini che terminano con un livello lineare e una softmax. La testa di rilevamento di YOLO26 termina ogni ramo di classificazione con una convoluzione 1×1 che produce un logit per classe in ogni posizione della griglia; una sigmoide converte ciascun logit in un punteggio di classe indipendente, addestrato con entropia incrociata binaria, quindi ogni punteggio di classe è una regressione logistica sulle feature in quella posizione. L’argomento conf della modalità predict, impostato su 0.25 per impostazione predefinita, è la soglia decisionale applicata a quei punteggi.
Applicazioni#
- Punteggi di rischio clinico: I modelli stimano la probabilità di una malattia, di una complicanza o di una nuova ospedalizzazione a partire da età, pressione sanguigna e valori di laboratorio; gli odds ratio mostrano ai medici quanto ogni fattore aumenti il rischio.
- Valutazione del credito: Gli istituti di credito creano scorecard basate sulla regressione logistica perché il contributo di ogni feature al punteggio può essere spiegato a richiedenti e autorità di regolamentazione.
- Previsione dei clic sugli annunci: L’articolo di Google del 2013 sul suo sistema di produzione per i clic descriveva una regressione logistica addestrata online con l’algoritmo FTRL-Proximal, che mantiene sparso il modello, per stimare la probabilità che un utente faccia clic su un annuncio.
- Previsione dell’abbandono: Le aziende che offrono abbonamenti stimano la probabilità che ogni cliente annulli nel periodo successivo e indirizzano le offerte di fidelizzazione agli account a rischio più elevato.
Regressione logistica e metodi correlati#
- Regressione lineare su etichette 0/1: Adattare l’errore quadratico alle etichette di classe produce previsioni inferiori a 0 e superiori a 1; inoltre, i punti lontani dalla frontiera, anche se classificati correttamente, influenzano la stima, un problema evitato dalla sigmoide e dalla log-loss.
- Macchine a vettori di supporto (SVM): Anche una SVM lineare apprende un iperpiano, ma minimizza la hinge loss per massimizzare il margine e restituisce distanze dalla frontiera anziché probabilità.
- Naive Bayes: Un classificatore generativo che modella il modo in cui le feature vengono generate da ogni classe e costituisce una coppia classica con la regressione logistica, la sua controparte discriminativa. Ng e Jordan (2001) hanno mostrato che Naive Bayes raggiunge il suo errore asintotico più elevato con meno esempi di addestramento, mentre la regressione logistica raggiunge un errore inferiore quando i dati diventano abbondanti.
- Perceptron: Applica una funzione a gradino alla stessa somma ponderata, restituisce solo 0 o 1 e aggiorna i pesi soltanto quando classifica in modo errato un esempio di addestramento.










