Naivi Beijesa klasifikatori, algoritmu saime, kuras pamatā ir Beijesa teorēma. Neskatoties uz naivo pieņēmumu par funkciju neatkarību, šie klasifikatori tiek plaši izmantoti to vienkāršības un efektivitātes dēļ mašīnmācībā. Rakstā ir apskatīta teorija, ieviešana un pielietojumi, izgaismojot to praktisko lietderību, neskatoties uz pārāk vienkāršotiem pieņēmumiem.
Kas ir Naive Bayes klasifikatori?
Naivi Beijesa klasifikatori ir klasifikācijas algoritmu kolekcija, kuras pamatā ir Beijesa teorēma. Tas nav atsevišķs algoritms, bet gan algoritmu saime, kurā visiem tiem ir kopīgs princips, t.i., katrs klasificēto pazīmju pāris ir neatkarīgs viens no otra. Vispirms apskatīsim datu kopu.
Viens no vienkāršākajiem un efektīvākajiem klasifikācijas algoritmiem, Naive Bayes klasifikators palīdz ātri attīstīt mašīnmācības modeļus ar ātras prognozēšanas iespējām.
Klasifikācijas problēmu risināšanai tiek izmantots naivais Bayes algoritms. To ļoti izmanto teksta klasifikācijā. Teksta klasifikācijas uzdevumos datiem ir liela dimensija (jo katrs vārds attēlo vienu datu pazīmi). To izmanto surogātpasta filtrēšanai, noskaņojuma noteikšanai, reitingu klasifikācijai utt. Naivās Bayes izmantošanas priekšrocība ir tās ātrums. Tas ir ātrs, un prognozēšana ir vienkārša, izmantojot lielu datu dimensiju.
Šis modelis prognozē varbūtību, ka gadījums pieder klasei ar noteiktu pazīmju vērtību kopu. Tas ir varbūtības klasifikators. Tas ir tāpēc, ka tiek pieņemts, ka viena modeļa iezīme ir neatkarīga no citas pazīmes esamības. Citiem vārdiem sakot, katra iezīme veicina prognozes bez savstarpējas saistības. Reālajā pasaulē šis nosacījums apmierina reti. Apmācības un prognozēšanas algoritmā tā izmanto Bayes teorēmu
Kāpēc to sauc par Naive Bayes?
Nosaukuma naivā daļa norāda uz vienkāršojošu pieņēmumu, ko izdarījis Naivā Beijesa klasifikators. Klasifikators pieņem, ka novērojuma aprakstīšanai izmantotās pazīmes ir nosacīti neatkarīgas, ņemot vērā klases apzīmējumu. Nosaukuma Bayes daļa attiecas uz godājamo Tomasu Beizu, 18. gadsimta statistiķi un teologu, kurš formulēja Beijesa teorēmu.
Apsveriet izdomātu datu kopu, kas apraksta laika apstākļus golfa spēlēšanai. Ņemot vērā laika apstākļus, katrā kortežā apstākļi tiek klasificēti kā piemēroti (Jā) vai nepiemēroti (Nē) golfa spēlēšanai. Šeit ir mūsu datu kopas tabulas attēlojums.
Outlook | Temperatūra | Mitrums | Vējains | Spēlēt golfu | |
---|---|---|---|---|---|
0 | Lietains | Karsts | Augsts | Nepatiesi | Nē |
1 | Lietains | Karsts | Augsts | Taisnība | Nē |
2 | Apmācies | Karsts | Augsts | Nepatiesi | Jā |
3 | Saulains | Viegls | Augsts | Nepatiesi | Jā |
4 | Saulains | Forši | Normāls | Nepatiesi | Jā |
5 | Saulains | Forši | Normāls | Taisnība | Nē |
6 | Apmācies | Forši | Normāls | Taisnība | Jā |
7 | Lietains | Viegls | Augsts | Nepatiesi | Nē |
8 | Lietains | Forši | Normāls | Nepatiesi | Jā |
9 | Saulains | Viegls | Normāls | Nepatiesi | Jā |
10 | Lietains | Viegls | Normāls | Taisnība | Jā |
vienpadsmit | Apmācies | Viegls | Augsts | Taisnība | Jā |
12 | Apmācies | Karsts | Normāls | Nepatiesi | Jā |
13 | Saulains | Viegls | Augsts | Taisnība | Nē |
Datu kopa ir sadalīta divās daļās, proti, funkciju matrica un atbildes vektors .
- Iezīmju matrica satur visus datu kopas vektorus(rindas), kurā katrs vektors sastāv no vērtības atkarīgās funkcijas . Iepriekš minētajā datu kopā funkcijas ir “Outlook”, “Temperature”, “Mitrums” un “Windy”.
- Atbildes vektors satur vērtību klases mainīgais (prognoze vai izvade) katrai līdzekļu matricas rindai. Iepriekš minētajā datu kopā klases mainīgā nosaukums ir “Spēlēt golfu”.
Naivā Beiza pieņēmums
Pamata Naive Bayes pieņēmums ir tāds, ka katra iezīme nodrošina:
- Funkciju neatkarība: Datu pazīmes ir nosacīti neatkarīgas viena no otras, ņemot vērā klases marķējumu.
- Nepārtrauktās funkcijas parasti tiek izplatītas: Ja pazīme ir nepārtraukta, tiek pieņemts, ka tas ir normāli sadalīts katrā klasē.
- Diskrētajām funkcijām ir daudznomu sadalījums: Ja pazīme ir diskrēta, tiek pieņemts, ka tai ir daudznomu sadalījums katrā klasē.
- Funkcijas ir vienlīdz svarīgas: Tiek pieņemts, ka visas funkcijas vienlīdz veicina klases marķējuma prognozēšanu.
- Nav trūkstošo datu: Datos nedrīkst būt trūkstošās vērtības.
Saistībā ar mūsu datu kopu šo jēdzienu var saprast šādi:
- Mēs pieņemam, ka neviens pazīmju pāris nav atkarīgs. Piemēram, temperatūrai “karsta” nav nekāda sakara ar mitrumu, vai perspektīvai “lietus” nav ietekmes uz vējiem. Tādējādi tiek pieņemts, ka funkcijas ir tādas neatkarīgs .
- Otrkārt, katrai funkcijai tiek piešķirts vienāds svars (vai nozīme). Piemēram, zinot tikai temperatūru un mitrumu, nevar precīzi paredzēt rezultātu. Neviens no atribūtiem nav nenozīmīgs, un tiek pieņemts, ka tas veicina vienādi uz rezultātu.
Naive Bayes pieņēmumi parasti nav pareizi reālās situācijās. Patiesībā pieņēmums par neatkarību nekad nav pareizs, bet praksē bieži darbojas labi. Tagad, pirms pāriet pie naivā Beiza formulas, ir svarīgi zināt Beijesa teorēmu.
Beijesa teorēma
Bayes teorēma nosaka kāda notikuma iespējamību, ņemot vērā cita jau notikuša notikuma varbūtību. Bayes teorēma ir matemātiski formulēta kā šāds vienādojums:
kur A un B ir notikumi un P(B) ≠ 0
- Būtībā mēs cenšamies atrast notikuma A varbūtību, ņemot vērā, ka notikums B ir patiess. Notikums B tiek saukts arī par pierādījumi .
- P(A) ir priori no A (iepriekšējā varbūtība, t.i., notikuma varbūtība pirms pierādījumu saskatīšanas). Pierādījums ir nezināmas instances atribūta vērtība (šeit tas ir notikums B).
- P(B) ir marginālā varbūtība: pierādījumu varbūtība.
- P(A|B) ir B posteriori iespējamība, t.i., notikuma varbūtība pēc pierādījumu novērošanas.
- P(B|A) ir varbūtības varbūtība, t.i., varbūtība, ka hipotēze piepildīsies, pamatojoties uz pierādījumiem.
Tagad attiecībā uz mūsu datu kopu mēs varam piemērot Bayes teorēmu šādā veidā:
kur y ir klases mainīgais un X ir atkarīgais pazīmju vektors (lieluma n ) kur:
Lai notīrītu, pazīmju vektora un atbilstošā klases mainīgā piemērs var būt: (skatiet datu kopas 1. rindu)
X = (Rainy, Hot, High, False)>
y = No>
Tātad būtībā,
Saistībā ar mūsu datu kopu šo jēdzienu var saprast šādi:
- Mēs pieņemam, ka neviens pazīmju pāris nav atkarīgs. Piemēram, temperatūrai “karsta” nav nekāda sakara ar mitrumu, vai perspektīvai “lietus” nav ietekmes uz vējiem. Tādējādi tiek pieņemts, ka funkcijas ir tādas neatkarīgs .
- Otrkārt, katrai funkcijai tiek piešķirts vienāds svars (vai nozīme). Piemēram, zinot tikai temperatūru un mitrumu, nevar precīzi paredzēt rezultātu. Neviens no atribūtiem nav nenozīmīgs, un tiek pieņemts, ka tas veicina vienādi uz rezultātu.
Tagad ir pienācis laiks Beijesa teorēmai izteikt naivu pieņēmumu, kas ir: neatkarība starp pazīmēm. Tātad tagad mēs sadalāmies pierādījumi neatkarīgās daļās.
Tagad, ja kādi divi notikumi A un B ir neatkarīgi, tad
P(A,B) = P(A)P(B)>
Tādējādi mēs nonākam pie rezultāta:
ko var izteikt šādi:
abstraktā klase java
Tagad, tā kā saucējs konkrētajai ievadei paliek nemainīgs, mēs varam noņemt šo terminu:
Tagad mums ir jāizveido klasifikatora modelis. Šim nolūkam mēs atrodam dotās ievades kopas varbūtību visām iespējamām klases mainīgā vērtībām un un uzņemt izvadi ar maksimālu varbūtību. To matemātiski var izteikt šādi:
Tātad, visbeidzot, mums ir jāaprēķina uzdevums
elektrības priekšrocības
Lūdzu, ņemiet vērā, ka
Dažādie naivie Bayes klasifikatori atšķiras galvenokārt ar pieņēmumiem, ko tie izdara attiecībā uz izplatību
Mēģināsim manuāli lietot iepriekš minēto formulu mūsu laikapstākļu datu kopā. Šim nolūkam mums ir jāveic daži mūsu datu kopas priekšaprēķini.
Mums jāatrod
Tātad iepriekš attēlā mēs esam aprēķinājuši
Tāpat mums ir jāatrod klases varbūtības
Tagad mēs esam pabeiguši iepriekšējus aprēķinus, un klasifikators ir gatavs!
Izmēģināsim to ar jaunu funkciju kopu (sauksim to šodien):
today = (Sunny, Hot, Normal, False)>
un varbūtību nespēlēt golfu nosaka:
Tā kā P(šodien) ir kopīgs abās varbūtībās, mēs varam ignorēt P(šodien) un atrast proporcionālās varbūtības kā:
un
Tagad, kopš
Šos skaitļus var pārvērst varbūtībā, padarot summu vienādu ar 1 (normalizācija):
un
Kopš
Tātad prognoze, ka golfs tiks spēlēts, ir “Jā”.
Iepriekš aprakstītā metode ir piemērojama diskrētiem datiem. Nepārtrauktu datu gadījumā mums ir jāizdara daži pieņēmumi attiecībā uz katras pazīmes vērtību sadalījumu. Dažādie naivie Bayes klasifikatori atšķiras galvenokārt ar pieņēmumiem, ko tie izdara attiecībā uz izplatību
Naivā Beiisa modeļa veidi
Ir trīs Naive Bayes modeļa veidi:
Gausa Naive Bayes klasifikators
Gausa naivajā līcī tiek pieņemts, ka ar katru pazīmi saistītās nepārtrauktās vērtības ir sadalītas atbilstoši Gausa sadalījumam. Tiek saukts arī Gausa sadalījums Normāls sadalījums Uzzīmējot, tas dod zvana formas līkni, kas ir simetriska attiecībā pret pazīmju vidējo vērtību, kā parādīts zemāk:
Atjauninātā perspektīvas līdzekļa iepriekšējo varbūtību tabula ir šāda:
Tiek pieņemts, ka pazīmju iespējamība ir Gausa, tāpēc nosacīto varbūtību nosaka:
Tagad mēs aplūkojam Gaussian Naive Bayes klasifikatora ieviešanu, izmantojot scikit-learn.
| Jā | Nē | P (Jā) | P(Nē) |
---|---|---|---|---|
Saulains | 3 | 2 | 3/9 | 2/5 |
Lietains | 4 | 0 | 4/9 | 0/5 |
Apmācies | 2 | 3 | 2/9 | 3/5 wumpus pasaule |
Kopā | 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.>