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

⚡ Rezumat inteligent

Naive Bayes este un algoritm de clasificare probabilistică, supravegheat, construit pe teorema lui Bayes, presupunând că fiecare caracteristică contribuie independent. Teoria sa, un atelier perfecționatping De exemplu, cele trei variante de model, beneficiile, limitările și aplicațiile din lumea reală sunt prezentate mai jos.

  • 🔘 Definiție: Un clasificator care etichetează o înregistrare prin compararea probabilității a posteriori a fiecărei clase candidate.
  • ☑️ Presupunere naivă: Fiecare caracteristică este tratată ca fiind independentă condiționat, ceea ce rareori este valabil, dar totuși prezice bine.
  • Formula Bayes: P(A|B) este egal cu P(B|A) înmulțit cu P(A), împărțit la P(B).
  • 🧪 Exemplu lucrat: Ziua, reducerea și livrarea gratuită oferă împreună o probabilitate de cumpărare de 97.33%.
  • 🛠️ Trei variante: Multinomial pentru numărul de cuvinte, Bernoulli pentru prezența cuvintelor, Gaussian pentru valori continue.
  • ⚠️ Prescripţie: Caracteristicile corelate sunt ignorate, astfel încât arborii de decizie sau SVM-urile se potrivesc mai bine datelor dependente.

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

Algoritmul naiv de clasificare Bayes

Un clasificator este un algoritm de învățare automată care sortează datele într-una sau mai multe dintr-un set de „clase”. Un clasificator de e-mail este un exemplu familiar: scanează fiecare mesaj primit și atașează o etichetă de clasă Spam sau Nu este spam.

Clasificatorul Bayes naiv în învățarea automată este un învățare supravegheată algoritm utilizat pentru sarcinile de clasificare.

Diagrama de mai jos prezintă acest flux.

Clasificator Bayes naiv care atribuie o etichetă de clasă unei înregistrări de intrare

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.

Întrucât clasificatorul Bayesian naiv se bazează pe teorema Bayes, este cunoscut și sub denumirea de clasificator de probabilități. Acesta face predicții pe baza probabilității unui element.

De ce se numește Bayes naiv?

Numele „Naive Bayes” are două părți: Naiv și Bayes. De ce naiv? Algoritmul ignoră ordinea în care apar caracteristicile, astfel încât „Ești” și „Ești” arată identic. De asemenea, presupune că nicio caracteristică nu o influențează pe alta. Pentru a recunoaște mărul, folosești culoarea roșie, forma sferică și gustul dulce, iar algoritmul tratează fiecare dintre aceste indicii ca dovezi separate, independente.

  • Clasificatorul Bayesian naiv presupune că caracteristicile sunt independente una de cealaltă. Deoarece acest lucru este rareori posibil în datele din viața reală, clasificatorul se numește naiv.
  • Acest algoritm de clasificare se bazează pe teorema Bayes, de aceea este cunoscut sub numele de Clasificatorul Bayes naiv.

Teorema lui Bayes naiv

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

Pentru a înțelege teorema Bayes, să analizăm un exemplu simplu de aruncare a două monede cu un clasificator Bayes naiv. Putem obține aceste spații eșantion prin aruncarea a 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 Bayes calculează probabilitatea producerii unui eveniment pe baza probabilității unui alt eveniment 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) este probabilitatea evenimentului A atunci când evenimentul B s-a produs 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 probabilitatea a priori a evenimentului A, adică probabilitatea evenimentului înainte de observarea oricărei dovezi. Aici, evenimentul B este valoarea unei instanțe necunoscute.
  • P(A|B) este probabilitatea a posteriori a evenimentului A, adică probabilitatea apariției lui A după analizarea dovezii B.

Exemplu de funcționare al clasificatorului Bayes naiv

Cea mai rapidă modalitate de a vedea cum funcționează formula este să o rulați manual.

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

Setul de date

Magazin de mostreping set de date de 30 de rânduri cu coloane Zi, Reducere, Livrare gratuită și Cumpărare

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.

Tabel de frecvență care numără rezultatele Cumpărării și Necumpărării pentru fiecare valoare a atributului

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ă.

Tabele de frecvență pentru atributele Zi, Reducere și Livrare gratuită

Fie evenimentul „Cumpărare”, notat cu „A”, și variabilele independente, și anume „Reducere”, „Livrare gratuită” și „Zi”, notate cu „B”. Vom folosi aceste evenimente și variabile pentru a aplica teorema Bayes.

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

Tabel de probabilitate pentru atributul Ziua în funcție de Cumpărare și Fără cumpărare

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.

Tabele de probabilitate pentru Ziua, Reducere și Livrare gratuită utilizate în calculul combinat

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 %

Cele două scoruri adunate dau 1.013 în loc de 1, deoarece presupunerea de independență face ca fiecare estimare să fie aproximativă, așadar împărțirea la total le rescalează în procente.

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 modele Bayes naive

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

Variantă Tip de caracteristică Utilizare tipică
Multinomial Număr de cuvinte Clasificarea subiectelor și documentelor
Bernoulli Steaguri binare prezente sau absente Texte scurte și filtrare spam
Gaussian Valori numerice continue Citiri și măsurători ale senzorilor

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.

Curba clopotului gaussian utilizată pentru modelarea caracteristicilor continue în Naive Bayes

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

Formula probabilității condiționate bayesiene naive gaussiene folosind media și varianța

scikit-learn Biblioteca adaugă încă două variante: Complement Naive Bayes pentru text dezechilibrat și Categorical Naive Bayes pentru categorii discrete.

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: Modelul Bayes naiv nu necesită atât de multe date de antrenament datorită independenței dintre caracteristici. Poate face predicții rapide 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: Metoda Bayes naivă poate oferi rezultate rezonabile chiar și cu date de antrenament limitate. Poate gestiona situații în care numărul de instanțe de antrenament este mic.

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.

O a doua avertizare: probabilitățile de clasă pe care le raportează sunt slab calibrate, astfel încât cifra de încredere atașată unei predicții nu este o probabilitate fiabilă.

Pentru a depăși această problemă, puteți utiliza Arbori de decizie, Păduri aleatoare, Mașini cu vectori de suport (SVM), Rețele neuronale etc. Acești algoritmi au capacitatea de a învăța relații și dependențe complexe între caracteristicile datelor. Astfel, aceștia 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 (precum Gmail) utilizează acest algoritm pentru a determina dacă un e-mail este spam. Acest algoritm este excelent pentru filtrarea spamului.

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 utilizat și în recunoașterea facială, predicția vremii, diagnosticul medical, magazinulping, Clasificarea știrilor etc. Puteți implementa metoda Bayes naivă în Python, unde modulul sklearn.naive_bayes oferă fiecare variantă descrisă mai sus.

Întrebări frecvente

Importați varianta de care aveți nevoie din sklearn.naive_bayes, împart datele cu train_test_split, apoi apelează fit() pe rândurile de antrenament și predict() pe rândurile de test. GaussianNB se potrivește caracteristicilor continue, în timp ce MultinomialNB și BernoulliNB gestionează numărătoarea de text și semnalizatoarele de cuvinte binare.

Dacă o categorie nu apare niciodată cu o clasă în antrenament, probabilitatea sa condiționată devine zero și șterge întregul produs. Netezirea Laplace adaugă unu la fiecare numărătoare, astfel încât nimic nu se restrânge la zero. Scikit-learn expune acest lucru ca parametru alfa.

Niciunul nu câștigă în mod categoric. Metoda Bayes naivă se antrenează mai rapid, are nevoie de mai puține date și gestionează text de dimensiuni mari. Regresia logistică modelează caracteristicile corelate și produce probabilități mai bine calibrate. Pe seturi de date text mici, metoda Bayes naivă conduce adesea; cu mai multe date, regresia logistică o depășește.

Pregătiți un set de test și comparați predicțiile cu etichetele reale folosind un matrice de confuzie, apoi se derivă precizia, rechemarea și F1. Acuratețea în sine induce în eroare în cazul datelor dezechilibrate, cum ar fi spamul, unde o clasă domină eșantionul.

Scrieți textul cu litere mici, eliminați punctuația, eliminați cuvintele oprite și, opțional, adăugați jetoanele la rădăcină, apoi transformați fiecare document într-un vector de numărare sau TF-IDF. Variantele Bernoulli preferă steaguri de prezență binare în loc de numărătoare. Aplicați pași identici în timpul antrenamentului și al predicției.

Rețeaua Bayesiană Naivă este cea mai simplă rețea bayesiană: un nod de clasă cu fiecare caracteristică atârnând direct de el și fără legături între caracteristici. O rețea bayesiană generală vă permite să desenați acele muchii de dependență, astfel încât modelează corelații pe care Bayesiană Naivă le ignoră în mod deliberat.

Instrumentele automate de învățare automată caută valori de netezire, reprezentări ale caracteristicilor și alegerea variantelor, apoi clasifică candidații în funcție de scorul validat încrucișat. Acest lucru elimină majoritatea încercărilor manuale și erorilor - dumneavoastră decideți în continuare ce metrică contează și dacă câștigătorul se comportă în mod responsabil.

Copilotul GitHub elaborează rapid modelul standard — importă, antrenează și testează divizarea, ajustează și prezice apeluri — dintr-un comentariu scurt. Verifică întotdeauna varianta pe care o alege și codul de evaluare, deoarece un script plauzibil poate totuși antrena modelul greșit.

Rezumați această postare cu: