I classificatori Naive Bayes, una famiglia di algoritmi basati sul Teorema di Bayes. Nonostante l’ingenuo presupposto dell’indipendenza dalle funzionalità, questi classificatori sono ampiamente utilizzati per la loro semplicità ed efficienza nell’apprendimento automatico. L'articolo approfondisce la teoria, l'implementazione e le applicazioni, facendo luce sulla loro utilità pratica nonostante i presupposti eccessivamente semplificati.
Che cosa sono i classificatori Naive Bayes?
I classificatori Naive Bayes sono una raccolta di algoritmi di classificazione basati sul Teorema di Bayes. Non si tratta di un singolo algoritmo ma di una famiglia di algoritmi in cui tutti condividono un principio comune, ovvero ogni coppia di caratteristiche classificate è indipendente l'una dall'altra. Per cominciare, consideriamo un set di dati.
onclick js
Uno degli algoritmi di classificazione più semplici ed efficaci, il classificatore Naïve Bayes aiuta nel rapido sviluppo di modelli di apprendimento automatico con capacità di previsione rapida.
L'algoritmo Naïve Bayes viene utilizzato per i problemi di classificazione. È molto utilizzato nella classificazione del testo. Nelle attività di classificazione del testo, i dati contengono dimensioni elevate (poiché ogni parola rappresenta una caratteristica dei dati). Viene utilizzato nel filtraggio dello spam, nel rilevamento dei sentimenti, nella classificazione delle valutazioni, ecc. Il vantaggio di utilizzare l'ingenuo Bayes è la sua velocità. È veloce e fare previsioni è facile con un'elevata dimensione dei dati.
Questo modello prevede la probabilità che un'istanza appartenga a una classe con un determinato insieme di valori di funzionalità. È un classificatore probabilistico. Ciò avviene perché si presuppone che una caratteristica del modello sia indipendente dall'esistenza di un'altra caratteristica. In altre parole, ciascuna caratteristica contribuisce alle previsioni senza alcuna relazione tra loro. Nel mondo reale, questa condizione si verifica raramente. Utilizza il teorema di Bayes nell'algoritmo per l'addestramento e la previsione
Perché si chiama Naive Bayes?
La parte Naive del nome indica l'ipotesi semplificativa fatta dal classificatore Naïve Bayes. Il classificatore presuppone che le caratteristiche utilizzate per descrivere un'osservazione siano condizionatamente indipendenti, data l'etichetta della classe. La parte Bayes del nome si riferisce al reverendo Thomas Bayes, uno statistico e teologo del XVIII secolo che formulò il teorema di Bayes.
Considera un set di dati fittizio che descrive le condizioni meteorologiche per giocare a golf. Date le condizioni meteorologiche, ogni tupla classifica le condizioni come idoneo (Sì) o non idoneo (No) per giocare a golf. Ecco una rappresentazione tabellare del nostro set di dati.
Veduta | Temperatura | Umidità | Ventoso | Giocare a golf | |
---|---|---|---|---|---|
0 | Piovoso | Caldo | Alto | Falso | NO |
1 | Piovoso | Caldo | Alto | VERO | NO |
2 | Coperto | Caldo | Alto | Falso | SÌ |
3 | Soleggiato | Blando | Alto | Falso | SÌ |
4 | Soleggiato | Freddo | Normale | Falso | SÌ |
5 | Soleggiato | Freddo | Normale | VERO | NO |
6 | Coperto | Freddo | Normale | VERO | SÌ |
7 | Piovoso | Blando | Alto | Falso | NO |
8 | Piovoso | Freddo | Normale | Falso | SÌ |
9 | Soleggiato | Blando | Normale | Falso | SÌ |
10 | Piovoso | Blando | Normale | VERO | SÌ |
undici | Coperto | Blando | Alto | VERO | SÌ |
12 | Coperto | Caldo | Normale | Falso | SÌ |
13 | Soleggiato | Blando | Alto | VERO | NO |
Il dataset è diviso in due parti, vale a dire: matrice delle caratteristiche e il vettore di risposta .
- La matrice delle caratteristiche contiene tutti i vettori (righe) del set di dati in cui ciascun vettore è costituito dal valore di caratteristiche dipendenti . Nel set di dati sopra, le caratteristiche sono 'Outlook', 'Temperatura', 'Umidità' e 'Vento'.
- Il vettore di risposta contiene il valore di variabile di classe (previsione o output) per ciascuna riga della matrice delle caratteristiche. Nel set di dati sopra, il nome della variabile della classe è 'Gioca a golf'.
Assunzione di Naive Bayes
Il presupposto fondamentale di Naive Bayes è che ciascuna caratteristica costituisce un:
- Indipendenza dalle caratteristiche: Le caratteristiche dei dati sono condizionatamente indipendenti l'una dall'altra, data l'etichetta della classe.
- Le caratteristiche continue sono normalmente distribuite: Se una caratteristica è continua, si presume che sia distribuita normalmente all'interno di ciascuna classe.
- Le caratteristiche discrete hanno distribuzioni multinomiali: Se una caratteristica è discreta, si assume che abbia una distribuzione multinomiale all'interno di ciascuna classe.
- Le caratteristiche sono ugualmente importanti: Si presuppone che tutte le funzionalità contribuiscano equamente alla previsione dell'etichetta della classe.
- Nessun dato mancante: I dati non devono contenere valori mancanti.
In relazione al nostro dataset, questo concetto può essere inteso come:
- Assumiamo che nessuna coppia di caratteristiche sia dipendente. Ad esempio, se la temperatura è “calda” non ha nulla a che fare con l’umidità o se la prospettiva è “piovosa” non ha alcun effetto sui venti. Quindi, si presuppone che le caratteristiche siano indipendente .
- In secondo luogo, a ciascuna caratteristica viene assegnato lo stesso peso (o importanza). Ad esempio, conoscere solo la temperatura e l’umidità non può prevedere con precisione il risultato. Nessuno degli attributi è irrilevante e si presume contribuisca ugualmente al risultato.
Le ipotesi fatte da Naive Bayes non sono generalmente corrette nelle situazioni del mondo reale. In effetti, l’ipotesi di indipendenza non è mai corretta ma spesso funziona bene nella pratica. Ora, prima di passare alla formula di Naive Bayes, è importante conoscere il teorema di Bayes.
Teorema di Bayes
Il Teorema di Bayes calcola la probabilità che un evento si verifichi data la probabilità di un altro evento che si è già verificato. Il teorema di Bayes si esprime matematicamente come la seguente equazione:
dove A e B sono eventi e P(B) ≠ 0
- Fondamentalmente, stiamo cercando di trovare la probabilità dell'evento A, dato che l'evento B è vero. L'evento B è anche definito come prova .
- P(A) è il a priori di A (la probabilità a priori, cioè la probabilità dell'evento prima che si veda la prova). La prova è un valore di attributo di un'istanza sconosciuta (qui è l'evento B).
- P(B) è la probabilità marginale: probabilità dell'evidenza.
- P(A|B) è la probabilità a posteriori di B, cioè la probabilità dell'evento dopo aver visto le prove.
- P(B|A) è la probabilità di verosimiglianza, cioè la probabilità che un'ipotesi si avveri sulla base delle prove.
Ora, per quanto riguarda il nostro set di dati, possiamo applicare il teorema di Bayes nel modo seguente:
dove y è la variabile di classe e X è un vettore di caratteristiche dipendente (di dimensione N ) Dove:
Giusto per chiarire, un esempio di vettore di caratteristiche e variabile di classe corrispondente può essere: (fare riferimento alla prima riga del set di dati)
X = (Rainy, Hot, High, False)>
y = No>
Quindi in poche parole,
In relazione al nostro dataset, questo concetto può essere inteso come:
- Assumiamo che nessuna coppia di caratteristiche sia dipendente. Ad esempio, se la temperatura è “calda” non ha nulla a che fare con l’umidità o se la prospettiva è “piovosa” non ha alcun effetto sui venti. Quindi, si presuppone che le caratteristiche siano indipendente .
- In secondo luogo, a ciascuna caratteristica viene assegnato lo stesso peso (o importanza). Ad esempio, conoscere solo la temperatura e l’umidità non può prevedere con precisione il risultato. Nessuno degli attributi è irrilevante e si presume contribuisca ugualmente al risultato.
Ora è il momento di dare un’ipotesi ingenua al teorema di Bayes, che è: indipendenza tra le caratteristiche. Quindi ora ci siamo separati prova nelle parti indipendenti.
Ora, se due eventi A e B sono indipendenti, allora
P(A,B) = P(A)P(B)>
Arriviamo quindi al risultato:
che può essere espresso come:
Ora, poiché il denominatore rimane costante per un dato input, possiamo rimuovere quel termine:
Ora dobbiamo creare un modello di classificazione. Per questo, troviamo la probabilità di un dato insieme di input per tutti i possibili valori della variabile di classe E e raccogliere l'output con la massima probabilità. Ciò può essere espresso matematicamente come:
Quindi, alla fine, ci resta il compito di calcolare
Tienilo presente
I diversi classificatori ingenui di Bayes differiscono principalmente per le ipotesi che fanno riguardo alla distribuzione di
Proviamo ad applicare manualmente la formula di cui sopra sul nostro set di dati meteorologici. Per questo, dobbiamo fare alcuni calcoli preliminari sul nostro set di dati.
Dobbiamo trovare
Quindi, nella figura sopra, abbiamo calcolato
Inoltre, dobbiamo trovare le probabilità delle classi
Quindi ora abbiamo finito con i nostri calcoli preliminari e il classificatore è pronto!
Testiamolo su una nuova serie di funzionalità (chiamiamole oggi):
today = (Sunny, Hot, Normal, False)>
e la probabilità di non giocare a golf è data da:
Poiché P(oggi) è comune in entrambe le probabilità, possiamo ignorare P(oggi) e trovare probabilità proporzionali come:
E
Ora, da allora
Questi numeri possono essere convertiti in probabilità rendendo la somma uguale a 1 (normalizzazione):
E
Da
Quindi, la previsione che si giocherà a golf è “Sì”.
Il metodo che abbiamo discusso sopra è applicabile ai dati discreti. In caso di dati continui, dobbiamo fare alcune ipotesi riguardanti la distribuzione dei valori di ciascuna caratteristica. I diversi classificatori ingenui di Bayes differiscono principalmente per le ipotesi che fanno riguardo alla distribuzione di
Tipi di modello Naive Bayes
Esistono tre tipi di modello Naive Bayes:
Classificatore gaussiano Naive Bayes
Nel Gaussian Naive Bayes, si presuppone che i valori continui associati a ciascuna caratteristica siano distribuiti secondo una distribuzione gaussiana. Viene anche chiamata distribuzione gaussiana Distribuzione normale Una volta tracciato, fornisce una curva a campana che è simmetrica rispetto alla media dei valori delle caratteristiche, come mostrato di seguito:
La tabella aggiornata delle probabilità a priori per la funzionalità Outlook è la seguente:
Si presuppone che la verosimiglianza delle caratteristiche sia gaussiana, quindi la probabilità condizionata è data da:
Ora esaminiamo un'implementazione del classificatore gaussiano Naive Bayes utilizzando scikit-learn.
| SÌ | NO | P(Sì) | P(No) |
---|---|---|---|---|
Soleggiato | 3 | 2 | 3/9 | 2/5 |
Piovoso | 4 | 0 | 4/9 | 0/5 |
Coperto | 2 | 3 | 2/9 | 3/5 |
Totale | 9 | 5 | 100% | 100% .tostring java |
Pitone
# load the iris dataset> from> sklearn.datasets> import> load_iris> iris> => load_iris()> > # store the feature matrix (X) and response vector (y)> X> => iris.data> y> => iris.target> > # splitting X and y into training and testing sets> from> sklearn.model_selection> import> train_test_split> X_train, X_test, y_train, y_test> => train_test_split(X, y, test_size> => 0.4> , random_state> => 1> )> > # training the model on training set> from> sklearn.naive_bayes> import> GaussianNB> gnb> => GaussianNB()> gnb.fit(X_train, y_train)> > # making predictions on the testing set> y_pred> => gnb.predict(X_test)> > # comparing actual response values (y_test) with predicted response values (y_pred)> from> sklearn> import> metrics> print> (> 'Gaussian Naive Bayes model accuracy(in %):'> , metrics.accuracy_score(y_test, y_pred)> *> 100> )> |
Output: Gaussian Naive Bayes model accuracy(in %): 95.0 Multinomial Naive Bayes Feature vectors represent the frequencies with which certain events have been generated by a multinomial distribution. This is the event model typically used for document classification. Bernoulli Naive Bayes In the multivariate Bernoulli event model, features are independent booleans (binary variables) describing inputs. Like the multinomial model, this model is popular for document classification tasks, where binary term occurrence(i.e. a word occurs in a document or not) features are used rather than term frequencies(i.e. frequency of a word in the document). Advantages of Naive Bayes ClassifierEasy to implement and computationally efficient.Effective in cases with a large number of features.Performs well even with limited training data.It performs well in the presence of categorical features. For numerical features data is assumed to come from normal distributionsDisadvantages of Naive Bayes ClassifierAssumes that features are independent, which may not always hold in real-world data.Can be influenced by irrelevant attributes.May assign zero probability to unseen events, leading to poor generalization.Applications of Naive Bayes Classifier Spam Email Filtering : Classifies emails as spam or non-spam based on features. Text Classification : Used in sentiment analysis, document categorization, and topic classification. Medical Diagnosis: Helps in predicting the likelihood of a disease based on symptoms. Credit Scoring: Evaluates creditworthiness of individuals for loan approval. Weather Prediction : Classifies weather conditions based on various factors.As we reach to the end of this article, here are some important points to ponder upon: In spite of their apparently over-simplified assumptions, naive Bayes classifiers have worked quite well in many real-world situations, famously document classification and spam filtering. They require a small amount of training data to estimate the necessary parameters.Naive Bayes learners and classifiers can be extremely fast compared to more sophisticated methods. The decoupling of the class conditional feature distributions means that each distribution can be independently estimated as a one dimensional distribution. This in turn helps to alleviate problems stemming from the curse of dimensionality.ConclusionIn conclusion, Naive Bayes classifiers, despite their simplified assumptions, prove effective in various applications, showcasing notable performance in document classification and spam filtering. Their efficiency, speed, and ability to work with limited data make them valuable in real-world scenarios, compensating for their naive independence assumption. Frequently Asked Questions on Naive Bayes ClassifiersWhat is Naive Bayes real example?Naive Bayes is a simple probabilistic classifier based on Bayes’ theorem. It assumes that the features of a given data point are independent of each other, which is often not the case in reality. However, despite this simplifying assumption, Naive Bayes has been shown to be surprisingly effective in a wide range of applications. Why is it called Naive Bayes?Naive Bayes is called naive because it assumes that the features of a data point are independent of each other. This assumption is often not true in reality, but it does make the algorithm much simpler to compute. What is an example of a Bayes classifier?A Bayes classifier is a type of classifier that uses Bayes’ theorem to compute the probability of a given class for a given data point. Naive Bayes is one of the most common types of Bayes classifiers. What is better than Naive Bayes?There are several classifiers that are better than Naive Bayes in some situations. For example, logistic regression is often more accurate than Naive Bayes, especially when the features of a data point are correlated with each other. Can Naive Bayes probability be greater than 1?No, the probability of an event cannot be greater than 1. The probability of an event is a number between 0 and 1, where 0 indicates that the event is impossible and 1 indicates that the event is certain.>