Naivni Bayesovi klasifikatorji, družina algoritmov, ki temelji na Bayesovem izreku. Kljub naivni predpostavki o neodvisnosti funkcij se ti klasifikatorji pogosto uporabljajo zaradi svoje preprostosti in učinkovitosti pri strojnem učenju. Članek se poglobi v teorijo, izvedbo in aplikacije ter osvetli njihovo praktično uporabnost kljub preveč poenostavljenim predpostavkam.
Kaj so naivni Bayesovi klasifikatorji?
Naivni Bayesovi klasifikatorji so zbirka klasifikacijskih algoritmov, ki temeljijo na Bayesovem izreku. Ne gre za en sam algoritem, temveč za družino algoritmov, kjer imajo vsi skupno načelo, tj. vsak par lastnosti, ki se razvrščajo, je neodvisen drug od drugega. Za začetek si oglejmo nabor podatkov.
Naivni Bayesov klasifikator, eden najbolj preprostih in učinkovitih algoritmov za razvrščanje, pomaga pri hitrem razvoju modelov strojnega učenja z zmožnostmi hitrega napovedovanja.
Naivni Bayesov algoritem se uporablja za probleme klasifikacije. Zelo se uporablja pri klasifikaciji besedil. Pri nalogah za klasifikacijo besedila podatki vsebujejo visoko dimenzijo (saj vsaka beseda predstavlja eno značilnost v podatkih). Uporablja se pri filtriranju neželene pošte, zaznavanju razpoloženja, razvrščanju ocen itd. Prednost uporabe naivnega Bayesa je njegova hitrost. Je hiter in napovedovanje je enostavno z visoko dimenzijo podatkov.
Ta model napove verjetnost, da primerek pripada razredu z danim nizom vrednosti lastnosti. Je verjetnostni klasifikator. To je zato, ker predpostavlja, da je ena značilnost v modelu neodvisna od obstoja druge lastnosti. Z drugimi besedami, vsaka funkcija prispeva k napovedim brez medsebojne povezave. V resničnem svetu je ta pogoj le redko izpolnjen. Uporablja Bayesov izrek v algoritmu za usposabljanje in napovedovanje
Zakaj se imenuje naivni Bayes?
Naivni del imena označuje poenostavljeno predpostavko Naivnega Bayesovega klasifikatorja. Klasifikator predpostavlja, da so značilnosti, uporabljene za opis opazovanja, pogojno neodvisne glede na oznako razreda. Bayesov del imena se nanaša na prečastitega Thomasa Bayesa, statistika in teologa iz 18. stoletja, ki je oblikoval Bayesov izrek.
Razmislite o izmišljenem naboru podatkov, ki opisuje vremenske razmere za igranje golfa. Glede na vremenske razmere vsaka torka razvrsti pogoje kot primerne (Da) ali neprimerne (Ne) za igranje golfa. Tukaj je tabelarični prikaz našega nabora podatkov.
Outlook | Temperatura | Vlažnost | Vetrovno | Igrati golf | |
---|---|---|---|---|---|
0 | deževno | Vroče | visoko | False | št |
1 | deževno | Vroče | visoko | Prav | št |
2 | Oblačno | Vroče | visoko | False | ja |
3 | Sončno | Blago | visoko | False | ja |
4 | Sončno | Kul | normalno | False | ja |
5 | Sončno | Kul | normalno | Prav | št |
6 | Oblačno | Kul | normalno | Prav | ja |
7 | deževno | Blago | visoko | False | št |
8 | deževno | Kul | normalno | False | ja |
9 | Sončno | Blago | normalno | False | ja |
10 | deževno | Blago | normalno | Prav | ja |
enajst | Oblačno | Blago | visoko | Prav | ja |
12 | Oblačno | Vroče | normalno | False | ja |
13 | Sončno | Blago | visoko | Prav | št |
Nabor podatkov je razdeljen na dva dela, in sicer matriko lastnosti in odzivni vektor .
- Matrika značilnosti vsebuje vse vektorje (vrstice) nabora podatkov, v katerih je vsak vektor sestavljen iz vrednosti odvisne lastnosti . V zgornjem naboru podatkov so funkcije 'Outlook', 'Temperature', 'Humidity' in 'Windy'.
- Vektor odziva vsebuje vrednost razredna spremenljivka (napoved ali izhod) za vsako vrstico matrike značilnosti. V zgornjem naboru podatkov je ime spremenljivke razreda 'Igraj golf'.
Predpostavka naivnega Bayesa
Temeljna predpostavka Naive Bayesa je, da vsaka značilnost naredi:
- Neodvisnost lastnosti: Značilnosti podatkov so pogojno neodvisne druga od druge glede na oznako razreda.
- Neprekinjene funkcije so običajno porazdeljene: Če je značilnost neprekinjena, se domneva, da je normalno porazdeljena znotraj vsakega razreda.
- Diskretne lastnosti imajo multinomske porazdelitve: Če je funkcija diskretna, se domneva, da ima multinomsko porazdelitev znotraj vsakega razreda.
- Lastnosti so enako pomembne: Predpostavlja se, da vse funkcije enako prispevajo k napovedi oznake razreda.
- Brez manjkajočih podatkov: Podatki ne smejo vsebovati manjkajočih vrednosti.
V zvezi z našim naborom podatkov lahko ta koncept razumemo kot:
- Predvidevamo, da noben par funkcij ni odvisen. Na primer, temperatura, ki je 'vroča', nima nobene zveze z vlažnostjo ali pa obeti, ki so 'deževni', ne vplivajo na vetrove. Zato se predpostavlja, da so značilnosti neodvisen .
- Drugič, vsaka funkcija ima enako težo (ali pomembnost). Če na primer samo poznamo temperaturo in vlažnost, ne moremo natančno napovedati izida. Nobeden od atributov ni nepomemben in se domneva, da prispeva enako do izida.
Predpostavke Naive Bayesa v resničnih situacijah na splošno niso pravilne. Pravzaprav predpostavka o neodvisnosti nikoli ni pravilna, vendar pogosto dobro deluje v praksi. Zdaj, preden preidemo na formulo za naivnega Bayesa, je pomembno vedeti o Bayesovem izreku.
Bayesov izrek
Bayesov izrek ugotavlja verjetnost dogodka glede na verjetnost drugega dogodka, ki se je že zgodil. Bayesov izrek je matematično izražen kot naslednja enačba:
kjer sta A in B dogodka in P(B) ≠ 0
- V bistvu poskušamo najti verjetnost dogodka A, če je dogodek B resničen. Dogodek B se imenuje tudi kot dokazi .
- P(A) je priori od A (predhodna verjetnost, tj. verjetnost dogodka, preden so vidni dokazi). Dokaz je vrednost atributa neznane instance (tukaj je to dogodek B).
- P(B) je mejna verjetnost: verjetnost dokazov.
- P(A|B) je posteriorna verjetnost za B, tj. verjetnost dogodka po videnem dokazu.
- P(B|A) je verjetnost verjetnosti, tj. verjetnost, da se bo hipoteza uresničila na podlagi dokazov.
Zdaj, kar zadeva naš nabor podatkov, lahko uporabimo Bayesov izrek na naslednji način:
kjer je y spremenljivka razreda in X vektor odvisne lastnosti (velikosti n ) kje:
kaj je vmesnik
Da pojasnimo, primer vektorja značilnosti in ustrezne spremenljivke razreda je lahko: (glej 1. vrstico nabora podatkov)
X = (Rainy, Hot, High, False)>
y = No>
Torej v bistvu,
V zvezi z našim naborom podatkov lahko ta koncept razumemo kot:
- Predvidevamo, da noben par funkcij ni odvisen. Na primer, temperatura, ki je 'vroča', nima nobene zveze z vlažnostjo ali pa obeti, ki so 'deževni', ne vplivajo na vetrove. Zato se predpostavlja, da so značilnosti neodvisen .
- Drugič, vsaka funkcija ima enako težo (ali pomembnost). Če na primer samo poznamo temperaturo in vlažnost, ne moremo natančno napovedati izida. Nobeden od atributov ni nepomemben in se domneva, da prispeva enako do izida.
Zdaj je čas, da Bayesovemu izreku postavimo naivno predpostavko, ki je, neodvisnost med funkcijami. Torej, zdaj sva se razšla dokazi na samostojne dele.
Zdaj, če sta katera koli dva dogodka A in B neodvisna, potem
P(A,B) = P(A)P(B)>
Tako pridemo do rezultata:
ki se lahko izrazi kot:
Zdaj, ko imenovalec ostaja konstanten za dani vnos, lahko ta izraz odstranimo:
Zdaj moramo ustvariti model klasifikatorja. Za to najdemo verjetnost danega nabora vhodov za vse možne vrednosti spremenljivke razreda in in poberi izhod z največjo verjetnostjo. To je mogoče matematično izraziti kot:
Tako nam končno ostane naloga izračunati
prednosti električne energije
Prosimo, upoštevajte, da
Različni naivni Bayesovi klasifikatorji se razlikujejo predvsem po predpostavkah glede porazdelitve
Poskusimo ročno uporabiti zgornjo formulo na našem naboru vremenskih podatkov. Za to moramo narediti nekaj predizračunov na našem naboru podatkov.
Moramo najti
Torej, na zgornji sliki smo izračunali
Prav tako moramo najti razredne verjetnosti
Zdaj smo končali z našimi predizračuni in klasifikator je pripravljen!
Preizkusimo ga na novem naboru funkcij (imenujmo ga danes):
today = (Sunny, Hot, Normal, False)>
in verjetnost, da ne boste igrali golfa, je podana z:
Ker je P(danes) skupno v obeh verjetnostih, lahko zanemarimo P(danes) in najdemo sorazmerne verjetnosti kot:
in
Zdaj, odkar
Te številke je mogoče pretvoriti v verjetnost tako, da je vsota enaka 1 (normalizacija):
in
Od
Torej je napoved, da se bo igral golf, 'da'.
Metoda, o kateri smo razpravljali zgoraj, je uporabna za diskretne podatke. V primeru zveznih podatkov moramo narediti nekaj predpostavk glede porazdelitve vrednosti vsake značilnosti. Različni naivni Bayesovi klasifikatorji se razlikujejo predvsem po predpostavkah glede porazdelitve
Vrste naivnega Bayesovega modela
Obstajajo tri vrste naivnega Bayesovega modela:
Gaussov naivni Bayesov klasifikator
V Gaussovem naivnem Bayesu se predpostavlja, da so zvezne vrednosti, povezane z vsako značilnostjo, porazdeljene v skladu z Gaussovo porazdelitvijo. Imenuje se tudi Gaussova porazdelitev Normalna porazdelitev Ko je narisana, daje krivuljo v obliki zvona, ki je simetrična glede na povprečje vrednosti lastnosti, kot je prikazano spodaj:
Posodobljena tabela predhodnih verjetnosti za funkcijo Outlook je naslednja:
Predpostavlja se, da je verjetnost značilnosti Gaussova, zato je pogojna verjetnost podana z:
Zdaj si oglejmo izvedbo Gaussovega naivnega Bayesovega klasifikatorja z uporabo scikit-learn.
| ja | št | P (da) | P (ne) kako izstopiti iz zanke while java |
---|---|---|---|---|
Sončno | 3 | 2 | 3/9 | 2/5 |
deževno | 4 | 0 | 4/9 | 0/5 |
Oblačno | 2 | 3 | 2/9 | 3/5 |
Skupaj | 9 | 5 | 100 % | 100 % |
Python
# 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.>