Home/ Wiki/ AI/ Algoritmi di Classificazione

Algoritmi di Classificazione

I sei algoritmi fondamentali del machine learning supervisionato per la classificazione: come funzionano, quando usarli e come confrontarli per scegliere il migliore.

Indice dei contenuti
Aggiornato: Aprile 2026 9 min di lettura

Panoramica

La classificazione e il task di machine learning supervisionato che consiste nell'assegnare un'etichetta categorica a un input. Esistono decine di algoritmi, ma sei formano il nucleo fondamentale che ogni professionista AI deve conoscere. Ciascuno ha punti di forza e debolezza specifici — non esiste un algoritmo universalmente migliore.

"No Free Lunch Theorem": nessun algoritmo domina su tutti i possibili problemi. La scelta dipende dalla natura dei dati, dalla dimensione del dataset e dai requisiti di interpretabilita.

Logistic Regression

Nonostante il nome, la Logistic Regression e un algoritmo di classificazione (non di regressione). Calcola una combinazione lineare delle feature, la passa attraverso la funzione sigmoid e produce una probabilita di appartenenza alla classe positiva.

Come funziona: P(y=1|x) = sigmoid(w*x + b) = 1 / (1 + e^-(w*x+b)). Se la probabilita supera una soglia (default 0.5), il campione e classificato come positivo.

  • Pro: veloce, interpretabile (i coefficienti indicano l'importanza delle feature), produce probabilita calibrate, funziona bene con feature lineari.
  • Contro: assume relazioni lineari tra feature e log-odds, scarsa con confini di decisione non lineari.
  • Uso tipico: baseline per qualsiasi problema di classificazione, credit scoring, churn prediction.

Decision Tree

Un Decision Tree costruisce un albero di decisioni binarie sulle feature: a ogni nodo si pone una domanda (es. "eta > 30?"), e ci si muove a sinistra o destra in base alla risposta, fino a raggiungere una foglia con la predizione.

Come funziona: l'algoritmo sceglie a ogni nodo la feature e la soglia che massimizzano la purezza dei sottogruppi risultanti, misurata con Gini impurity o entropia (information gain).

  • Pro: altamente interpretabile (visualizzabile come albero), gestisce feature numeriche e categoriche, non richiede normalizzazione.
  • Contro: tende fortemente all'overfitting se non potato (pruned), instabile (piccole variazioni nei dati cambiano l'albero).
  • Uso tipico: analisi esplorativa, regole di business interpretabili, base per ensemble.

Random Forest

Il Random Forest e un ensemble di molti Decision Tree (tipicamente 100-1000), ciascuno addestrato su un sottoinsieme casuale dei dati (bagging) e delle feature. La predizione finale e la votazione a maggioranza degli alberi.

Perche funziona

Ogni singolo albero ha alta varianza (overfitting), ma errori diversi. Mediando le predizioni di molti alberi decorrelati, la varianza si riduce drasticamente senza aumentare il bias. E il principio del "wisdom of crowds" applicato agli algoritmi.

  • Pro: prestazioni eccellenti out-of-the-box, robusto all'overfitting, gestisce feature miste, fornisce feature importance.
  • Contro: meno interpretabile di un singolo albero, piu lento in training e inference, alto consumo di memoria.
  • Uso tipico: il "go-to" per classificazione tabellare, quando l'interpretabilita completa non e necessaria.

SVM — Support Vector Machine

La SVM cerca l'iperpiano che separa le classi con il massimo margine — la massima distanza tra l'iperpiano e i punti piu vicini di ciascuna classe (support vectors). Per dati non linearmente separabili, il kernel trick proietta i dati in uno spazio a dimensionalita superiore dove diventano separabili.

  • Pro: eccellente con dati ad alta dimensionalita (es. testo), robusto all'overfitting grazie alla massimizzazione del margine, efficace anche con pochi campioni.
  • Contro: lento su dataset grandi (O(n^2) - O(n^3)), sensibile alla scelta del kernel e dei parametri (C, gamma), non produce probabilita native.
  • Uso tipico: classificazione di testi, bioinformatica, dataset piccoli-medi ad alta dimensionalita.

KNN — K-Nearest Neighbors

Il KNN e l'algoritmo concettualmente piu semplice: per classificare un nuovo punto, trova i K punti piu vicini nel training set e assegna la classe piu frequente tra loro. Non ha una vera fase di "training" — e un algoritmo lazy che memorizza tutti i dati.

  • Pro: intuitivo, nessun addestramento, si adatta naturalmente a confini di decisione complessi.
  • Contro: lento in inferenza (deve calcolare la distanza da tutti i punti), sensibile alla scala delle feature (richiede normalizzazione), soffre della "maledizione della dimensionalita".
  • Uso tipico: sistemi di raccomandazione, anomaly detection, prototipazione rapida.

Naive Bayes

Il Naive Bayes applica il teorema di Bayes con l'assunzione "naive" che tutte le feature siano condizionalmente indipendenti data la classe. Nonostante questa assunzione sia quasi sempre violata, funziona sorprendentemente bene in pratica.

  • Pro: estremamente veloce (training e inference), eccellente con pochi dati, funziona bene con alta dimensionalita (testo), produce probabilita.
  • Contro: l'assunzione di indipendenza limita la capacita di catturare interazioni tra feature, probabilita spesso mal calibrate.
  • Uso tipico: filtro antispam (il caso d'uso classico), classificazione di testi, baseline veloce.

Confronto tabellare

AlgoritmoVelocita trainingInterpretabilitaDataset grandiFeature non lineariProbabilita
Logistic RegressionMolto veloceAltaOttimoScarsoSi (calibrate)
Decision TreeVeloceMolto altaBuonoBuonoSi
Random ForestMedioMediaBuonoEccellenteSi
SVMLentoBassaScarsoEccellente (kernel)No (nativo)
KNNNullo (lazy)MediaScarsoBuonoSi
Naive BayesMolto veloceAltaEccellenteScarsoSi (mal calibrate)

Come regola pratica: parti da Logistic Regression come baseline, prova Random Forest per migliorare le prestazioni e valuta gli altri algoritmi in base alle specificita del problema. La valutazione rigorosa richiede sempre la matrice di confusione e la cross-validation. Per implementare questi algoritmi, consulta Python per l'AI con la libreria Scikit-learn.