Ce este Naive Bayes Classifier? [Explicat cu un exemplu]
Publicat: 2020-12-28Există atât de multe situații când lucrați la învățarea automată (ML), învățarea profundă (DL), extragerea datelor dintr-un set de date, programarea pe Python sau procesarea limbajului natural (NLP) în care vi se cere să diferențieți obiecte bazate pe atribute specifice. Un clasificator este un model de învățare automată utilizat în acest scop. Clasificatorul Naive Bayes este cheia acestei postări pe blog pe care o vom afla în continuare.
Teorema lui Bayes
Matematicianul britanic Reverend Thomas Bayes, teorema lui Bayes este o formulă matematică folosită pentru a determina probabilitatea condiționată, care este probabilitatea ca un rezultat să apară pe baza unui rezultat anterior.
Sursă
Folosind această formulă, putem găsi probabilitatea A când B a apărut.
Aici,
A este propoziția;

B este dovada;
P(A) este probabilitatea anterioară a propoziției;
P(B) este probabilitatea anterioară a dovezilor;
P(A/B) se numește posterior și
P(B/A) se numește probabilitate.
Prin urmare,
P osterior = (Versibilitatea) (Propoziție în probabilitate anterioară)
_________________________________
Dovezi Probabilitate anterioară
Această formulă presupune că predictorii sau caracteristicile sunt independente, iar prezența cuiva nu afectează caracteristica altuia. Prin urmare, se numește „naiv”.
Exemplu de afișare a clasificatorului Bayes naiv
Luăm un exemplu de înțelegere mai bună a subiectului.
Declarație problemă:
Creăm un clasificator care arată dacă un text este despre sport sau nu.
Datele de antrenament au cinci propoziții:
Propoziție | Eticheta |
„Un joc grozav” | Sport |
„Alegerile s-au încheiat” | Nu sport |
„Potrivit foarte curat” | Sport |
„Au fost alegeri strânse” | Nu sport |
„Un joc curat, dar de uitat” | Sport |
Aici, trebuie să găsiți propoziția „Un joc foarte aproape” de care etichetă?
Naive Bayes, ca clasificator, calculează probabilitatea propoziției „Un joc foarte apropiat” este Sport cu probabilitatea „ Nu sport”.
Din punct de vedere matematic, vrem să știm P (Sport | un joc foarte apropiat), probabilitatea etichetei Sport în propoziția „Un joc foarte apropiat”.
Acum, următorul pas este calcularea probabilităților.
Dar înainte de asta, să aruncăm o privire la câteva concepte.
Inginerie caracteristică
Mai întâi trebuie să stabilim caracteristicile de utilizat în timpul creării unui model de învățare automată. Caracteristicile sunt bucăți de informații din textul dat algoritmului.
În exemplul de mai sus, avem date ca text. Deci, trebuie să convertim textul în numere în care vom efectua calcule.
Prin urmare, în loc de text, vom folosi frecvențele cuvintelor care apar în text. Caracteristicile vor fi numărul acestor cuvinte.
Aplicarea teoremei lui Bayes
Vom converti probabilitatea care urmează să fie calculată folosind numărul de frecvență a cuvintelor. Pentru aceasta, vom folosi Teorema lui Bayes și câteva concepte de bază de probabilitate.
P(A/B) = P(B/A) x P(A)
______________
P(B)
Avem P (Sport | un joc foarte apropiat), iar folosind teorema Bayes, vom contracara probabilitatea condiționată:
P (sport/ un joc foarte apropiat) = P(un joc foarte apropiat/ sport) x P(sport)
____________________________
P (un joc foarte apropiat)
Vom abandona același divizor pentru ambele etichete și vom compara
P(un joc foarte apropiat/Sport) x P(Sport)
Cu
P(un joc foarte apropiat/ Nu sport) x P(Nu sport)
Putem calcula probabilitățile calculând contorizarea propoziției „Un joc foarte aproape” apare în eticheta „Sport”. Pentru a determina P (un joc foarte apropiat | Sport), împărțiți-l la total.
Dar, în datele de antrenament, „Un joc foarte aproape” nu pare nicăieri, așa că această probabilitate este zero.
Modelul nu va fi de mare folos fără ca fiecare propoziție pe care dorim să o clasificăm să fie prezentă în datele de antrenament.
Clasificator Bayes naiv
Acum vine partea de bază aici, " Naiv". Fiecare cuvânt dintr-o propoziție este independent de celălalt, nu ne uităm la propozițiile întregi, ci la cuvintele individuale. Aflați mai multe despre clasificatorul naiv Bayes.
P(un joc foarte apropiat) = P(a) x P(foarte) x P(aproape) x P(joc)
Această presupunere este, de asemenea, puternică și utilă. Pasul următor este aplicarea:
P(un joc foarte apropiat/Sport) = P(a/Sport) x P(foarte/Sport) x P(aproape/Sport) x P(joc/Sport)
Aceste cuvinte individuale apar de multe ori în datele de antrenament pe care le putem calcula.
Probabilitatea de calcul
Pasul final este de a calcula probabilitățile și de a vedea care dintre ele este mai mare .
Mai întâi, calculăm probabilitatea a priori a etichetelor: pentru propozițiile din datele de antrenament date. Probabilitatea ca acesta să fie Sport P (Sport) va fi ⅗, iar P (Nu Sport) va fi ⅖.
În timp ce calculăm P (joc/ Sport), numărăm de câte ori apare cuvântul „joc” în textul Sport (aici 2) împărțit la cuvintele în sport (11).

P(joc/Sport) = 2/11
Dar, cuvântul „aproape” nu este prezent în niciun text Sport !
Aceasta înseamnă P (închidere | Sport) = 0 și este incomod, deoarece îl vom înmulți cu alte probabilități,
P(a/Sport) x P(foarte/Sport) x 0 x P(joc/Sport)
Rezultatul final va fi 0, iar întregul calcul va fi anulat. Dar nu asta ne dorim, așa că căutăm o altă cale.
Netezire Laplace
Putem elimina problema de mai sus cu netezirea Laplace, unde vom însuma 1 la fiecare numărare; astfel încât să nu fie niciodată zero.
Vom adăuga cuvintele numerice posibile la divizor, iar împărțirea nu va fi mai mare de 1.
În acest caz, setul de cuvinte posibile sunt
['a', 'grozat', 'foarte', 'peste', 'ea', 'dar', 'joc', 'meci', 'curat', 'election', 'inchide', 'the', ' a fost', 'uitat'] .
Numărul posibil de cuvinte este 14; prin aplicarea netezirii Laplace,
P(joc/Sport) = 2+1
___________
11 + 14
Rezultatul final:
Cuvânt | P (cuvânt | Sport) | P (cuvânt | Nu sport) |
A | (2 + 1) ÷ (11 + 14) | (1 + 1) ÷ (9 + 14) |
foarte | (1 + 1) ÷ (11 + 14) | (0 + 1) ÷ (9 + 14) |
închide | (0 + 1) ÷ (11 + 14) | (1 + 1) ÷ (9 + 14) |
joc | (2 + 1) ÷ (11 + 14) | (0 + 1) ÷ (9 + 14) |
Acum, înmulțind toate probabilitățile pentru a găsi care este mai mare:
P(a/Sport) x P(foarte/Sport) x P(joc/Sport)x P(joc/Sport)x P(Sport)
= 2,76 x 10 ^-5
= 0,0000276
P(a/Nesport) x P(foarte/Nesport) x P(joc/Nonsport)x P(joc/Nonsport)x P(Nonsport)
= 0,572 x 10 ^-5
= 0,00000572
Prin urmare, am primit în sfârșit clasificatorul nostru care dă „Un joc foarte aproape” eticheta Sport, deoarece probabilitatea sa este mare și deducem că propoziția aparține categoriei Sport.
Checkout: Modelele de învățare automată explicate
Tipuri de clasificator Bayes naiv
Acum că am înțeles ce este un Naive Bayes Classifier și am văzut și un exemplu, să vedem tipurile lui:
1. Clasificator Bayes multinomial naiv
Acesta este folosit mai ales pentru problemele de clasificare a documentelor, indiferent dacă un document aparține unor categorii precum politică, sport, tehnologie etc. Predictorul utilizat de acest clasificator este frecvența cuvintelor din document.
2. Bernoulli Naive Bayes Clasifier
Acesta este similar cu clasificatorul multinomial Naive Bayes, dar predictorii săi sunt variabile booleene. Parametrii pe care îi folosim pentru a prezice variabila de clasă preiau numai valorile da sau nu. De exemplu, dacă un cuvânt apare într-un text sau nu.
3. Clasificator Bayes naiv gaussian
Când predictorii iau o valoare constantă, presupunem că aceste valori sunt eșantionate dintr-o distribuție gaussiană.
Sursă

Deoarece valorile prezente în setul de date se modifică, formula probabilității condiționate se schimbă în,
Sursă
Concluzie
Sperăm să vă putem ghida despre ce este Naive Bayes Classifier și cum este folosit pentru a clasifica textul. Această metodă simplă face minuni în problemele de clasificare. Indiferent dacă sunteți sau nu un expert în învățare automată, vă puteți construi propriul clasificator Naive Bayes fără a petrece ore întregi pe codare.
Dacă sunteți interesat să aflați mai multe, consultați programele exclusive Upgrad în învățarea automată. Clasificatori de învățare cu upGrad: dați un impuls carierei dvs. cu cunoștințele de învățare automată și abilitățile de învățare profundă. La upGrad Education Pvt. Ltd. , oferim un program de certificare atent conceput și îndrumat de experți din industrie.
- Acest curs intensiv de peste 240 de ore este special conceput pentru profesioniștii care lucrează.
- Veți lucra la mai mult de cinci proiecte industriale și studii de caz.
- Veți primi asistență în carieră la 360 de grade cu un mentor dedicat pentru succesul studenților și un mentor în carieră.
- Veți primi asistență pentru plasarea dvs. și veți învăța să construiți un CV puternic.
Aplica acum!