Naivni Bayesov algoritam u strojnom učenju

Naivni Bayesov algoritam klasifikatora

Naivni Bayesov algoritam klasifikatora

Klasifikator je algoritam strojnog učenja koji kategorizira podatke u jedan ili više skupova "klasa". Klasifikator e-pošte jedan je primjer klasifikatora koji skenira e-poštu kako bi ih filtrirao prema oznaci klase: Spam ili Not Spam.

Naivni Bayesov klasifikator u strojnom učenju nadzirano je strojno učenje za zadatke klasifikacije.

Naivni Bayesov algoritam klasifikatora

Naivni Bayes se koristi za rješavanje problema klasifikacije. Predviđa na temelju vjerojatnosti objekta. Naivni Bayes se temelji na Bayesovom teoremu i uglavnom se koristi za klasifikaciju teksta. Naive Bayes je algoritam probabilističke klasifikacije koji se lako implementira i brzo obučava.

Budući da se Naivni Bayesov klasifikator temelji na Bayesovom teoremu, poznat je kao klasifikator vjerojatnosti. Predviđa na temelju vjerojatnosti stavke.

Zašto vas nazivaju naivnim Bayesom?

Klasifikator Naive Bayes ima dvije riječi: Naive i Bayes. Zašto Navie? Ovaj algoritam sve rečenice s riječima tretira kao iste. Na primjer, "Vi ste" i "Jeste li vi" isti su za ovaj algoritam. Ne ovisi o značajkama ili pojavi značajki. Ako želite identificirati voće Jabuka, potrebna vam je crvena boja, sferičan oblik, sladak okus da biste prepoznali jabuku. To znači da su te značajke neovisne jedna o drugoj.

  • Naivni Bayesov klasifikator pretpostavlja da su značajke neovisne jedna o drugoj. Budući da je to rijetko moguće u stvarnim podacima, klasifikator se naziva naivnim.
  • Ovaj algoritam klasifikacije temelji se na Bayesovom teoremu tako poznatom kao Naivni Bayesov klasifikator.

Naivni Bayesov teorem

Bayesov teorem koristi se za pronalaženje vjerojatnosti hipoteze s uvjetnim vjerojatnostima koje ovise o prethodnom znanju. Ovaj je teorem dobio ime po Thomasu Bayesu. Naivni Bayesov klasifikator radi na principu uvjetne vjerojatnosti, kako je dano Bayesovim teoremom.

Da bismo razumjeli Bayesov teorem, pogledajmo jednostavan primjer bayesovog klasifikatora bacanja dva novčića. Ove ogledne prostore možemo dobiti bacanjem dva novčića: {HH, HT, TH, TT}. Dakle, vjerojatnosti ovih događaja će biti:

  • Dobiti dvije glave = 1/4
  • Najmanje jedan rep = 3/4
  • Drugi novčić je glava s obzirom da je prvi novčić rep = 1/2
  • Dobiti dvije glave s prvim novčićem je glava = 1/2

Bayesov teorem izračunava vjerojatnost događanja događaja na temelju vjerojatnosti drugog događaja koji se već dogodio. Formula za Bayesov teorem dana je kao:

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

P(A|B) Vjerojatnost parnog A kada se parni B već dogodio. Vjerojatnost P(B) ne bi trebala biti nula.

  • Morate pronaći vjerojatnost događaja A, koja je dana kada je događaj B (dokaz) istinit.
  • P(A) je a priori (a priori, tj. vjerojatnost promatranog događaja prije dokaza) od A. Ovdje je događaj B vrijednost nepoznate instance.
  • P(A|B) je posteriorna vjerojatnost događaja B, tj. vjerojatnost događaja nakon uvida u dokaze.

Radni primjer naivnog Bayesovog klasifikatora

Uzmimo primjer kupnje kako bismo razumjeli rad Bayesovog naivnog klasifikatora. U ovom skupu podataka postoji mali uzorak skupa podataka od 30 redaka za ovaj primjer.

skup podataka

Radni primjer naivnog Bayesovog klasifikatora

Problem je predvidjeti hoće li osoba kupiti proizvod na određenu kombinaciju dana, popusta i besplatne dostave koristeći Naivni Bayesov teorem.

Radni primjer naivnog Bayesovog klasifikatora

Korak 1) Izradit ćemo tablice učestalosti za svaki atribut koristeći vrste unosa navedene u skupu podataka, kao što su dani, popust i besplatna dostava.

Radni primjer naivnog Bayesovog klasifikatora

Neka događaj 'Kupi' označen kao 'A', a nezavisne varijable, naime 'Popust', 'Besplatna dostava' i 'Dan', označene kao 'B'. Koristit ćemo te događaje i varijable za primjenu Bayesovog teorema.

Korak 2) Sada izračunajmo tablice vjerojatnosti jednu po jednu.

Radni primjer naivnog Bayesovog klasifikatora

Primjer 1:

Na temelju ove tablice vjerojatnosti, izračunat ćemo uvjetne vjerojatnosti kao u nastavku.

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 pronađite P(A/B) koristeći Bayesov teorem,

P(A/B)
= P(No Buy / Weekday)
= P(Weekday / No Buy) * P(No Buy) / P(Weekday)
= (2/6 * 6/30) / (11/30)
= 0.1818

Slično, ako je A Kupi, tada

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

Bilješka: Kako je P(Kupi | Dan u tjednu) veći od P(Nema kupovine | Dan u tjednu), možemo zaključiti da će kupac najvjerojatnije kupiti proizvod radnim danom.

Korak 3) Slično, možemo izračunati vjerojatnost pojave događaja na temelju sve tri varijable. Sada ćemo izračunati tablice vjerojatnosti za sve tri varijable pomoću gornjih tablica učestalosti.

Radni primjer naivnog Bayesovog klasifikatora

Primjer 2:

Sada, koristeći ove tri tablice vjerojatnosti, izračunat ćemo je li vjerojatno da će kupac izvršiti kupnju na temelju određene kombinacije 'Dan', 'Popust' i 'Besplatna dostava'.

Evo, uzmimo kombinaciju ovih faktora:

  • Dan = Praznik
  • Popust = Da
  • Besplatna dostava = Da

Kada, A = Kupiti

Izračunajte uvjetnu vjerojatnost kupnje na sljedeću kombinaciju dana, popusta i besplatne dostave.

Gdje je B:

  • Dan = Praznik
  • Popust = Da
  • Besplatna dostava = Da

I A = Kupi

Prema tome,

= 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

Kada, A = Nema kupovine

Slično tome, izračunajte uvjetnu vjerojatnost kupnje za sljedeću kombinaciju dana, popusta i besplatne dostave.

Gdje je B:

  • Dan = Praznik
  • Popust = Da
  • Besplatna dostava = Da

I A = Nema kupovine

Prema tome,

= 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

Korak 4) Stoga,

Vjerojatnost kupnje = 0.986

Vjerojatnost da nema kupovine = 0.027

Konačno, imamo uvjetne vjerojatnosti kupnje na ovaj dan. Generalizirajmo sada te vjerojatnosti da dobijemo Vjerojatnost događaja.

  • Zbroj vjerojatnosti = 0.986 + 0.027 = 1.013
  • Vjerojatnost kupnje = 0.986 / 1.013 = 97.33 %
  • Vjerojatnost da nećete kupiti = 0.027 / 1.013 = 2.67 %

Imajte na umu da je 97.33% veće od 2.67%. Možemo zaključiti da će prosječan kupac na blagdan kupovati uz popust i besplatnu dostavu.

Vrste naivnog Bayesovog modela

Postoje mnoge vrste Naivnih Bayesovih klasifikatora. Ovdje smo raspravljali o multinomskim, Bernoullijevim i Gaussovim naivnim Bayesovim klasifikatorima.

1. Multinomski naivni Bayes

Ova vrsta Naivno Bayesovog modela koristi se za probleme klasifikacije dokumenata. Radi sa značajkama koje predstavljaju učestalost riječi u dokumentu. Klasifikator razmatra pojavu i broj riječi kako bi odredio vjerojatnost da dokument pripada određenoj kategoriji, kao što je sport, politika ili tehnologija.

2. Bernoulli naivni Bayes

Ovo je slično multinomnom Naivnom Bayesu. Bernoulli Naive Bayesov klasifikator koristi se za zadatke klasifikacije dokumenata. Međutim, koristi Booleove prediktore. Predstavlja je li riječ prisutna ili ne i uzima samo vrijednosti Da ili Ne. Klasifikator izračunava vjerojatnosti na temelju toga pojavljuje li se riječ u tekstu ili ne.

3. Gaussov naivni Bayes

Ovaj se klasifikator koristi u slučaju kontinuirane vrijednosti, ali ne i diskretne vrijednosti. Ovaj klasifikator izračunava vjerojatnosti pomoću parametara Gaussova distribucija, tj. srednja vrijednost i varijanca.

Gaussov naivni Bayes

Formula za uvjetnu vjerojatnost mijenja se u,

Gaussov naivni Bayes

Prednosti i ograničenja Naivnog Bayesovog klasifikatora

Postoje razne prednosti i nedostaci Naive Bayes algoritma u strojnom učenju.

Prednosti Naivnog Bayesovog klasifikatora

  • Jednostavnost i učinkovitost: Naive Bayes je jednostavan i lagan za obuku i implementaciju. Učinkovit je zbog niske računalne cijene. Može učinkovito rukovati velikim skupovima podataka.
  • Brzi trening i predviđanje: Naive Bayes ne zahtijeva toliko podataka za obuku zbog neovisnosti između značajki. Može brzo predvidjeti nakon što se model uvježba.
  • skalabilnost: Naivni Bayes može rukovati visokodimenzionalnim skupovima podataka s velikim brojem značajki. Dobro radi čak i kada je broj značajki veći od broja primjera obuke. Skalira se s brojem podatkovnih točaka i prediktora. Obrađuje i kontinuirane i diskretne podatke.
  • Otpornost na nebitne značajke: Nije osjetljiv na nebitne značajke.
  • Dobro funkcionira s malim setovima za vježbanje: Naivni Bayes može dati razumne rezultate čak i uz ograničene podatke o treningu. Može se nositi sa situacijama u kojima je broj instanci obuke mali. Ne zahtijeva toliko podataka za obuku.

Ograničenje Naivnog Bayesovog klasifikatora

Naivni Bayes u stroj za učenje pretpostavlja da su sve značajke neovisne jedna o drugoj. Dakle, ne može naučiti odnose između različitih značajki u podacima. Tretira svaku značajku kao da nema nikakve veze s drugima.

Da biste prevladali ovaj problem, možete koristiti Stabla odlučivanja, nasumične šume, strojevi potpornih vektora (SVM), neuronske mreže itd. Ovi algoritmi imaju sposobnost učenja složenih odnosa i ovisnosti između značajki u podacima. Tako mogu predvidjeti točnije rezultate.

Primjene Naivnog Bayesovog klasifikatora

Budući da je ovaj algoritam brz i učinkovit, možete ga koristiti za izradu predviđanja u stvarnom vremenu.

Otkrivanje neželjene pošte

Usluge e-pošte (kao što je Gmail) koriste ovaj algoritam za određivanje je li e-pošta neželjena pošta. Ovaj algoritam je izvrstan za filtriranje spama.

Analiza osjećaja

Može klasificirati tekst kao pozitivan, negativan ili neutralan na temelju značajki kao što su odabir riječi, struktura rečenice i kontekst. Nalazi primjenu u praćenju društvenih medija, recenzijama kupaca i istraživanju tržišta.

Klasifikacija dokumenata

Može klasificirati dokumente u kategorije kao što su sport, politika, tehnologija ili financije na temelju učestalosti ili prisutnosti određenih riječi ili značajki unutar dokumenta.

Sustavi za preporuke

Može analizirati korisničke preferencije, povijesne podatke i značajke stavki kako bi predvidio interese korisnika ili preferencije za preporuku proizvoda, filmova ili članaka.

Ovaj algoritam klasifikatora također se koristi u prepoznavanju lica, predviđanju vremena, medicinskoj dijagnozi, kupnji, klasifikaciji vijesti itd. Naivni Bayes možete implementirati u Python. Postoji Naive Bayesov klasifikator sklearn, tj. sklearn.naive_bayes. To je modul koji implementira ovaj algoritam.

Zaključak

Naivni Bayesovi algoritmi u strojnom učenju su klasifikatori koji se uglavnom koriste u otkrivanju neželjene pošte, klasifikaciji vijesti, analizi raspoloženja, predviđanju vremena, kupnji itd. Naivni Bayesovi algoritmi temelje se na Bayesovom teoremu. Ovaj algoritam je jednostavan i lak za implementaciju. Budući da je brz, možemo ga koristiti u aplikacijama u stvarnom vremenu. Njegov najveći nedostatak je što preuzima neovisne značajke (budući da su neovisne značajke rijetko moguće u stvarnom životu, pa je poznat kao Naivan). Svaku značajku tretira kao jednaku. Da biste prevladali ovaj nedostatak, možete koristiti druge klasifikatore kao što su Decision Tree, Random Forest, Support Vector Machine (SVM) itd.