Il classificatore Naïve Bayes è un algoritmo di machine learning supervisionato utilizzato per attività di classificazione come la classificazione del testo. Usa i principi della probabilità per eseguire compiti di classificazione.
Naïve Bayes fa parte di una famiglia di algoritmi di apprendimento generativo, il che significa che cerca di modellare la distribuzione degli input di una determinata classe o categoria. A differenza dei classificatori discriminativi, come la regressione logistica, non apprende quali caratteristiche siano più importanti per differenziare tra le classi.
Naïve Bayes è anche noto come classificatore probabilistico poiché si basa sul teorema di Bayes. Sarebbe difficile spiegare questo algoritmo senza spiegare le basi della statistica bayesiana. Questo teorema, noto anche come regola di Bayes, ci permette di "invertire" le probabilità condizionate. Ricordiamo che le probabilità condizionate rappresentano la probabilità di un evento sapendo che si è verificato qualche altro evento, che è rappresentata con la seguente formula:
Il teorema di Bayes si distingue per l'uso di eventi sequenziali, in cui informazioni aggiuntive acquisite successivamente influiscono sulla probabilità iniziale. Queste probabilità sono denotate come probabilità a priori e probabilità a posteriori. La probabilità a priori è la probabilità iniziale di un evento prima che venga contestualizzato in una certa condizione, o la probabilità marginale. La probabilità a posteriori è la probabilità di un evento dopo l'osservazione di un dato.
Un esempio popolare nella letteratura statistica e sul machine learning (link esterno a ibm.com) per dimostrare questo concetto sono i test medici. Ad esempio, immagina che ci sia una persona, di nome Jane, che fa un test per determinare se ha il diabete. Diciamo che la probabilità complessiva di avere il diabete è del 5%; questa sarebbe la nostra probabilità a priori. Tuttavia, se ottiene un risultato positivo dal suo test, la probabilità a priori viene aggiornata per tenere conto di queste informazioni aggiuntive e diventa quindi la nostra probabilità a posteriori. Questo esempio può essere rappresentato con la seguente equazione, utilizzando il teorema di Bayes:
Tuttavia, poiché la nostra conoscenza delle probabilità a priori non è probabilmente esatta data altre variabili, come la dieta, l'età, la storia familiare e altro, in genere utilizziamo distribuzioni di probabilità da campioni casuali, semplificando l'equazione a P(Y|X) = P(X|Y)P(Y) / P(X)
I classificatori Naïve Bayes funzionano in modo diverso in quanto operano in base a un paio di ipotesi chiave, guadagnandosi il titolo di "naïve". Si presuppone che i predittori in un modello Naïve Bayes siano condizionatamente indipendenti o non correlati a qualsiasi altra funzione del modello. Si presuppone inoltre che tutte le caratteristiche contribuiscano equamente al risultato. Sebbene queste ipotesi siano spesso violate in scenari reali (ad esempio, una parola successiva in un'e-mail dipende dalla parola che la precede), semplifica un problema di classificazione rendendolo più gestibile dal punto di vista computazionale. In altre parole, sarà ora necessaria una sola probabilità per ogni variabile, il che, a sua volta, semplifica il calcolo del modello. Nonostante questa ipotesi di indipendenza irrealistica, l'algoritmo di classificazione funziona bene, in particolare con campioni di piccole dimensioni.
Tenendo presente questa ipotesi, possiamo ora riesaminare più da vicino le parti di un classificatore Naïve Bayes. Analogamente al teorema di Bayes, utilizzerà le probabilità condizionate e a priori per calcolare le probabilità a posteriori utilizzando la seguente formula:
Immaginiamo un caso d'uso di classificazione del testo per illustrare come funziona l'algoritmo Naïve Bayes. Immagina un provider e-mail che sta cercando di migliorare il proprio filtro antispam. I dati di addestramento sarebbero costituiti da parole provenienti da e-mail classificate come "spam" o "non spam". Da lì, le probabilità condizionate di classe e le probabilità a priori vengono calcolate per produrre la probabilità a posteriori. Il classificatore Naïve Bayes opererà restituendo la classe, che ha la massima probabilità a posteriori da un gruppo di classi (ad es. "spam" o “non spam") per una determinata e-mail. Questo calcolo è rappresentato dalla seguente formula:
Poiché ogni classe si riferisce alla stessa parte di testo, possiamo effettivamente eliminare il denominatore da questa equazione, semplificandola in:
L'accuratezza dell'algoritmo di apprendimento basato sul set di dati di addestramento viene quindi valutata in base alle prestazioni del set di dati di test.
Per approfondire un po' questo concetto, andremo un livello più in profondità nelle singole parti, che compongono questa formula. Le probabilità condizionate di classe sono le probabilità individuali di ogni parola in una e-mail. Queste sono calcolate determinando la frequenza di ogni parola per ogni categoria, ad es. "spam" o "non spam", il che è noto anche come stima di massima verosimiglianza (MLE, Maximum Likelihood Estimation). In questo esempio, se esaminassimo le parole "Gentile Signore", calcoleremo semplicemente la frequenza con cui tali parole ricorrono in tutte le e-mail spam e non spam. Ciò può essere rappresentato dalla formula seguente, dove y è "Gentile Signore" e x è "spam".
Le probabilità a priori sono esattamente quelle che abbiamo descritto in precedenza con il teorema di Bayes. In base al set di addestramento, è possibile calcolare la probabilità complessiva che una e-mail sia "spam" o "non spam". La probabilità a priori per l'etichetta di classe, "spam", sarebbe rappresentata nella seguente formula:
La probabilità a priori agisce come un "peso" per la probabilità condizionata di classe quando i due valori vengono moltiplicati insieme, ottenendo le probabilità a posteriori individuali. Da lì, viene calcolata la stima del massimo a posteriori (MAP, Maximum A Posteriori) per assegnare un'etichetta di classe di spam o non spam. L'equazione finale per l'equazione Naïve Bayes può essere rappresentata nei seguenti modi:
In alternativa, può essere rappresentata nello spazio logaritmico poiché Naïve Bayes è comunemente usato in questa forma:
Un modo per valutare il classificatore consiste nel tracciare una matrice di confusione, che traccerà i valori effettivi e stimati all'interno di una matrice. Le righe in genere rappresentano i valori effettivi, mentre le colonne rappresentano i valori previsti. Molte guide illustrano questa figura come un diagramma 2 x 2, come quello riportato di seguito:
Tuttavia, se si prevedessero immagini da zero a 9, si otterrebbe un grafico 10 x 10. Se volessi conoscere il numero di volte in cui il classificatore ha "confuso" le immagini di 4 con 9, dovresti solo controllare la quarta riga e la nona colonna.
Non c'è solo un tipo di classificatore Naïve Bayes. I tipi più comuni differiscono in base alle distribuzioni dei valori delle caratteristiche. Alcune di queste includono:
Tutti questi elementi possono essere implementati tramite la libreria Python Scikit Learn (link esterno a ibm.com), nota anche come sklearn.
Insieme ad altri algoritmi, Naïve Bayes appartiene a una famiglia di algoritmi di data mining che trasformano grandi volumi di dati in informazioni utili. Alcune applicazioni di Naïve Bayes includono:
IBM Granite è la nostra famiglia di modelli AI aperti, efficienti e affidabili, su misura per le aziende e ottimizzati per scalare le applicazioni di AI. Esplora le opzioni di linguaggio, codice, serie temporali e guardrail.
Abbiamo intervistato 2.000 organizzazioni in merito alle loro iniziative di AI per scoprire cosa funziona, cosa non funziona e come giocare d'anticipo.
Esplora gli approcci di apprendimento supervisionato, come le macchine a vettori di supporto e i classificatori probabilistici.
Impara i concetti fondamentali e sviluppa le tue competenze con laboratori pratici, corsi, progetti guidati, prove e molto altro.
Scopri come scegliere il foundation model di AI più adatto al tuo caso d'uso.
Addestra, convalida, adatta e implementa le funzionalità di AI generativa, foundation model e machine learning con IBM watsonx.ai, uno studio aziendale di nuova generazione per builder AI. Crea applicazioni AI in tempi ridotti e con una minima quantità di dati.
Metti l'AI al servizio della tua azienda grazie all'esperienza leader di settore e alla gamma di soluzioni di IBM nel campo dell'AI.
Reinventa i flussi di lavoro e le operazioni critiche aggiungendo l'AI per massimizzare le esperienze, il processo decisionale in tempo reale e il valore di business.