Naivni Bayesov algoritam u strojnom učenju

⚡ Pametni sažetak

Naivni Bayesov algoritam je nadzirani, probabilistički klasifikacijski algoritam izgrađen na Bayesovom teoremu, pretpostavljajući da svaka značajka doprinosi neovisno. Njegova teorija, razrađena radionicaping Na primjer, u nastavku su opisane tri varijante modela, prednosti, ograničenja i primjene u stvarnom svijetu.

  • 🔘 Definicija: Klasifikator koji označava zapis uspoređujući posteriornu vjerojatnost svake kandidatske klase.
  • ☑️ Naivna pretpostavka: Svaka značajka se tretira kao uvjetno neovisna, što rijetko vrijedi, a ipak dobro predviđa.
  • Bayesova formula: P(A|B) jednako je P(B|A) pomnoženo s P(A), podijeljeno s P(B).
  • 🧪 Obrađeni primjer: Dan, popust i besplatna dostava zajedno daju 97.33 posto vjerojatnosti kupnje.
  • 🛠️ Tri varijante: Multinom za broj riječi, Bernoullijev za prisutnost riječi, Gaussov za kontinuirane vrijednosti.
  • ⚠️ Ograničenje: Korelirane značajke se zanemaruju, pa stabla odlučivanja ili SVM-ovi bolje odgovaraju ovisnim podacima.

Naivni Bayesov algoritam u strojnom učenju

Naivni Bayesov algoritam klasifikatora

Klasifikator je algoritam strojnog učenja koji sortira podatke u jednu ili više "klasa". Klasifikator e-pošte je jedan poznati primjer: skenira svaku dolaznu poruku i pridružuje joj oznaku klase Neželjena pošta ili Nije neželjena pošta.

Naivni Bayesov klasifikator u strojnom učenju je nadzirano učenje algoritam koji se koristi za zadatke klasifikacije.

Donji dijagram prikazuje taj tok.

Naivni Bayesov klasifikator koji dodjeljuje oznaku klase ulaznom zapisu

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 i kao klasifikator vjerojatnosti. Predviđa na temelju vjerojatnosti elementa.

Zašto se zove naivni Bayesov sustav?

Naziv Naivni Bayes ima dva dijela: Naivan i Bayes. Zašto naivan? Algoritam ignorira redoslijed kojim se pojavljuju značajke, pa „Vi ste“ i „Jeste li vi“ izgledaju identično. Također pretpostavlja da nijedna značajka ne utječe ni na jednu drugu. Za prepoznavanje jabuke koristite crvenu boju, sferni oblik i sladak okus, a algoritam tretira svaki od tih tragova kao zaseban, neovisan dokaz.

  • Naivni Bayesov klasifikator pretpostavlja da su značajke međusobno neovisne. Budući da je to rijetko moguće u stvarnim podacima, klasifikator se naziva naivnim.
  • Ovaj algoritam klasifikacije temelji se na Bayesovom teoremu, pa je poznat kao Naivni Bayesov klasifikator.

Naivni Bayesov teorem

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

Kako bismo razumjeli Bayesov teorem, pogledajmo jednostavan primjer naivnog Bayesovog klasifikatora bacanjem dva novčića. Ove uzorke prostora možemo dobiti bacanjem dva novčića: {HH, HT, TH, TT}. Dakle, vjerojatnosti ovih događaja bit će:

  • 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 da će se neki događaj dogoditi na temelju vjerojatnosti drugog događaja koji se već dogodio. Formula za Bayesov teorem je:

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

P(A|B) je vjerojatnost događaja A kada se događaj B već dogodio. Vjerojatnost P(B) ne smije biti nula.

  • Morate pronaći vjerojatnost događaja A, koja je dana kada je događaj B (dokaz) istinit.
  • P(A) je apriorna vjerojatnost događaja A, odnosno vjerojatnost događaja prije nego što se uoči bilo kakav dokaz. Ovdje je događaj B vrijednost nepoznate instance.
  • P(A|B) je posteriorna vjerojatnost događaja A, odnosno vjerojatnost A nakon uvida u dokaze B.

Radni primjer naivnog Bayesovog klasifikatora

Najbrži način da vidite kako formula funkcionira jest da je pokrenete ručno.

Uzmimo primjer trgovineping kako bi se razumio rad Bayesovog naivnog klasifikatora. U ovom skupu podataka nalazi se mali uzorak skupa podataka od 30 redaka za ovaj primjer.

skup podataka

Trgovina uzorakaping skup podataka od 30 redaka sa stupcima Dan, Popust, Besplatna dostava i Kupnja

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

Tablica frekvencija koja broji ishode Kupnje i Nekupnje za svaku vrijednost atributa

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.

Tablice učestalosti za atribute Dan, Popust i Besplatna dostava

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

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

Tablica vjerojatnosti za atribut Day u odnosu na Buy i No Buy

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.

Tablice vjerojatnosti za dan, popust i besplatnu dostavu korištene u kombiniranom izračunu

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 %

Zbroj dvaju rezultata iznosi 1.013, a ne 1, jer pretpostavka neovisnosti čini svaku procjenu približnom, pa se dijeljenjem s ukupnim brojem preračunavaju u postotke.

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.

Varijanta Vrsta značajke Tipična upotreba
Multinom Broj riječi Klasifikacija teme i dokumenta
Bernoulli Binarne zastavice prisutnosti ili odsutnosti Kratke poruke i filtriranje neželjene pošte
Gaussova Kontinuirane numeričke vrijednosti Očitavanja i mjerenja senzora

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.

Gaussova krivulja zvona korištena za modeliranje kontinuiranih značajki u naivnom Bayesovom sustavu

Formula za uvjetnu vjerojatnost mijenja se u,

Gaussova naivna Bayesova uvjetna formula vjerojatnosti korištenjem srednje vrijednosti i varijance

The scikit učiti Knjižnica dodaje još dvije varijante: Komplementarni naivni Bayes za neuravnotežen tekst i Kategorički naivni Bayes za diskretne kategorije.

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: Naivni Bayesov model ne zahtijeva toliko podataka za treniranje zbog neovisnosti između značajki. Može brzo predvidjeti nakon što je model treniran.
  • 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 Bayesov algoritm može pružiti razumne rezultate čak i s ograničenim podacima za obuku. Može se nositi sa situacijama gdje je broj instanci za obuku mali.

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.

Drugo upozorenje: vjerojatnosti klase koje prikazuje loše su kalibrirane, pa brojka pouzdanosti pridružena predviđanju nije pouzdana vjerojatnost.

Da biste prevladali ovaj problem, možete koristiti Stabla odlučivanja, Slučajne š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. Dakle, 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 (Npr. Gmail) koristite ovaj algoritam za utvrđivanje je li e-pošta neželjena pošta. Ovaj algoritam je izvrstan za filtriranje neželjene pošte.

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 klasifikacije se također koristi u prepoznavanju lica, predviđanju vremena, medicinskoj dijagnozi, trgoviniping, Klasifikacija vijesti itd. Naivni Bayesov model možete implementirati u Python, gdje modul sklearn.naive_bayes pruža svaku gore opisanu varijantu.

Pitanja i odgovori

Uvezite varijantu koja vam je potrebna iz sklearn.naive_bayes, podijelite podatke s train_test_split, zatim pozovite fit() na redovima za učenje i predict() na redovima za testiranje. GaussianNB odgovara kontinuiranim značajkama, dok MultinomialNB i BernoulliNB obrađuju broj teksta i binarne oznake riječi.

Ako se kategorija nikada ne pojavi s klasom u treningu, njezina uvjetna vjerojatnost postaje nula i briše cijeli produkt. Laplaceovo izglađivanje dodaje jedan svakom brojaču tako da se ništa ne svodi na nulu. Scikit-learn to izlaže kao alfa parametar.

Niti jedno ne pobjeđuje u potpunosti. Naivni Bayesov model se brže uči, treba mu manje podataka i nosi se s visokodimenzionalnim tekstom. Logistička regresija modelira korelirane značajke i proizvodi bolje kalibrirane vjerojatnosti. Na malim skupovima tekstualnih podataka naivni Bayesov model često vodi; s više podataka logistička regresija ga prestiže.

Pripremite testni set i usporedite predviđanja sa stvarnim oznakama koristeći matrica zabune, zatim izvedite preciznost, prisjetnost i F1. Sama točnost zavarava kod neuravnoteženih podataka poput neželjene pošte, gdje jedna klasa dominira uzorkom.

Malim slovima napišite tekst, uklonite interpunkcijske znakove, uklonite zaustavne riječi i opcionalno uklonite tokene sa korijenom, a zatim svaki dokument pretvorite u vektor brojača ili TF-IDF-a. Bernoullijeve varijante žele binarne zastavice prisutnosti umjesto brojača. Primijenite identične korake tijekom učenja i predviđanja.

Naivna Bayesova mreža je najjednostavnija Bayesova mreža: jedan čvor klase sa svim značajkama koje vise izravno s njega i bez veza između značajki. Opća Bayesova mreža omogućuje vam crtanje tih rubova ovisnosti, pa modelira korelacije koje naivna Bayesova mreža namjerno ignorira.

Automatizirani alati za strojno učenje pretražuju vrijednosti izglađivanja, prikaze značajki i izbor varijanti, a zatim rangiraju kandidate prema unakrsno validiranom rezultatu. To uklanja većinu ručnih pokušaja i pogrešaka - vi i dalje odlučujete koja je metrika važna i ponaša li se pobjednik razumno.

GitHub kopilot brzo izrađuje predložak - uvozi, testira i dijeli, prilagođava i predviđa pozive - iz kratkog komentara. Uvijek provjerite varijantu koju odabere i kod za evaluaciju, jer uvjerljiv skript i dalje može trenirati pogrešan model.

Sažmite ovu objavu uz: