Algoritmul Bayes naiv în învățarea automată

Algoritmul naiv de clasificare Bayes

Algoritmul naiv de clasificare Bayes

Clasificatorul este un algoritm de învățare automată care clasifică datele într-una sau mai multe dintr-un set de „clase”. Clasificatorul de e-mail este un exemplu de clasificator care scanează e-mailurile pentru a le filtra după eticheta clasei: Spam sau Not Spam.

Clasificatorul naiv Bayes în învățarea automată este o învățare automată supravegheată pentru sarcini de clasificare.

Algoritmul naiv de clasificare Bayes

Naive Bayes este folosit pentru rezolvarea problemelor de clasificare. Acesta prezice pe baza probabilității unui obiect. Naive Bayes se bazează pe teorema Bayes și este folosit în principal pentru clasificarea textului. Naive Bayes este un algoritm de clasificare probabilistic care este ușor de implementat și rapid de antrenat.

Deoarece clasificatorul Naive Bayes se bazează pe teorema Bayes, deci este cunoscut ca clasificator de probabilitate. Acesta prezice pe baza probabilității unui element.

De ce să fii numit Naïve Bayes?

Clasificatorul naiv Bayes are două cuvinte: naiv și Bayes. De ce Navie? Acest algoritm tratează toate propozițiile de cuvinte ca la fel. De exemplu, „Tu ești” și „Ești tu” sunt aceleași pentru acest algoritm. Nu depinde de caracteristici sau de apariția caracteristicilor. Dacă doriți să identificați fructele Măr, atunci aveți nevoie de culoare roșie, formă sferică, gust dulce pentru a recunoaște ca măr. Înseamnă că aceste caracteristici sunt independente unele de altele.

  • Clasificatorul naiv Bayes presupune că caracteristicile sunt independente unele de altele. Deoarece acest lucru este rareori posibil în datele din viața reală, clasificatorul este numit naiv.
  • Acest algoritm de clasificare se bazează pe teorema Bayes, cunoscută sub numele de Naive Bayes Classifier.

Teorema lui Bayes naiv

Teorema lui Bayes este folosită pentru a găsi probabilitatea unei ipoteze cu probabilități condiționate dependente de cunoștințele anterioare. Această teoremă poartă numele lui Thomas Bayes. Clasificatorul naiv Bayes funcționează pe principiul probabilității condiționate, așa cum este dat de teorema Bayes.

Pentru a înțelege teorema lui Bayes, să ne uităm la un exemplu simplu de clasificare Bayes naiv de aruncare a două monede. Putem obține aceste spații de probă aruncând două monede: {HH, HT, TH, TT}. Deci, probabilitățile acestor evenimente vor fi:

  • Obținerea a două capete = 1/4
  • Cel puțin o coadă = 3/4
  • A doua monedă fiind cap, prima monedă este coada = 1/2
  • Obținerea a două capete având prima monedă este un cap = 1/2

Teorema lui Bayes calculează probabilitatea ca un eveniment să se întâmple pe baza probabilității unui eveniment diferit care a avut deja loc. Formula pentru teorema Bayes este dată astfel:

P(A|B) = (P(B|A) * P(A)) / P(B)

P(A|B) Probabilitatea chiar A atunci când chiar B a apărut deja. Probabilitatea P(B) nu trebuie să fie zero.

  • Trebuie să găsiți probabilitatea evenimentului A, care este dată când evenimentul B (dovezi) este adevărată.
  • P(A) este a priori (a priori, adică probabilitatea unui eveniment observat înainte de demonstrare) a lui A. Aici, evenimentul B este valoarea unei instanțe necunoscute.
  • P(A|B) este probabilitatea posterioară a evenimentului B, adică probabilitatea evenimentului după analizarea dovezilor.

Exemplu de lucru al Clasificatorului lui Naïve Bayes

Să luăm un exemplu de cumpărături pentru a înțelege funcționarea Bayes Naive Classifier. În acest set de date, există un mic eșantion de set de date de 30 de rânduri pentru acest exemplu.

Setul de date

Exemplu de lucru al clasificatorului Naïve Bayes

Problema este de a prezice dacă o persoană va cumpăra un produs într-o combinație specifică de Zi, Reducere și Livrare Gratuită folosind Teorema Naive Bayes.

Exemplu de lucru al clasificatorului Naïve Bayes

Pas 1) Vom crea tabele de frecvență pentru fiecare atribut folosind tipurile de intrare menționate în setul de date, cum ar fi zile, reducere și livrare gratuită.

Exemplu de lucru al clasificatorului Naïve Bayes

Lăsați evenimentul „Cumpărare” notat cu „A”, iar variabilele independente, și anume „Reducere”, „Livrare gratuită” și „Ziu”, notate cu „B”. Vom folosi aceste evenimente și variabile pentru a aplica teorema lui Bayes.

Pas 2) Acum să calculăm tabelele de probabilitate unul câte unul.

Exemplu de lucru al clasificatorului Naïve Bayes

Exemplu 1:

Pe baza acestui tabel de probabilitate, vom calcula probabilitățile condiționate ca mai jos.

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

Și, găsiți P(A/B) folosind teorema 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

În mod similar, dacă A este Cumpărare, atunci

= P(Buy / Weekday)
= P(Weekday / Buy) * P(Buy) / P(Weekday)
= (9/24 * 24/30) / (11/30)
= 0.8181

Notă: Deoarece P(Cumpărare | Ziua săptămânii) este mai mare decât P (Fără cumpărare | Ziua săptămânii), putem concluziona că un client va cumpăra cel mai probabil produsul într-o zi a săptămânii.

Pas 3) În mod similar, putem calcula probabilitatea de apariție a unui eveniment pe baza tuturor celor trei variabile. Acum vom calcula tabelele de probabilitate pentru toate cele trei variabile folosind tabelele de frecvență de mai sus.

Exemplu de lucru al Clasificatorului lui Naïve Bayes

Exemplu 2:

Acum, folosind aceste trei tabele de probabilitate, vom calcula dacă un client este probabil să facă o achiziție pe baza unei combinații specifice de „Ziu”, „Reducere” și „Livrare gratuită”.

Aici, să luăm o combinație a acestor factori:

  • Zi = Sărbătoare
  • Reducere = Da
  • Livrare gratuită = Da

Când, A = Cumpărați

Calculați probabilitatea condiționată de cumpărare pentru următoarea combinație de zi, reducere și livrare gratuită.

Unde B este:

  • Zi = Sărbătoare
  • Reducere = Da
  • Livrare gratuită = Da

Și A = Cumpărați

Prin urmare,

= 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

Când, A = Fără cumpărare

În mod similar, Calculați probabilitatea condiționată de cumpărare pentru următoarea combinație de zi, reducere și livrare gratuită.

Unde B este:

  • Zi = Sărbătoare
  • Reducere = Da
  • Livrare gratuită = Da

Și A = Fără cumpărare

Prin urmare,

= 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

Pas 4) Prin urmare,

Probabilitatea de cumpărare = 0.986

Probabilitatea de a nu cumpăra = 0.027

În cele din urmă, avem probabilități condiționate de a cumpăra în această zi. Să generalizăm acum aceste probabilități pentru a obține Probabilitatea evenimentelor.

  • Suma probabilităților = 0.986 + 0.027 = 1.013
  • Probabilitatea de cumpărare = 0.986 / 1.013 = 97.33 %
  • Probabilitatea de a nu cumpăra = 0.027 / 1.013 = 2.67 %

Rețineți că, deoarece 97.33% este mai mare decât 2.67%. Putem concluziona că clientul mediu va cumpăra într-o vacanță cu reducere și livrare gratuită.

Tipuri de model Bayes naiv

Există multe tipuri de clasificatori Bayes naivi. Aici am discutat clasificatorii Multinomial, Bernoulli și Gaussian Naive Bayes.

1. Bayes naiv multinomial

Acest tip de model Naive Bayes este utilizat pentru problemele de clasificare a documentelor. Funcționează cu caracteristici care reprezintă frecvența cuvintelor dintr-un document. Clasificatorul ia în considerare apariția și numărul de cuvinte pentru a determina probabilitatea ca un document să aparțină unei categorii specifice, cum ar fi sport, politică sau tehnologie.

2. Bernoulli Naive Bayes

Acesta este similar cu multinomul Naive Bayes. Clasificatorul Bernoulli Naive Bayes este utilizat pentru sarcinile de clasificare a documentelor. Cu toate acestea, folosește predictori booleeni. Reprezintă dacă un cuvânt este prezent sau nu și ia doar valori Da sau Nu. Clasificatorul calculează probabilitățile în funcție de faptul că un cuvânt apare sau nu în text.

3. Bayes naiv gaussian

Acest clasificator este utilizat în cazul valorii continue, dar nu a valorii discrete. Acest clasificator calculează probabilitățile folosind parametrii Gaussian distribuție, adică media și varianța.

Bayes naiv gaussian

Formula pentru probabilitatea condiționată se schimbă în,

Bayes naiv gaussian

Beneficiile și limitările Clasificatorului Naive Bayes

Există diverse avantaje și dezavantaje ale algoritmului Naive Bayes în învățarea automată.

Beneficiile Naive Bayes Classifier

  • Simplitate și eficiență: Naive Bayes este simplu și ușor de antrenat și implementat. Este eficient datorită costului de calcul scăzut. Poate gestiona seturi mari de date eficient.
  • Antrenament rapid și predicție: Naive Bayes nu necesită atât de multe date de antrenament din cauza independenței dintre caracteristici. Poate prezice rapid odată ce modelul este antrenat.
  • scalabilitate: Naive Bayes poate gestiona seturi de date cu dimensiuni mari, cu un număr mare de caracteristici. Funcționează bine chiar și atunci când numărul de caracteristici este mai mare decât numărul de exemple de antrenament. Se scalează în funcție de numărul de puncte de date și de predictori. Se ocupă atât de date continue, cât și de date discrete.
  • Robustitate la caracteristici irelevante: Nu este sensibil la caracteristicile irelevante.
  • Funcționează bine cu seturi de antrenament mici: Naive Bayes poate oferi rezultate rezonabile chiar și cu date limitate de antrenament. Poate face față situațiilor în care numărul de instanțe de instruire este mic. Nu necesită atât de multe date de antrenament.

Limitarea clasificatorului naiv Bayes

Bayes naiv în masina de învățare presupune că toate caracteristicile sunt independente unele de altele. Deci, nu poate învăța relațiile dintre diferitele caracteristici ale datelor. Ea tratează fiecare caracteristică ca și cum nu ar avea nicio relație cu celelalte.

Pentru a depăși această problemă, puteți utiliza Arbori de decizie, Random Forests, Support Vector Machines (SVM), Rețele neuronale etc. Acești algoritmi au capacitatea de a învăța relații complexe și dependențe între caracteristicile din date. Deci acestea pot prezice rezultate mai precise.

Aplicații ale Clasificatorului Naive Bayes

Deoarece acest algoritm este rapid și eficient, îl puteți utiliza pentru a face predicții în timp real.

Detectarea spamului

Servicii de e-mail (cum ar fi Gmail) utilizați acest algoritm pentru a determina dacă un e-mail este spam. Acest algoritm este excelent pentru filtrarea spam-ului.

Analiza sentimentelor

Poate clasifica textul ca pozitiv, negativ sau neutru pe baza unor caracteristici precum alegerea cuvintelor, structura propoziției și contextul. Găsește aplicații în monitorizarea rețelelor sociale, recenziile clienților și studiile de piață.

Clasificarea documentelor

Poate clasifica documentele în categorii precum sport, politică, tehnologie sau finanțe, în funcție de frecvența sau prezența unor cuvinte sau caracteristici specifice în document.

Sisteme de recomandare

Poate analiza preferințele utilizatorilor, datele istorice și caracteristicile articolului pentru a prezice interesele sau preferințele utilizatorilor pentru recomandarea de produse, filme sau articole.

Acest algoritm de clasificare este folosit și în recunoașterea feței, predicția vremii, diagnosticul medical, cumpărăturile, clasificarea știrilor etc. Puteți implementa Naive Bayes în Python. Există clasificatorul Naive Bayes sklearn, adică sklearn.naive_bayes. Este modulul care implementează acest algoritm.

Concluzie

Algoritmii Naive Bayes din învățarea automată sunt clasificatori utilizați în cea mai mare parte în detectarea spam-ului, clasificarea știrilor, analiza sentimentelor, predicția vremii, cumpărături etc. Algoritmii Naive Bayes se bazează pe teorema Bayes. Acest Algoritmul este simplu și ușor de implementat. Deoarece este rapid, îl putem folosi în aplicații în timp real. Cel mai mare dezavantaj al său este că presupune caracteristici independente (Deoarece caracteristicile independente sunt rareori posibile în viața reală, deci este cunoscut sub numele de Naiv). Tratează fiecare caracteristică ca fiind egală. Pentru a depăși acest dezavantaj, puteți utiliza și alți clasificatori, cum ar fi Decision Tree, Random Forest, Support Vector Machine (SVM) etc.