Naiivne Bayesi algoritm masinõppes

⚡ Nutikas kokkuvõte

Naiivne Bayes on Bayesi teoreemile üles ehitatud juhendatud tõenäosuslik klassifitseerimisalgoritm, eeldades, et iga tunnus annab oma panuse iseseisvalt. Selle teooria, väljatöötatud töökodaping Näiteks allpool käsitletakse kolme mudelivarianti, eeliseid, piiranguid ja reaalseid rakendusi.

  • 🔘 Määratlus: Klassifikaator, mis märgistab kirje, võrreldes iga kandidaatklassi a posteriori tõenäosust.
  • ☑️ Naiivne eeldus: Iga tunnust käsitletakse tingimuslikult sõltumatuna, mis harva kehtib, kuid ennustab siiski hästi.
  • ✅ Bayesi valem: P(A|B) võrdub P(B|A) korrutatuna P(A)-ga ja jagatud P(B)-ga.
  • 🧪 Töötatud näide: Päev, allahindlus ja tasuta kohaletoimetamine koos annavad ostu sooritamise tõenäosuseks 97.33 protsenti.
  • 🛠️ Kolm varianti: Sõnade arvu jaoks multinoom, sõnade esinemise jaoks Bernoulli, pidevate väärtuste jaoks Gaussi meetod.
  • ⚠️ Piirang: Korreleeritud tunnuseid ignoreeritakse, seega sobivad otsustuspuud või SVM-id paremini sõltuvate andmetega.

Naiivne Bayesi algoritm masinõppes

Naiivne Bayesi klassifikaatori algoritm

Klassifikaator on masinõppe algoritm, mis sorteerib andmed ühte või mitmesse „klassi“. Üks tuttav näide on meiliklassifikaator: see skannib iga sissetulevat sõnumit ja lisab sellele klassisildi „Rämpspost“ või „Mitte rämpspost“.

Naiivne Bayesi klassifikaator masinõppes on juhendatud õppimine Klassifitseerimisülesannete jaoks kasutatav algoritm.

Allolev diagramm kirjeldab seda voogu.

Naiivne Bayesi klassifikaator, mis määrab sisendkirjele klassimärgise

Naive Bayesi kasutatakse klassifitseerimisprobleemide lahendamiseks. See ennustab objekti tõenäosuse põhjal. Naive Bayes põhineb Bayesi teoreemil ja seda kasutatakse enamasti tekstide klassifitseerimiseks. Naive Bayes on tõenäosuslik klassifitseerimisalgoritm, mida on lihtne rakendada ja kiiresti treenida.

Kuna naiivne Bayesi klassifikaator põhineb Bayesi teoreemil, tuntakse seda ka tõenäosusklassifikaatorina. See ennustab üksuse tõenäosuse põhjal.

Miks seda nimetatakse naiivseks Bayesiks?

Nimi „Naive Bayes” koosneb kahest osast: naiivne ja Bayes. Miks naiivne? Algoritm ignoreerib tunnuste ilmumise järjekorda, seega näevad „You are” ja „Are you” selle jaoks identsed välja. Samuti eeldab see, et ükski tunnus ei mõjuta ühtegi teist. Õunapuu äratundmiseks kasutatakse punast värvi, sfäärilist kuju ja magusat maitset ning algoritm käsitleb iga vihjet eraldi, sõltumatu tõendina.

  • Naiivne Bayesi klassifikaator eeldab, et tunnused on üksteisest sõltumatud. Kuna see on reaalsetes andmetes harva võimalik, nimetatakse klassifikaatorit naiivseks.
  • See klassifitseerimisalgoritm põhineb Bayesi teoreemil ja seetõttu nimetatakse seda naiivseks Bayesi klassifikaatoriks.

Naiivne Bayesi teoreem

Bayesi teoreemi kasutatakse hüpoteesi tõenäosuse leidmiseks tingimuslike tõenäosustega, mis sõltuvad eelnevatest teadmistest. See teoreem on nime saanud Thomas Bayesi järgi. Naiivne Bayesi klassifikaator töötab tingimusliku tõenäosuse põhimõttel, nagu on sätestatud Bayesi teoreemis.

Bayesi teoreemi mõistmiseks vaatleme lihtsat naiivset Bayesi klassifikaatori näidet kahe mündi viskamisest. Kahe mündi viskamisel saame järgmised näidisruumid: {HH, HT, TH, TT}. Seega on nende sündmuste tõenäosused järgmised:

  • Kahe pea saamine = 1/4
  • Vähemalt üks saba = 3/4
  • Teise mündi pea, kuna esimene münt on saba = 1/2
  • Kahe pea saamine esimese mündiga on pea = 1/2

Bayesi teoreem arvutab sündmuse toimumise tõenäosuse juba toimunud sündmuse tõenäosuse põhjal. Bayesi teoreemi valem on järgmine:

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

P(A|B) on sündmuse A tõenäosus, kui sündmus B on juba toimunud. Tõenäosus P(B) ei tohi olla null.

  • Peate leidma sündmuse A tõenäosuse, mis antakse siis, kui sündmus B (tõend) on tõene.
  • P(A) on sündmuse A eelnev tõenäosus, st sündmuse tõenäosus enne mis tahes tõendite täheldamist. Siin on sündmus B tundmatu juhtumi väärtus.
  • P(A|B) on sündmuse A a posteriorne tõenäosus, st sündmuse A tõenäosus pärast tõendite B vaatlemist.

Naiivse Bayesi klassifikaatori töönäide

Kiireim viis valemi toimimise nägemiseks on see käsitsi käivitada.

Võtame näiteks poeping Bayesi naiivse klassifikaatori toimimise mõistmiseks. Selles andmestikus on selle näite jaoks väike 30 reast koosnev näidisandmestik.

Andmebaas

Näidispoodping 30 reast koosnev andmestik veergudega Päev, Allahindlus, Tasuta kohaletoimetamine ja Osta

Probleem seisneb selles, et ennustada, kas inimene ostab toote kindla päeva, allahindluse ja tasuta kohaletoimetamise kombinatsiooniga, kasutades Naive Bayesi teoreemi.

Sagedustabeli loendades iga atribuudi väärtuse ostu- ja ostuväliste tulemuste

Step 1) Loome iga atribuudi jaoks sagedustabelid, kasutades andmekogumis mainitud sisendtüüpe, nagu päevad, allahindlus ja tasuta kohaletoimetamine.

Päeva, allahindluse ja tasuta kohaletoimetamise atribuutide sagedustabelid

Olgu sündmus 'Osta' tähistatud kui 'A' ja sõltumatud muutujad, nimelt 'Allahindlus', 'Tasuta kohaletoimetamine' ja 'Päev', kui 'B'. Kasutame neid sündmusi ja muutujaid Bayesi teoreemi rakendamiseks.

Step 2) Nüüd arvutame tõenäosustabelid ükshaaval välja.

Tõenäosustabel päeva atribuudi ja ostuvälise atribuudi (Osta) vahel

Näide 1:

Selle tõenäosuse tabeli põhjal arvutame tingimuslikud tõenäosused järgmiselt.

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

Ja leia P(A/B), kasutades Bayesi teoreemi,

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

Samamoodi, kui A on Osta, siis

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

Märge: Kuna P(Osta | Nädalapäev) on suurem kui P(Ostmata | Nädalapäev), võime järeldada, et klient ostab toote suure tõenäosusega tööpäeval.

Step 3) Samamoodi saame kõigi kolme muutuja põhjal arvutada sündmuse toimumise tõenäosuse. Nüüd arvutame ülaltoodud sagedustabeleid kasutades kõigi kolme muutuja tõenäosustabelid.

Kombineeritud arvutuses kasutatud päeva, allahindluse ja tasuta kohaletoimetamise tõenäosustabelid

Näide 2:

Nüüd arvutame nende kolme tõenäolisuse tabeli abil välja, kas klient sooritab tõenäoliselt ostu konkreetse kombinatsiooni „Päev”, „Allahindlus” ja „Tasuta kohaletoimetamine” alusel.

Siin võtame nende tegurite kombinatsiooni:

  • Päev = puhkus
  • Allahindlus = jah
  • Tasuta kohaletoimetamine = jah

Millal A = Osta

Arvutage ostu tingimuslik tõenäosus järgmise päeva, allahindluse ja tasuta kohaletoimetamise kombinatsiooni korral.

Kus B on:

  • Päev = puhkus
  • Allahindlus = jah
  • Tasuta kohaletoimetamine = jah

Ja A = Osta

Seetõttu

= 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

Millal A = ei osta

Samamoodi arvutage ostu tingimuslik tõenäosus järgmise päeva, allahindluse ja tasuta kohaletoimetamise kombinatsiooni korral.

Kus B on:

  • Päev = puhkus
  • Allahindlus = jah
  • Tasuta kohaletoimetamine = jah

Ja A = Ei osta

Seetõttu

= 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

Step 4) Seega

Ostmise tõenäosus = 0.986

Ostmata jätmise tõenäosus = 0.027

Lõpuks on meil sellel päeval ostmiseks tingimuslikud tõenäosused. Üldistame nüüd need tõenäosused, et saada sündmuste tõenäosus.

  • Tõenäosuste summa = 0.986 + 0.027 = 1.013
  • Ostmise tõenäosus = 0.986 / 1.013 = 97.33 %
  • Ostmata jätmise tõenäosus = 0.027 / 1.013 = 2.67 %

Kahe skoori summa on 1.013, mitte 1, sest sõltumatuse eeldus muudab iga hinnangu ligikaudseks, seega jagades need kogusummaga, skaleeritakse need protsentideks.

Pange tähele, et kuna 97.33% on suurem kui 2.67%. Võime järeldada, et keskmine klient ostab puhkusel allahindluse ja tasuta kohaletoimetamisega.

Naiivse Bayesi mudeli tüübid

Naive Bayesi klassifikaatoreid on mitut tüüpi. Siin oleme arutanud multinomaalseid, Bernoulli ja Gaussi Naive Bayesi klassifikaatoreid.

variant Funktsiooni tüüp Tüüpiline kasutamine
Multinomiaalne Sõnade arv Teema ja dokumentide liigitus
Bernoulli Binaarsed kohaloleku- või puudumislipud Lühikesed tekstid ja rämpsposti filtreerimine
Gaussi keel Pidevad numbrilised väärtused Andurite näidud ja mõõtmised

1. Multinomaalne naiivne Bayes

Seda tüüpi Naive Bayesi mudelit kasutatakse dokumentide klassifitseerimise probleemide lahendamiseks. See töötab funktsioonidega, mis esindavad sõnade sagedust dokumendis. Klassifikaator arvestab sõnade esinemist ja arvu, et määrata kindlaks tõenäosus, et dokument kuulub teatud kategooriasse, näiteks sporti, poliitikasse või tehnoloogiasse.

2. Bernoulli Naive Bayes

See on sarnane multinomaalsele Naive Bayesile. Bernoulli Naive Bayesi klassifikaatorit kasutatakse dokumentide klassifitseerimise ülesannete jaoks. Siiski kasutab see tõeväärtuslikke ennustajaid. See näitab, kas sõna on olemas või mitte, ja võtab ainult väärtused Jah või Ei. Klassifikaator arvutab tõenäosused selle põhjal, kas sõna esineb tekstis või mitte.

3. Gaussi naiivne Bayes

Seda klassifikaatorit kasutatakse pideva väärtuse, kuid mitte diskreetse väärtuse korral. See klassifikaator arvutab tõenäosused parameetrite abil Gaussi keel jaotus, st keskmine ja dispersioon.

Gaussi kellukõver, mida kasutatakse naiivse Bayesi pidevate tunnuste modelleerimiseks

Tingimusliku tõenäosuse valem muutub järgmiseks

Gaussi naiivse Bayesi tingimusliku tõenäosuse valem, mis kasutab keskmist ja dispersiooni

. skikit õppima teek lisab veel kaks varianti: komplementaarne naiivne Bayes tasakaalustamata teksti jaoks ja kategooriline naiivne Bayes diskreetsete kategooriate jaoks.

Naiivse Bayesi klassifikaatori eelised ja piirangud

Naive Bayesi algoritmil on masinõppes mitmeid eeliseid ja puudusi.

Naive Bayesi klassifikaatori eelised

  • Lihtsus ja tõhusus: Naive Bayes on lihtne ja hõlpsasti treenitav ja rakendatav. See on tõhus madalate arvutuskulude tõttu. See suudab tõhusalt käsitleda suuri andmekogumeid.
  • Kiirkoolitus ja ennustamine: Naiivne Bayesi meetod ei vaja nii palju treeningandmeid tunnuste omavahelise sõltumatuse tõttu. Pärast mudeli treenimist suudab see kiiresti ennustada.
  • Skaalautuvuus: Naive Bayes saab hakkama suure hulga funktsioonidega suuremõõtmeliste andmekogumitega. See toimib hästi isegi siis, kui funktsioonide arv on suurem kui koolitusnäidete arv. See skaleerub andmepunktide ja ennustajate arvuga. See käsitleb nii pidevaid kui ka diskreetseid andmeid.
  • Vastupidavus ebaoluliste funktsioonide suhtes: See ei ole tundlik ebaoluliste funktsioonide suhtes.
  • Töötab hästi väikeste treeningkomplektidega: Naiivne Bayesi meetod suudab anda mõistlikke tulemusi isegi piiratud treeningandmete korral. See saab hakkama olukordades, kus treeninginstantside arv on väike.

Naiivse Bayesi klassifikaatori piirang

Naiivne Bayes sisse masinõpe eeldab, et kõik tunnused on üksteisest sõltumatud. Seega ei saa see õppida andmete erinevate funktsioonide vahelisi seoseid. Ta käsitleb iga funktsiooni nii, nagu poleks sellel teistega seost.

Teine hoiatus: selle esitatud klassitõenäosused on halvasti kalibreeritud, seega ei ole ennustusele lisatud usaldusnivoo usaldusväärne tõenäosus.

Selle probleemi lahendamiseks võite kasutada Otsustuspuud, Juhuslikud metsad, tugivektormasinad (SVM), Närvivõrgud jne. Need algoritmid suudavad õppida tundma andmefunktsioonide vahelisi keerulisi seoseid ja sõltuvusi. Seega saavad need ennustada täpsemaid tulemusi.

Naive Bayesi klassifikaatori rakendused

Kuna see algoritm on kiire ja tõhus, saate seda kasutada reaalajas prognooside tegemiseks.

Rämpsposti tuvastamine

Meiliteenused (nagu näiteks Gmail) kasutavad seda algoritmi, et teha kindlaks, kas e-kiri on rämpspost. See algoritm sobib suurepäraselt rämpsposti filtreerimiseks.

Sentimentide analüüs

See võib liigitada teksti positiivseks, negatiivseks või neutraalseks selliste tunnuste alusel nagu sõnavalik, lause struktuur ja kontekst. See leiab rakendusi sotsiaalmeedia jälgimisel, klientide arvustustel ja turu-uuringutel.

Dokumendi klassifikatsioon

See võib liigitada dokumendid kategooriatesse, nagu sport, poliitika, tehnoloogia või rahandus, lähtudes konkreetsete sõnade või funktsioonide esinemissagedusest või olemasolust dokumendis.

Soovitaja süsteemid

See võib analüüsida kasutaja eelistusi, ajaloolisi andmeid ja üksuste funktsioone, et ennustada kasutaja huve või eelistusi toodete, filmide või artiklite soovitamisel.

Seda klassifitseerimisalgoritmi kasutatakse ka näotuvastuses, ilmaennustuses, meditsiinilises diagnoosimises, poesping, Uudiste klassifitseerimine jne. Naiivset Bayesi saab rakendada Python, kus moodul sklearn.naive_bayes pakub kõiki eespool kirjeldatud variante.

KKK

Impordi vajalik variant saidilt sklearn.naive_bayes, jaga andmed train_test_split abil, seejärel kutsu treeningridade jaoks välja fit() ja testridade jaoks predict(). GaussianNB sobib pidevate tunnustega, samas kui MultinomialNB ja BernoulliNB käsitlevad tekstikoguseid ja binaarsõnade lippe.

Kui kategooria ei esine treeningus kunagi klassiga, muutub selle tingimuslik tõenäosus nulliks ja kustutab kogu korrutise. Laplace'i silumine lisab igale loendusele ühe, nii et miski ei lange kokku nulliks. Scikit-learn avaldab selle alfa-parameetrina.

Kumbki ei võida otsest võitu. Naiivne Bayes treenib kiiremini, vajab vähem andmeid ja saab hakkama suuremõõtmelise tekstiga. Logistiline regressioon modelleerib korreleeritud tunnuseid ja annab paremini kalibreeritud tõenäosusi. Väikeste tekstiandmekogumite puhul on naiivne Bayes sageli edukas; suurema hulga andmete korral edestab logistiline regressioon seda.

Hoidke käes testkomplekti ja võrrelge ennustusi tegelike siltidega, kasutades segaduse maatriks, seejärel tuletage täpsus, tagasitulek ja F1. Ainult täpsus eksitab tasakaalustamata andmete, näiteks rämpsposti puhul, kus üks klass domineerib valimis.

Kirjuta tekst väiketähtedega, eemalda kirjavahemärgid, stopp-sõnad ja soovi korral lisa tokenidele tüved ning seejärel muuda iga dokument loenduseks või TF-IDF vektoriks. Bernoulli variandid soovivad loenduste asemel binaarseid kohalolekumärke. Rakenda samu samme nii treenimise kui ka ennustamise ajal.

Naiivne Bayes on lihtsaim Bayesi võrk: üks klassisõlm, mille iga tunnus ripub otse selle küljes ja tunnuste vahel pole seoseid. Üldine Bayesi võrk võimaldab joonistada neid sõltuvusservi, seega modelleerib see korrelatsioone, mida naiivne Bayes tahtlikult ignoreerib.

Automatiseeritud masinõppe tööriistad otsivad silumisväärtusi, tunnuste esitusi ja variantide valikut ning seejärel järjestavad kandidaadid ristvalideeritud skoori alusel. See välistab enamiku käsitsi katse-eksituse meetodist – teie otsustate ikkagi, milline mõõdik on oluline ja kas võitja käitub mõistlikult.

GitHubi koopia koostab lühikese kommentaari põhjal kiiresti malli – impordib, jagab rongi testimiseks, sobitab ja ennustab kõnesid. Kontrolli alati valitud varianti ja hindamiskoodi, sest usutav skript võib ikkagi vale mudeli treenida.

Võta see postitus kokku järgmiselt: