• Home
  • Chi sono
  • Risorse
  • Contatti
  • Approfondimenti
  • Cerca nel sito

Lorenzo Govoni

Business e Tecnologia

  • Big Data
  • Business
  • Excel
  • Intelligenza Artificiale

Classificatore Naive Bayes Gaussiano

classificatore Naive Bayes

Il classificatore Naive Bayes appartiene ad una raccolta di algoritmi di classificazione basati sul Teorema di Bayes.

Non è un singolo algoritmo ma una famiglia di algoritmi in cui tutti condividono un principio comune, cioè che ogni caratteristica è indipendente l’una dall’altra (da qua il nome Naive, dall’inglese ingenuo).

Oltre ad essere semplice e veloce, esso può essere utilizzato sia per dati categoriali che per dataset numerici.

Le variabili categoriali assumono valori che sono nomi o etichette. Il colore di una palla (ad esempio, rosso, verde, blu) o la razza di un cane (ad es. Collie, pastore, terrier) per intenderci sono esempi di variabili categoriali.

 

 

Al contrario le variabili quantitative sono numeriche. Esse possono dividersi in discrete e continue.

Le variabili quantitative discrete rappresentano una quantità misurabile. Ad esempio, quando parliamo della popolazione di una città, stiamo parlando del numero di persone nella città (un attributo misurabile della città). La popolazione è, in questo caso, una variabile quantitativa discreta.

Invece le variabili quantitative continue non sono numeri finiti, ma numeri reali. Come esempio pensa al peso o all’altezza di un uomo.

Popolazione: variabile quantitativa discreta
Altezza uomo: variabile quantitativa continua

Classificatore naive bayes Gaussiano

Nel precedente articolo abbiamo visto come applicare il Naive Bayes a dati categoriali.

Una versione più utile dell’algoritmo supporta dati numerici continui e presuppone che i valori di ciascuna caratteristica siano normalmente distribuiti (ossia ricadono da qualche parte su una curva a campana). 

In altre parole, Naive Bayes può essere esteso ad attributi a valori reali, più comunemente assumendo una distribuzione gaussiana o normale.

Secondo questa assunzione è sufficiente trovare la media e la deviazione standard di ciascuna probabilità per ogni attributo e per ogni singola classe. Esse vengono calcolate come segue:

Questa estensione del Naive Bayes è chiamata Gaussian Naive Bayes. Altre funzioni possono essere utilizzate per stimare la distribuzione dei dati, ma la gaussiana (o distribuzione normale) è la più semplice da utilizzare poiché è necessario solo stimare la media e la deviazione standard dai dati di allenamento.

Sostituendo tali valori nella funzione di densità di probabilità gaussiana (detta anche Gaussian Probability Density Function) si ricava una probabilità che permette di ricavare le varie probabilità di classe. Il valore di probabilità di classe più alto così ottenuto rappresenta la classe da associare alla nuova istanza che si vuole categorizzare.

Con:

μ: media
σ2 = varianza, il quadrato della deviazione standard

 

Esempio di Naive Bayes utilizzando il classificatore gaussiano

Utilizziamo il dataset Iris, già utilizzato per illustrare come funziona il k-means. Il dataset completo lo puoi trovare qua; composto da 3 classi, Iris Vericolor, Iris Virginica e Iris Setosa, ognuna composta a sua volta da 50 istanze. Ogni istanza include rispettivamente la lunghezza e larghezza sepale e lunghezza e larghezza del petalo.

Supponiamo ora di misurare un fiore Iris e di trovare le seguenti misure:

Lunghezza sepale = 7 cm

Larghezza sepale = 3 cm

Lunghezza del petalo = 5 cm

Larghezza del petalo = 2 cm

Vogliamo capire a che classe associare la misura dell’Iris misurato.

Seguendo Naive Bayes, abbiamo bisogno di calcolare le seguenti probabilità condizionali e categorizzare il nostro fiore misurato con la classe che ha la più alta probabilità. Per fare ciò, useremo la misura gaussiana della verosimiglianza (per maggiori informazioni si veda questo articolo), che ci permette di calcolare le seguenti probabilità:

P (Versicolor | 7,3,5,2)

P (Setosa | 7,3,5,2)

P (Virginica | 7,3,5,2)

 

Iris Versicolor

Facciamo un calcolo con Versicolor. Applicando il teorema di Bayes, otteniamo:

P (Versicolor | 7,3,5,2) = (P (7,3,5,2 | Versicolor) * P (Versicolor)) / P (7,3,5,2)

Supponendo l’indipendenza delle caratteristiche, come il classificatore afferma, il denominatore può essere rimosso:

P (Versicolor | 7,3,5,2) = P (7,3,5,2 | Versicolor) * P (Versicolor)

Il primo membro di questa probabilità può essere ricavato utilizzando la distribuzione gaussiana delle probabilità della classe condizionata:

P (7,3,5,2 | Versicolor) = P (7 | Versicolor) * P (3 | Versicolor) * P (5 | Versicolor) * P (2 | Versicolor)

I valori della media, dev. Standard e varianza dell’iris dataset per l’Iris Versicolor vengono riportati nella tabella sottostante:

 

 

Inserendo questi valori dentro la funzione vista sopra otteniamo i seguenti risultati:

P (7,3,5,2 | Versicolor) = P (7 | Versicolor) * P (3 | Versicolor) * P (5 | Versicolor) * P (2 | Versicolor)

P (7,3,5,2 | Versicolor) = N (7 | 5.936, 0.266) * N (3 | 2.77, 0.098) * N (5 | 4.26, 0.221) * N (2 | 1.32, 0.039)

Con N distribuzione Normale. Vediamo quanto esso vale (i risultati ottenuti sotto provengono da calcoli Excel e considerano tutti i decimali, per semplicità nelle formule si è arrotondato al 2/3° decimale):

Quindi tornando all’espressione abbiamo che:

P (7,3,5,2 | Versicolor) = 0,092 * 0,97 * 0,24 * 0,006 = 0,00013

Ricordandosi poi che il fiore Versicolor rappresenta un terzo dei valori (solo 50 su 150) dell’intero dataset abbiamo che:

P (Versicolor) = 50/150 = 0,33

Finalmente possiamo calcolare: P (7,3,5,2 | Versicolor) = 0,00013 * 0,33 = 0.00004 ossia lo 0,004%

Da qui, avremmo bisogno di eseguire la stessa procedura per Iris Setosa e Iris Virginica per determinare in quale classe il fiore originale abbia più probabilità di appartenere.

 

Iris Setosa

Procedendo allo stesso modo troviamo che:

 

P (7,3,5,2 | Setosa) = P (7 | Setosa) * P (3 | Setosa) * P (5 | Setosa) * P (2 | Setosa)

P (7,3,5,2 | Setosa) = N (7 | 5.006, 0.12) * N (3 | 3.418, 0.15) * N (5 | 1.464, 0.03) * N (2 | 0.244, 0.01)

Con N distribuzione Normale. Vediamo quanto esso vale (i risultati ottenuti sotto provengono da calcoli Excel e considerano tutti i decimali, per semplicità nelle formule si è arrotondato al 2/3° decimale):

Moltiplicando tra di loro i vari valori trovati e considerando sempre che le istanze dell’Iris Setosa sono un terzo dell’intero dataset otteniamo che:

P (7,3,5,2 | Setosa) = 7,5996E-156

Valore prossimo allo zero.

 

Iris Virginica

 

Infine procedendo al medesimo calcolo anche per l’Iris Virginica abbiamo che:

P (7,3,5,2 | Virginica) = P (7 | Virginica) * P (3 | Virginica) * P (5 | Virginica) * P (2 | Virginica)

P (7,3,5,2 | Virginica) = N (7 | 6.588, 0.40) * N (3 | 2.974, 0.10) * N (5 | 5.552, 0.30) * N (2 | 2.026, 0.08)

Con N distribuzione Normale. Vediamo quanto esso vale (i risultati ottenuti sotto provengono da calcoli Excel e considerano tutti i decimali, per semplicità nelle formule si è arrotondato al 2/3° decimale):

Moltiplicando tra di loro i vari valori trovati e considerando sempre che le istanze dell’Iris Virginica sono un terzo otteniamo che:

P (7,3,5,2 | Virginica) = 0,132640783

Siccome la probabilità più alta appartiene alla classe Virginica (13,2%), possiamo assegnare la misurazione del fiore Iris alla classe Virginica.

 

Altri classificatori

Oltre al classificatore Naive Bayes Gaussiano è possibile utilizzare uno dei seguenti stimatori:

  • Naive Bayes multinomiali: i vettori caratteristica rappresentano le frequenze con cui determinati eventi sono stati generati da una distribuzione multinomiale. Questo è il modello di evento utilizzato in genere per la classificazione dei documenti.

  • Bernoulli Naive Bayes: Nel modello di eventi multivariato di Bernoulli, le caratteristiche indipendenti che descrivono gli input sono variabili booleane (variabili binarie del tipo Vero o Falso).

    Come il modello multinomiale, esso è popolare per le attività di classificazione dei documenti, in cui vengono utilizzate caratteristiche di termine binario (cioè una parola in un documento o meno) piuttosto che frequenze di termini (cioè frequenza di una parola nel documento).

 

Vantaggi e Svantaggi

Il principale vantaggio che un classificatore Naive Bayes può portare è che esso è facile da usare e permette velocemente di definire la classe del set di dati di test.

Oltretutto funziona bene nelle previsioni multi-classe e in caso di variabili di input categoriali. Se si analizzano variabili numeriche continue è possibile, come visto, utilizzare la distribuzione normale per prevedere nuove istanze e fare ulteriori ipotesi.

In secondo luogo, quando l’assunzione di indipendenza vale, un classificatore Naive Bayes si comporta meglio rispetto ad altri modelli come la regressione logistica, in quanto utilizza meno dati di allenamento per ottenere buoni risultati.

Non esistono solo pro.

Un limite dell’algoritmo Naive Bayes è l’assunzione di predittori indipendenti. Nella vita reale, è quasi impossibile ottenere una serie di predittori completamente indipendenti.

Il fatto si aggrava se la variabile categoriale non viene osservata nel set di dati di addestramento, in quanto il modello assegnerà una probabilità 0 (zero) e non sarà in grado di effettuare una previsione.

Questo fatto è spesso noto come frequenza zero, e per risolverlo si può comunque utilizzare tecniche di livellamento come la stima di Laplace.

C’è da dire, infine, che il Naive Bayes è conosciuto come uno stimatore errato, quindi le uscite di probabilità non devono essere prese troppo sul serio.

 

Principali applicazioni

Concludiamo l’articolo elencando le principali applicazioni che il classificatore Naive Bayes trova impiego. Possiamo avere:

  • Previsione in tempo reale: Naive Bayes è un classificatore di apprendimento ed è veloce. Quindi, potrebbe essere usato per fare previsioni in tempo reale ad esempio nella previsione del meteo, dove c’è ancora margine di miglioramento e sicuramente l’intelligenza artificiale darà un forte contributo in questo senso.

  • Classificazione del testo, filtraggio dello spam e analisi del sentimento: i classificatori di Naive Bayes vengono utilizzati principalmente nella classificazione del testo (grazie a risultati migliori in problemi di classe multipla e regole di indipendenza), nel filtro antispam (al fine di identificare la posta indesiderata) e nell’analisi del sentiment (nell’analisi dei social media, per identificare i sentimenti positivi e negativi dei clienti).

  • Sistema di raccomandazione: il classificatore di Naive Bayes e il filtro collaborativo costruiscono insieme un sistema di raccomandazioni che utilizza tecniche di apprendimento automatico e di data mining per filtrare le informazioni invisibili e prevedere se un utente vorrebbe o meno una determinata risorsa.
  • Naive Bayes in linguaggio Python
    Naive Bayes in linguaggio Python
  • Introduzione all'algoritmo Naive Bayes
    Introduzione all'algoritmo Naive Bayes
  • 8 algoritmi diffusi nel machine learning
    8 algoritmi diffusi nel machine learning
  • Computer Vision: come una macchina riconosce gli oggetti
    Computer Vision: come una macchina riconosce gli oggetti
Share
Pin
Share
Tweet

Intelligenza Artificiale Classificazione, Machine Learning

  • Home
  • Archivio
  • Risorse
  • Newsletter
  • Cerca nel sito

Copyright © 2021 · Lorenzo Govoni - Privacy Policy