Oltre l’Accuracy: come valutare un modello ML con Curve ROC e Valore Atteso
Immagina un fornitore che presenta un modello di previsione abbandono clienti con un’accuracy del 93%. Il numero suona benissimo, e probabilmente finisce evidenziato in grande in una slide. Ma cosa significa davvero? Se il tasso di abbandono naturale dei tuoi clienti è del 7%, un modello che si limita a rispondere sempre nessun abbandono per ogni cliente ottiene esattamente la stessa accuracy, senza aver imparato nulla, e senza essere utile a nessuno.
Questo paradosso riassume il problema di fondo della valutazione dei modelli machine learning: la metrica più facile da calcolare e da spiegare in riunione è spesso quella che dice meno sulla qualità reale di un modello. Per evitarlo serve guardare oltre l’accuracy: la matrice di confusione, le curve ROC con l’AUC, e il valore atteso, che collega ogni metrica tecnica al numero che interessa davvero a chi gestisce un budget, cioè l’impatto economico.
I limiti della semplice accuracy
L’accuracy misura semplicemente la percentuale di predizioni corrette sul totale delle predizioni. È il primo numero che chiunque guarda perché è facile da calcolare e immediato da spiegare. Il problema è che questa semplicità nasconde un difetto strutturale: quando le due classi che il modello deve distinguere non sono bilanciate, per esempio pochi clienti che abbandonano contro molti che restano, poche transazioni fraudolente contro milioni di transazioni regolari, pochi pezzi difettosi contro migliaia di pezzi conformi, l’accuracy può essere altissima senza che il modello stia facendo nulla di utile. Un numero alto, zero sostanza.
Per capire se un modello aggiunge valore, serve un punto di confronto minimo: il classificatore maggioritario, cioè un modello che ignora completamente le caratteristiche dei dati e predice sempre la classe più frequente. Se solo il 7% dei clienti abbandona, predire sempre nessun abbandono produce un’accuracy del 93%, un numero che sembra ottimo ma rappresenta zero capacità predittiva. Qualunque modello che non supera questa soglia minima ha fallito il test più elementare possibile, indipendentemente da quanto sia sofisticato l’algoritmo.
Questo non significa che l’accuracy sia inutile in assoluto. Su problemi con classi bilanciate, circa metà e metà, è una metrica ragionevole. Il problema nasce quando si applica automaticamente la stessa logica a problemi dove lo squilibrio tra le classi è la norma, che è la situazione più comune nei contesti aziendali: la maggior parte dei clienti non abbandona, la maggior parte delle transazioni non è fraudolenta, la maggior parte dei macchinari non si guasta domani. In tutti questi casi, valutare un modello solo sull’accuracy significa rischiare di scegliere, o peggio di mettere in produzione, un modello che in pratica non fa nulla.
Classi sbilanciate
Un caso di studio molto citato nella letteratura sul machine learning riguarda un dataset di previsione abbandono clienti di una compagnia telefonica: circa 47.000 clienti, con un tasso di abbandono reale del 7%. Su questo dataset sono stati confrontati quattro algoritmi diversi, misurando sia l’accuracy sia l’AUC, un indicatore che vediamo nel dettaglio più avanti e che misura la capacità del modello di distinguere correttamente tra chi abbandonerà e chi resterà.
- k-Nearest Neighbors: accuracy 93,0%, AUC 0,537
- Regressione logistica: accuracy 93,0%, AUC 0,574
- Albero di classificazione: accuracy 91,8%, AUC 0,614
- Naive Bayes: accuracy 76,5%, AUC 0,632
Il dato che salta all’occhio è il primo: k-NN ottiene la stessa accuracy della regressione logistica, 93%, ma il suo AUC di 0,537 è quasi indistinguibile da una previsione casuale, che corrisponde a 0,5. In pratica, k-NN raggiunge quel 93% rispondendo quasi sempre nessun abbandono, comprese le centinaia di volte in cui il cliente abbandonerà davvero. Naive Bayes, che ha l’accuracy più bassa di tutti i quattro modelli, ha invece il miglior AUC: è il modello che identifica meglio i clienti realmente a rischio. Se l’obiettivo è la retention, Naive Bayes è il modello più utile, pur perdendo nettamente sulla metrica che la maggior parte dei team guarda per prima.
La matrice di confusione
La matrice di confusione è lo strumento che permette di andare oltre un singolo numero aggregato. Invece di sommare tutte le predizioni corrette e sbagliate in un’unica percentuale, scompone i risultati in quattro categorie, incrociando ciò che il modello ha previsto con ciò che è realmente successo:
- Veri positivi: il modello prevede abbandono, e il cliente abbandona davvero
- Falsi positivi: il modello prevede abbandono, ma il cliente resta
- Falsi negativi: il modello prevede nessun abbandono, ma il cliente abbandona
- Veri negativi: il modello prevede nessun abbandono, e il cliente resta
Tornando all’esempio di k-NN con accuracy del 93%: la sua matrice di confusione avrebbe la riga predice abbandono quasi vuota. Il modello sbaglia quasi tutti i falsi negativi, cioè i clienti che abbandonano davvero e che il modello non segnala, ma siccome questi sono una minoranza, il loro peso sull’accuracy complessiva è minimo. È esattamente questo che l’accuracy nasconde e che la matrice di confusione rende visibile.
Da questi quattro numeri si calcolano metriche più informative. La recall, detta anche sensitivity, risponde alla domanda: dei clienti che abbandonano davvero, quanti sono stati identificati dal modello? La precision risponde a una domanda diversa: dei clienti che il modello segnala come a rischio, quanti lo sono effettivamente? Le due metriche sono in tensione tra loro: un modello che segnala tutti come a rischio ha recall del 100% ma precision bassissima, e viceversa un modello molto cauto ha precision alta ma recall bassa. L’F-measure è una media che bilancia le due quando contano entrambe ma non si riesce a dire quale conti di più.
Trade-off tra falsi positivi e falsi negativi
La ragione per cui la matrice di confusione è più utile dell’accuracy non è solo statistica: è economica. Falsi positivi e falsi negativi quasi sempre hanno un costo diverso, e spesso la differenza è enorme.
In un sistema antifrode, un falso negativo, cioè una transazione fraudolenta non rilevata, può costare migliaia di euro in pochi secondi. Un falso positivo, una transazione legittima bloccata per errore, costa un disagio al cliente e una telefonata al servizio assistenza. In un programma di retention clienti, un falso negativo è un cliente che se ne va senza che nessuno abbia provato a trattenerlo: un ricavo perso per anni, non per un mese. Un falso positivo è semplicemente il costo di un’offerta commerciale fatta a un cliente che sarebbe rimasto comunque. In manutenzione predittiva, un falso negativo, un guasto non previsto, può fermare una linea di produzione, mentre un falso positivo comporta al massimo un controllo preventivo non necessario.
Due modelli con la stessa accuracy possono quindi avere un valore economico molto diverso, a seconda di come distribuiscono i propri errori tra queste due categorie. Valutare un modello senza guardare questa distribuzione significa valutarlo senza guardare il problema che dovrebbe risolvere.
Calcolare il Valore Atteso
Il framework del valore atteso, in inglese expected value, è il collegamento formale tra le metriche tecniche viste finora e il problema di business. L’idea di base è che ogni cella della matrice di confusione, vero positivo, falso positivo, falso negativo, vero negativo, ha un costo o un beneficio economico associato. Il valore atteso del modello è la somma di questi costi e benefici, pesati per la frequenza con cui ciascuna situazione si verifica realmente.
Prendiamo ancora l’esempio del programma di retention. Supponiamo che trattenere un cliente a rischio valga b euro nel tempo, e che fare un’offerta commerciale, sconto, tempo del team commerciale, costi c euro. Per ciascuna cella della matrice:
- Vero positivo, cliente a rischio identificato e trattenuto: beneficio pari a b meno il costo c dell’offerta
- Falso positivo, cliente non a rischio contattato comunque: solo il costo c dell’offerta, nessun beneficio
- Falso negativo, cliente a rischio non identificato: nessun intervento, nessun costo diretto, ma il cliente se ne va
- Vero negativo, cliente non a rischio non contattato: nessun costo, nessun beneficio
Da questa struttura emerge una conseguenza molto concreta: la soglia di probabilità oltre la quale conviene contattare un cliente non è il classico 50%, ma il rapporto tra il costo dell’offerta e il beneficio della retention. Se l’offerta costa 3 euro e il valore del cliente trattenuto è 30 euro, il rapporto è 0,1: conviene contattare chiunque abbia anche solo il 10% di probabilità stimata di abbandonare. Un modello usato con la soglia di default del 50% lascerebbe scappare la maggior parte dei clienti a rischio, semplicemente perché nessuno ha fatto questo calcolo.
Il punto centrale, che vale per qualsiasi progetto di valutazione modelli machine learning, è che non esiste un modello migliore in assoluto. Lo stesso modello, applicato a due aziende con strutture di costi e benefici diverse, o anche alla stessa azienda in due momenti diversi se i margini cambiano, può portare a soglie di decisione, e quindi a risultati economici, molto diversi. Per questo definire i costi e i benefici prima di scegliere la metrica non è un dettaglio tecnico: è il primo passo del processo di valutazione.
Curve ROC e Profit Curves
Le curve ROC, Receiver Operating Characteristic, sono lo strumento più robusto per confrontare modelli tra loro, perché, a differenza delle metriche viste finora, non dipendono né dalla proporzione tra le classi né dai costi e benefici specifici di un’azienda. Un modello di scoring, che assegna a ogni cliente una probabilità invece di una semplice etichetta sì o no, genera una curva al variare della soglia di decisione: abbassando la soglia si catturano più clienti a rischio, la recall sale, ma si accettano anche più falsi positivi.
L’area sotto la curva ROC, chiamata AUC, riassume questo trade-off in un singolo numero compreso tra 0,5, previsione casuale, e 1, classificatore perfetto. Si interpreta così: l’AUC è la probabilità che, presi a caso un cliente che abbandonerà davvero e uno che non abbandonerà, il modello assegni al primo un punteggio di rischio più alto. Il vantaggio principale di curve ROC e AUC è che questo numero resta valido anche se il tasso di abbandono cambia da un trimestre all’altro o se cambiano i margini commerciali: misura la capacità del modello di ordinare correttamente i clienti, indipendentemente da come quella classifica viene poi usata.
L’AUC, però, non risponde a una domanda molto pratica: con un budget che copre il contatto dell’8% dei clienti, quale modello genera più profitto? Per rispondere servono altri due strumenti, più vicini al linguaggio con cui si parla con il management:
- Le profit curves mostrano il profitto atteso cumulato al variare della percentuale di clienti contattati, ordinati dal più al meno a rischio. Permettono di rispondere direttamente alla domanda sul budget, e di scoprire che il modello migliore in assoluto non è sempre il migliore alla soglia di budget che si ha davvero a disposizione.
- Le lift curves mostrano quante volte un modello fa meglio di una selezione casuale. Una frase come contattando il 20% dei clienti più a rischio secondo il modello, intercettiamo il 60% di chi abbandonerà davvero comunica il valore del modello molto più efficacemente di qualsiasi valore di AUC.
La regola pratica è usare le curve ROC per il confronto tecnico iniziale tra modelli candidati, e profit curves o lift curves per presentare la scelta finale agli stakeholder. E in ogni caso, prima di dichiarare un modello pronto per la produzione, va confrontato non solo con il classificatore maggioritario visto all’inizio, ma anche con il sistema o l’euristica attualmente in uso, magari un foglio Excel con regole manuali che il team commerciale usa da anni. La domanda che conta davvero per chi deve approvare l’investimento non è se il modello funziona, ma quanto è migliore di quello che si fa già oggi.
Conclusioni
Se c’è un’idea da portare a casa da questo articolo, è questa: l’accuracy da sola non dice quasi nulla quando le classi sono sbilanciate, e nei contesti aziendali lo squilibrio è la norma, non l’eccezione. La matrice di confusione, con la distinzione tra falsi positivi e falsi negativi, è il primo passo per capire dove un modello genera o distrugge valore reale. E il valore atteso, insieme a curve ROC, AUC e profit curves, è ciò che trasforma una metrica statistica in una decisione di business: quale modello scegliere, e con quale soglia usarlo.
La prossima volta che un fornitore o un collega presenta un modello con una percentuale di accuracy, prova a fare due domande: rispetto a quale baseline, e con quale impatto economico per ogni tipo di errore? Spesso sono queste due domande, più che la scelta dell’algoritmo, a fare la differenza tra un progetto di machine learning che produce valore e uno che resta un esercizio accademico. Per ricevere altri approfondimenti pratici come questo, iscriviti alla newsletter.