Naiivne Bayesi algoritm masinõppes
Naiivne Bayesi klassifikaatori algoritm
Klassifikaator on masinõppe algoritm, mis liigitab andmed ühte või mitmesse klassikomplekti. Meilide klassifikaator on üks näide klassifikaatorist, mis skannib meile, et filtreerida need klassi sildi järgi: rämpspost või mitte rämpspost.
Naiivne Bayesi klassifikaator masinõppes on klassifitseerimisülesannete jaoks juhendatud masinõpe.
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, on see tuntud kui tõenäosusklassifikaator. See ennustab üksuse tõenäosuse põhjal.
Põhjus, miks teda kutsutakse naiivseks Bayesiks?
Naive Bayesi klassifikaatoril on kaks sõna: Naive ja Bayes. Miks Navie? See algoritm käsitleb kõiki sõnalauseid ühesugustena. Näiteks “Sa oled” ja “Kas sa oled” on selle algoritmi jaoks samad. See ei sõltu funktsioonidest ega funktsioonide esinemisest. Kui soovite tuvastada puuvilja õuna, siis on teil vaja õunana äratundmiseks punast värvi, sfäärilist kuju, magusat maitset. See tähendab, et need funktsioonid on üksteisest sõltumatud.
- 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, mida nimetatakse naiivseks Bayesi klassifikaatoriks.
Naiivne Bayesi teoreem
Bayesi teoreemi kasutatakse eelteadmistest sõltuva tingimuslike tõenäosustega hüpoteesi tõenäosuse leidmiseks. See teoreem on oma nime saanud Thomas Bayesi järgi. Naiivne Bayesi klassifikaator töötab tingimusliku tõenäosuse põhimõttel, nagu on antud Bayesi teoreemiga.
Bayesi teoreemi mõistmiseks vaadakem lihtsat naiivset Bayesi klassifikaatori näidet kahe mündi viskamisest. Need näidisruumid saame kahe mündi viskamisega: {HH, HT, TH, TT}. Seega on nende sündmuste tõenäosus:
- 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, lähtudes juba toimunud teistsuguse sündmuse tõenäosusest. Bayesi teoreemi valem on esitatud järgmiselt:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) Isegi A tõenäosus, kui isegi B on juba toimunud. Tõenäosus P(B) ei tohiks 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 A a priori (a priori, st vaadeldava sündmuse tõenäosus enne tõestust). Siin on sündmus B tundmatu eksemplari väärtus.
- P(A|B) on sündmuse B posterioorne tõenäosus, st sündmuse tõenäosus pärast tõendite vaatamist.
Naive Bayesi klassifikaatori töönäide
Võtame näite ostmisest, et mõista Bayesi naiivse klassifikaatori toimimist. Selles andmekogumis on selle näite jaoks väike 30-realine näidisandmekogum.
Andmebaas
Probleem seisneb selles, et ennustada, kas inimene ostab toote kindla päeva, allahindluse ja tasuta kohaletoimetamise kombinatsiooniga, kasutades Naive Bayesi teoreemi.
Step 1) Loome iga atribuudi jaoks sagedustabelid, kasutades andmekogumis mainitud sisendtüüpe, nagu päevad, allahindlus ja tasuta kohaletoimetamine.
Olgu sündmus „Ost” tähistatud kui „A” ja sõltumatud muutujad, nimelt „Allahindlus”, „Tasuta kohaletoimetamine” ja „Päev”, mis on tähistatud kui „B”. Me kasutame neid sündmusi ja muutujaid Bayesi teoreemi rakendamiseks.
Step 2) Nüüd arvutame tõenäosustabelid ükshaaval välja.
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.
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 %
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.
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.
Tingimusliku tõenäosuse valem muutub järgmiseks
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 Bayes ei vaja funktsioonide sõltumatuse tõttu nii palju treeningandmeid. See suudab kiiresti ennustada, kui mudel on koolitatud.
- 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: Naive Bayes võib anda mõistlikke tulemusi isegi piiratud treeningandmetega. See saab hakkama olukordades, kus koolitusjuhtude arv on väike. See ei nõua nii palju koolitusandmeid.
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.
Selle probleemi lahendamiseks võite kasutada Otsustuspuud, juhuslikud metsad, tugivektorimasinad (SVM), närvivõrgud jne. Need algoritmid suudavad õppida keerulisi seoseid ja sõltuvusi andmetes sisalduvate funktsioonide vahel. Nii et need võivad 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 (nt Gmail) kasutavad seda algoritmi, et teha kindlaks, kas meil 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 klassifikaatori algoritmi kasutatakse ka näotuvastuses, ilmaennustuses, meditsiinilises diagnoosimises, ostlemises, uudiste klassifikatsioonis jne. Naive Bayesi saate rakendada Python. On olemas Naive Bayesi klassifikaator sklearn, st sklearn.naive_bayes. See on moodul, mis seda algoritmi rakendab.
Järeldus
Naiivsed Bayesi algoritmid masinõppes on klassifikaatorid, mida kasutatakse enamasti rämpsposti tuvastamisel, uudiste klassifitseerimisel, sentimentide analüüsil, ilmaennustamisel, ostlemisel jne. Naiivsed Bayesi algoritmid põhinevad Bayesi teoreemil. See algoritm on lihtne ja hõlpsasti rakendatav. Kuna see on kiire, saame seda kasutada reaalajas rakendustes. Selle suurim puudus on see, et sellel on sõltumatud funktsioonid (kuna sõltumatud funktsioonid on päriselus harva võimalikud, seega nimetatakse seda naiivseks). See käsitleb iga funktsiooni võrdsena. Selle puuduse ületamiseks võite kasutada muid klassifikaatoreid, nagu otsustuspuu, juhuslik mets, tugivektori masin (SVM) jne.