Algoritmo Naive Bayes nell'apprendimento automatico

Algoritmo di classificazione Naive Bayes

Algoritmo di classificazione Naive Bayes

Il classificatore รจ un algoritmo di apprendimento automatico che categorizza i dati in una o piรน "classi" di un set. Il classificatore di posta elettronica รจ un esempio di classificatore che analizza le e-mail per filtrarle in base all'etichetta di classe: Spam o Non Spam.

Il classificatore Naive Bayes nell'apprendimento automatico รจ un apprendimento automatico supervisionato per attivitร  di classificazione.

Algoritmo di classificazione Naive Bayes

Naive Bayes viene utilizzato per risolvere problemi di classificazione. Prevede sulla base della probabilitร  di un oggetto. Naive Bayes si basa sul teorema di Bayes ed รจ utilizzato principalmente per la classificazione del testo. Naive Bayes รจ un algoritmo di classificazione probabilistico facile da implementare e veloce da addestrare.

Poichรฉ il classificatore Naive Bayes si basa sul teorema di Bayes, รจ noto come classificatore di probabilitร . Prevede in base alla probabilitร  di un elemento.

Motivo per essere chiamato Naรฏve Bayes?

Il classificatore Naive Bayes ha due parole: Naive e Bayes. Perchรฉ Navie? Questo algoritmo tratta tutte le frasi di parole come uguali. Ad esempio, "Tu sei" e "Sei tu" sono gli stessi per questo algoritmo. Non dipende dalle funzionalitร  o dalla presenza di funzionalitร . Se vuoi identificare il frutto Mela allora devi avere il colore rosso, la forma sferica, il sapore dolce per riconoscerla come una Mela. Significa che queste funzionalitร  sono indipendenti l'una dall'altra.

  • Il classificatore Naive Bayes presuppone che le caratteristiche siano indipendenti l'una dall'altra. Poichรฉ ciรฒ รจ raramente possibile nei dati della vita reale, il classificatore รจ chiamato ingenuo.
  • Questo algoritmo di classificazione si basa sul teorema di Bayes noto come Naive Bayes Classifier.

Teorema di Bayes ingenuo

Il teorema di Bayes viene utilizzato per trovare la probabilitร  di un'ipotesi con probabilitร  condizionali dipendenti dalla conoscenza precedente. Questo teorema prende il nome da Thomas Bayes. Il classificatore Naive Bayes funziona secondo il principio della probabilitร  condizionata, come indicato dal teorema di Bayes.

Per comprendere il teorema di Bayes, diamo un'occhiata a un semplice esempio di classificatore di Bayes ingenuo del lancio di due monete. Possiamo ottenere questi spazi campione lanciando due monete: {HH, HT, TH, TT}. Quindi, le probabilitร  di questi eventi saranno:

  • Ottenere due teste = 1/4
  • Almeno una coda = 3/4
  • La seconda moneta รจ testa dato che la prima moneta รจ coda = 1/2
  • Ottenere due teste data la prima moneta รจ una testa = 1/2

Il teorema di Bayes calcola la probabilitร  che un evento accada in base alla probabilitร  di un evento diverso che si รจ giร  verificato. La formula del teorema di Bayes รจ data come:

P(A|B) = (P(B|A) * P(A)) / P(B)

P(A|B) Probabilitร  che si verifichi anche A quando anche B si รจ giร  verificato. La probabilitร  P(B) non dovrebbe essere zero.

  • Devi trovare la probabilitร  dell'evento A, che viene data quando l'evento B (prova) รจ vero.
  • P(A) รจ a priori (a priori, cioรจ la probabilitร  di un evento osservato prima della dimostrazione) di A. Qui l'evento B รจ il valore di un'istanza sconosciuta.
  • P(A|B) รจ la probabilitร  a posteriori dell'evento B, cioรจ la probabilitร  dell'evento dopo aver esaminato le prove.

Esempio funzionante del classificatore di Naรฏve Bayes

Prendiamo ad esempio un negozioping Per comprendere il funzionamento del classificatore Naive Bayes. In questo dataset, รจ presente un piccolo campione di 30 righe per questo esempio.

dataset

Esempio funzionante del classificatore di Naรฏve Bayes

Il problema รจ prevedere se una persona acquisterร  un prodotto in una specifica combinazione di giorno, sconto e consegna gratuita utilizzando il teorema di Naive Bayes.

Esempio funzionante del classificatore di Naรฏve Bayes

Passo 1) Creeremo tabelle di frequenza per ciascun attributo utilizzando i tipi di input menzionati nel set di dati, come giorni, sconto e consegna gratuita.

Esempio funzionante del classificatore di Naรฏve Bayes

Lascia che l'evento "Acquista" venga indicato come "A" e le variabili indipendenti, vale a dire "Sconto", "Consegna gratuita" e "Giorno", indicate come "B". Utilizzeremo questi eventi e variabili per applicare il teorema di Bayes.

Passo 2) Ora calcoliamo le tabelle delle probabilitร  una per una.

Esempio funzionante del classificatore di Naรฏve Bayes

Esempio 1:

Sulla base di questa tabella di probabilitร , calcoleremo le probabilitร  condizionali come di seguito.

P(A) = P(No Buy) = 6/30 = 0.2
P(B) = P(Weekday) = 11/30 = 0.37
P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33

E trova P(A/B) usando il teorema di Bayes,

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

Allo stesso modo, se A รจ Acquista, allora

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

Nota: Poichรฉ P(Acquista | Giorno feriale) รจ maggiore di P(Nessun acquisto | Giorno feriale), possiamo concludere che molto probabilmente un cliente acquisterร  il prodotto in un giorno feriale.

Passo 3) Allo stesso modo possiamo calcolare la probabilitร  che si verifichi un evento sulla base di tutte e tre le variabili. Ora calcoleremo le tabelle di probabilitร  per tutte e tre le variabili utilizzando le tabelle di frequenza sopra indicate.

Esempio funzionante del classificatore di Naรฏve Bayes

Esempio 2:

Ora, utilizzando queste tre tabelle di probabilitร , calcoleremo se รจ probabile che un cliente effettui un acquisto in base a una combinazione specifica di "Giorno", "Sconto" e "Consegna gratuita".

Qui, prendiamo una combinazione di questi fattori:

  • Giorno = Festivitร 
  • Sconto = sรฌ
  • Consegna gratuita = Sรฌ

Quando, A = Acquista

Calcola la probabilitร  condizionata di acquisto nella seguente combinazione di giorno, sconto e consegna gratuita.

Dove B รจ:

  • Giorno = Festivitร 
  • Sconto = sรฌ
  • Consegna gratuita = Sรฌ

E A = Acquista

Perciรฒ,

= P(A/B)
= P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30)
= 0.986

Quando, A = Nessun acquisto

Allo stesso modo, calcola la probabilitร  condizionata di acquisto nella seguente combinazione di giorno, sconto e consegna gratuita.

Dove B รจ:

  • Giorno = Festivitร 
  • Sconto = sรฌ
  • Consegna gratuita = Sรฌ

E A = Nessun acquisto

Perciรฒ,

= P(A/B)
= P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes)
= ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) )
/ ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) )
= (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30)
= 0.027

Passo 4) Quindi,

Probabilitร  di acquisto = 0.986

Probabilitร  di non acquisto = 0.027

Infine, abbiamo probabilitร  condizionate di acquistare in questo giorno. Generalizziamo ora queste probabilitร  per ottenere la Probabilitร  degli eventi.

  • Somma delle probabilitร  = 0.986 + 0.027 = 1.013
  • Probabilitร  di acquisto = 0.986 / 1.013 = 97.33 %
  • Probabilitร  di non acquisto = 0.027 / 1.013 = 2.67 %

Si noti che, poichรฉ il 97.33% รจ maggiore del 2.67%. Possiamo concludere che il cliente medio acquisterร  in vacanza con uno sconto e consegna gratuita.

Tipi di modello Naรฏve Bayes

Esistono molti tipi di classificatori Naive Bayes. Qui abbiamo discusso i classificatori multinomiali, Bernoulli e gaussiani Naive Bayes.

1. Bayes ingenuo multinomiale

Questo tipo di modello Naive Bayes viene utilizzato per problemi di classificazione dei documenti. Funziona con funzionalitร  che rappresentano la frequenza delle parole in un documento. Il classificatore considera la occorrenza e il conteggio delle parole per determinare la probabilitร  che un documento appartenga a una categoria specifica, come sport, politica o tecnologia.

2. Bernoulli Ingenuo Bayes

Questo รจ simile al multinomiale Naive Bayes. Il classificatore Bernoulli Naive Bayes viene utilizzato per attivitร  di classificazione dei documenti. Tuttavia, utilizza predittori booleani. Rappresenta se una parola รจ presente o meno e assume solo valori Sรฌ o No. Il classificatore calcola le probabilitร  in base al fatto che una parola sia presente o meno nel testo.

3. Bayes ingenuo gaussiano

Questo classificatore viene utilizzato in caso di valore continuo ma non di valore discreto. Questo classificatore calcola le probabilitร  utilizzando i parametri di Gaussiana distribuzione, cioรจ media e varianza.

Bayes ingenuo gaussiano

La formula per la probabilitร  condizionata cambia in,

Bayes ingenuo gaussiano

Vantaggi e limiti del classificatore Naive Bayes

Esistono vari vantaggi e svantaggi dellโ€™algoritmo Naive Bayes nellโ€™apprendimento automatico.

Vantaggi del classificatore Naive Bayes

  • Semplicitร  ed efficienza: Naive Bayes รจ semplice e facile da addestrare e implementare. รˆ efficiente a causa del basso costo computazionale. Puรฒ gestire in modo efficiente set di dati di grandi dimensioni.
  • Allenamento veloce e previsione: Naive Bayes non richiede tanti dati di addestramento a causa dell'indipendenza tra le funzionalitร . Puรฒ prevedere rapidamente una volta addestrato il modello.
  • Scalabilitร : Naive Bayes puรฒ gestire set di dati ad alta dimensione con un gran numero di funzionalitร . Funziona bene anche quando il numero di funzionalitร  รจ maggiore del numero di esempi di formazione. Si adatta al numero di punti dati e predittori. Gestisce sia dati continui che discreti.
  • Robustezza rispetto a caratteristiche irrilevanti: Non รจ sensibile alle caratteristiche irrilevanti.
  • Funziona bene con piccoli set di allenamento: Naive Bayes puรฒ fornire risultati ragionevoli anche con dati di addestramento limitati. Puรฒ gestire situazioni in cui il numero di istanze di training รจ ridotto. Non richiede tanti dati di addestramento.

Limitazione del classificatore Naive Bayes

L'ingenuo Bayes dentro machine learning presuppone che tutte le caratteristiche siano indipendenti l'una dall'altra. Pertanto, non puรฒ apprendere le relazioni tra le diverse caratteristiche dei dati. Tratta ogni caratteristica come se non avesse alcuna relazione con le altre.

Per superare questo problema, รจ possibile utilizzare Alberi decisionali, Random Forests, Support Vector Machines (SVM), Neural Networks ecc. Questi algoritmi hanno la capacitร  di apprendere relazioni e dipendenze complesse tra le caratteristiche nei dati. Quindi possono prevedere risultati piรน accurati.

Applicazioni del classificatore Naive Bayes

Poichรฉ questo algoritmo รจ veloce ed efficiente, puoi utilizzarlo per fare previsioni in tempo reale.

Rilevamento spam

Servizi di posta elettronica (Quali GmailQuesto algoritmo viene utilizzato per determinare se un'email รจ spam. รˆ un algoritmo eccellente per il filtraggio dello spam.

Analisi del sentimento

Puรฒ classificare il testo come positivo, negativo o neutro in base a caratteristiche come la scelta delle parole, la struttura della frase e il contesto. Trova applicazioni nel monitoraggio dei social media, nelle recensioni dei clienti e nelle ricerche di mercato.

Classificazione dei documenti

Puรฒ classificare i documenti in categorie come sport, politica, tecnologia o finanza in base alla frequenza o alla presenza di parole o caratteristiche specifiche all'interno del documento.

Sistemi di raccomandazione

Puรฒ analizzare le preferenze dell'utente, i dati storici e le caratteristiche degli articoli per prevedere gli interessi o le preferenze dell'utente per consigliare prodotti, film o articoli.

Questo algoritmo di classificazione viene utilizzato anche nel riconoscimento facciale, nelle previsioni meteorologiche, nella diagnosi medica, nello shoppingping, Classificazione delle notizie ecc. รˆ possibile implementare Naive Bayes in Python. Esiste il classificatore Naive Bayes sklearn, ovvero sklearn.naive_bayes. รˆ il modulo che implementa questo algoritmo.

Conclusione

Gli algoritmi Naive Bayes nell'apprendimento automatico sono classificatori utilizzati principalmente nel rilevamento dello spam, nella classificazione delle notizie, nell'analisi del sentiment, nelle previsioni meteorologiche, nei negoziping ecc. Gli algoritmi Naive Bayes si basano sul teorema di Bayes. Questo algoritmo รจ semplice e facile da implementare. Poichรฉ รจ veloce, possiamo usarlo in applicazioni in tempo reale. Il suo piรน grande svantaggio รจ che assume caratteristiche indipendenti (poichรฉ le caratteristiche indipendenti sono raramente possibili nella vita reale, รจ noto come Naive). Tratta ogni caratteristica come uguale. Per superare questo inconveniente รจ possibile utilizzare altri classificatori come Decision Tree, Random Forest, Support Vector Machine (SVM) ecc.

Riassumi questo post con: