Algoritmo Naive Bayes nell'apprendimento automatico
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.
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
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.
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.
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 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 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.
La formula per la probabilitร condizionata cambia in,
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.









