Naiivi Bayes-algoritmi koneoppimisessa
Naiivi Bayesin luokittelualgoritmi
Luokitin on koneoppimisalgoritmi, joka luokittelee tiedot yhteen tai useampaan "luokkien" joukkoon. Sähköpostin luokitin on yksi esimerkki luokittimesta, joka tarkistaa sähköpostit ja suodattaa ne luokkatunnisteen mukaan: Roskaposti tai Ei roskaposti.
Naive Bayes Classifier koneoppimisessa on valvottu koneoppiminen luokittelutehtäviin.
Naive Bayesiä käytetään luokitteluongelmien ratkaisemiseen. Se ennustaa kohteen todennäköisyyden perusteella. Naive Bayes perustuu Bayesin lauseeseen ja sitä käytetään enimmäkseen tekstin luokitteluun. Naive Bayes on todennäköisyyspohjainen luokittelualgoritmi, joka on helppo toteuttaa ja nopeasti koulutettava.
Koska naiivi Bayes-luokitin perustuu Bayes-lauseeseen, se tunnetaan todennäköisyysluokittajana. Se ennustaa kohteen todennäköisyyden perusteella.
Syytä kutsua Naive Bayesiksi?
Naive Bayes -luokittimessa on kaksi sanaa: Naive ja Bayes. Miksi Navie? Tämä algoritmi käsittelee kaikkia sanalauseita samoina. Esimerkiksi "olet" ja "oletko sinä" ovat samat tälle algoritmille. Se ei ole riippuvainen ominaisuuksista tai ominaisuuksien esiintymisestä. Jos haluat tunnistaa omenan hedelmän, tarvitset punaisen värin, muodon pallomaisen, maku makean tunnistaaksesi omenana. Tämä tarkoittaa, että nämä ominaisuudet ovat toisistaan riippumattomia.
- Naiivi Bayesin luokitin olettaa, että piirteet ovat toisistaan riippumattomia. Koska tämä on harvoin mahdollista tosielämän datassa, luokittelijaa kutsutaan naiiviksi.
- Tämä luokittelualgoritmi perustuu Bayesin lauseeseen, joka tunnetaan nimellä Naive Bayes Classifier.
Naiivi Bayesin lause
Bayesin lausetta käytetään sellaisen hypoteesin todennäköisyyden löytämiseen, jonka ehdolliset todennäköisyydet riippuvat aikaisemmasta tiedosta. Tämä lause on nimetty Thomas Bayesin mukaan. Naiivi Bayesin luokitin toimii ehdollisen todennäköisyyden periaatteella Bayesin lauseen mukaisesti.
Ymmärtääksemme Bayesin lauseen, katsokaamme yksinkertaista naiivia Bayesin luokitteluesimerkkiä kahden kolikon heittämisestä. Nämä näytetilat saadaan heittämällä kaksi kolikkoa: {HH, HT, TH, TT}. Joten näiden tapahtumien todennäköisyydet ovat:
- Kahden pään saaminen = 1/4
- Vähintään yksi häntä = 3/4
- Toisen kolikon pää on annettu ensimmäisen kolikon häntä = 1/2
- Kahden pään saaminen ensimmäisellä kolikolla on pää = 1/2
Bayesin lause laskee tapahtuman todennäköisyyden perustuen toisen jo tapahtuneen tapahtuman todennäköisyyteen. Bayesin lauseen kaava on annettu seuraavasti:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) Parillisen A:n todennäköisyys, kun parillinen B on jo tapahtunut. Todennäköisyys P(B) ei saa olla nolla.
- Sinun on löydettävä tapahtuman A todennäköisyys, joka annetaan, kun tapahtuma B (todisteet) on tosi.
- P(A) on A:n a priori (a priori eli havaitun tapahtuman todennäköisyys ennen todistetta). Tässä tapahtuma B on tuntemattoman esiintymän arvo.
- P(A|B) on tapahtuman B posteriori todennäköisyys eli tapahtuman todennäköisyys todisteiden tarkastelun jälkeen.
Toimiva esimerkki Naive Bayesin luokittimesta
Otetaan esimerkki ostoksista ymmärtääksemme Bayes Naive Classifierin toiminnan. Tässä tietojoukossa on pieni 30 rivin mallitietojoukko tätä esimerkkiä varten.
aineisto
Ongelmana on ennustaa, ostaako henkilö tuotteen tietyllä päivä-, alennus- ja ilmaistoimituksen yhdistelmällä Naive Bayes -lauseen avulla.
Vaihe 1) Luomme kullekin määritteelle taajuustaulukot käyttämällä tietojoukossa mainittuja syöttötyyppejä, kuten päivät, alennus ja ilmainen toimitus.
Olkoon tapahtuma 'Osta', joka on merkitty 'A', ja riippumattomat muuttujat, nimittäin 'Alennus', 'Ilmainen toimitus' ja 'Päivä', merkitty kirjaimella B. Käytämme näitä tapahtumia ja muuttujia soveltaaksemme Bayesin lausetta.
Vaihe 2) Lasketaan nyt todennäköisyystaulukot yksitellen.
Esimerkki 1:
Tämän todennäköisyystaulukon perusteella laskemme ehdolliset todennäköisyydet alla kuvatulla tavalla.
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 etsi P(A/B) Bayesin lauseen avulla,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
Vastaavasti, jos A on Osta, niin
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
Huomautus: Koska P(Osta | Viikonpäivä) on enemmän kuin P(Ei osta | Viikonpäivä), voimme päätellä, että asiakas ostaa tuotteen todennäköisesti arkipäivänä.
Vaihe 3) Vastaavasti voimme laskea tapahtuman todennäköisyyden kaikkien kolmen muuttujan perusteella. Nyt laskemme todennäköisyystaulukot kaikille kolmelle muuttujalle käyttämällä yllä olevia taajuustaulukoita.
Esimerkki 2:
Nyt näiden kolmen todennäköisyystaulukon avulla laskemme, tekeekö asiakas todennäköisesti ostoksen tietyn 'Päivä', 'Alennus' ja 'Ilmainen toimitus' -yhdistelmän perusteella.
Otetaanpa tässä näiden tekijöiden yhdistelmä:
- Päivä = loma
- Alennus = Kyllä
- Ilmainen toimitus = Kyllä
Milloin, A = Osta
Laske ehdollinen ostotodennäköisyys seuraavan päivän, alennuksen ja ilmaisen toimituksen yhdistelmällä.
Missä B on:
- Päivä = loma
- Alennus = Kyllä
- Ilmainen toimitus = Kyllä
Ja A = Osta
Näin ollen,
= 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
Milloin, A = Ei osta
Samoin Laske ehdollinen ostotodennäköisyys seuraavalle päivän, alennuksen ja ilmaisen toimituksen yhdistelmälle.
Missä B on:
- Päivä = loma
- Alennus = Kyllä
- Ilmainen toimitus = Kyllä
Ja A = Ei osta
Näin ollen,
= 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
Vaihe 4) Siten,
Ostotodennäköisyys = 0.986
Todennäköisyys, että ostoa ei tehdä = 0.027
Lopuksi meillä on ehdolliset todennäköisyydet ostaa tänä päivänä. Yleistetään nyt nämä todennäköisyydet, jotta saadaan tapahtumien todennäköisyys.
- Todennäköisyyksien summa = 0.986 + 0.027 = 1.013
- Ostotodennäköisyys = 0.986 / 1.013 = 97.33 %
- Ostamatta jättämisen todennäköisyys = 0.027 / 1.013 = 2.67 %
Huomaa, että koska 97.33 % on suurempi kuin 2.67 %. Voimme päätellä, että keskivertoasiakas ostaa lomalla alennuksella ja ilmaisella toimituksella.
Naiivien Bayes-mallin tyypit
Naive Bayes -luokittajia on monenlaisia. Tässä olemme keskustelleet Multinomial-, Bernoulli- ja Gaussian Naive Bayes -luokittelijoista.
1. Multinomiaaliset Naive Bayes
Tämän tyyppistä Naive Bayes -mallia käytetään dokumenttien luokitteluongelmiin. Se toimii ominaisuuksien kanssa, jotka edustavat sanojen tiheyttä asiakirjassa. Luokitin huomioi sanojen esiintymisen ja määrän määrittääkseen todennäköisyyden, että asiakirja kuuluu tiettyyn luokkaan, kuten urheiluun, politiikkaan tai tekniikkaan.
2. Bernoulli Naive Bayes
Tämä on samanlainen kuin multinomi Naive Bayes. Bernoulli Naive Bayes -luokitinta käytetään dokumenttien luokittelutehtäviin. Se käyttää kuitenkin loogisia ennustajia. Se ilmaisee, onko sana läsnä vai ei, ja ottaa vain arvot Kyllä tai Ei. Luokitin laskee todennäköisyydet sen perusteella, esiintyykö sana tekstissä vai ei.
3. Gaussin naiivi Bayes
Tätä luokittelua käytetään jatkuvan arvon, mutta ei diskreetin arvon, tapauksessa. Tämä luokitin laskee todennäköisyydet käyttämällä parametreja Gaussin jakauma eli keskiarvo ja varianssi.
Ehdollisen todennäköisyyden kaava muuttuu
Naive Bayes -luokittimen edut ja rajoitukset
Naive Bayes -algoritmilla on useita etuja ja haittoja koneoppimisessa.
Naive Bayes -luokittimen edut
- Yksinkertaisuus ja tehokkuus: Naive Bayes on yksinkertainen ja helppo kouluttaa ja toteuttaa. Se on tehokas alhaisten laskentakustannusten vuoksi. Se pystyy käsittelemään suuria tietojoukkoja tehokkaasti.
- Nopea koulutus ja ennustaminen: Naive Bayes ei vaadi niin paljon harjoitustietoja ominaisuuksien riippumattomuuden vuoksi. Se osaa ennustaa nopeasti, kun malli on koulutettu.
- Skaalautuvuus: Naive Bayes pystyy käsittelemään suuriulotteisia tietojoukkoja, joissa on suuri määrä ominaisuuksia. Se toimii hyvin, vaikka ominaisuuksien määrä on suurempi kuin koulutusesimerkkien määrä. Se skaalautuu datapisteiden ja ennustajien lukumäärän mukaan. Se käsittelee sekä jatkuvaa että erillistä dataa.
- Kestävyys epäolennaisiin ominaisuuksiin: Se ei ole herkkä epäolennaisille ominaisuuksille.
- Toimii hyvin pienten harjoitussarjojen kanssa: Naive Bayes voi tarjota kohtuullisia tuloksia jopa rajoitetuilla harjoitustiedoilla. Se pystyy käsittelemään tilanteita, joissa koulutustapahtumien määrä on pieni. Se ei vaadi niin paljon harjoitustietoja.
Naive Bayes -luokittimen rajoitus
Naiivi Bayes sisään koneoppiminen olettaa, että kaikki ominaisuudet ovat toisistaan riippumattomia. Joten se ei voi oppia suhteita datan eri ominaisuuksien välillä. Se käsittelee jokaista ominaisuutta ikään kuin sillä ei olisi mitään yhteyttä muihin.
Voit ratkaista tämän ongelman käyttämällä Päätöspuut, Random Forests, Support Vector Machines (SVM), Neural Networks jne. Näillä algoritmeilla on kyky oppia monimutkaisia suhteita ja riippuvuuksia datan ominaisuuksien välillä. Joten nämä voivat ennustaa tarkempia tuloksia.
Naive Bayes -luokittimen sovellukset
Koska tämä algoritmi on nopea ja tehokas, voit käyttää sitä reaaliaikaisten ennusteiden tekemiseen.
Roskapostin tunnistus
Sähköpostipalvelut (kuten Gmail) käyttävät tätä algoritmia määrittääkseen, onko sähköposti roskapostia. Tämä algoritmi on erinomainen roskapostin suodatukseen.
Aistien analyysi
Se voi luokitella tekstin positiiviseksi, negatiiviseksi tai neutraaliksi ominaisuuksien, kuten sanavalinnan, lauserakenteen ja kontekstin, perusteella. Se löytää sovelluksia sosiaalisen median seurannassa, asiakasarvosteluissa ja markkinatutkimuksessa.
Asiakirjojen luokittelu
Se voi luokitella asiakirjat luokkiin, kuten urheilu, politiikka, tekniikka tai talous, perustuen tiettyjen sanojen tai ominaisuuksien esiintymistiheyteen tai esiintymiseen asiakirjassa.
Suositusjärjestelmät
Se voi analysoida käyttäjien mieltymyksiä, historiallisia tietoja ja tuoteominaisuuksia ennustaakseen käyttäjien kiinnostuksen kohteita tai mieltymyksiä suositella tuotteita, elokuvia tai artikkeleita.
Tätä luokittelualgoritmia käytetään myös kasvojentunnistuksessa, sään ennustamisessa, lääketieteellisessä diagnoosissa, ostoksissa, uutisluokituksessa jne. Voit toteuttaa Naive Bayesin Python. On olemassa Naive Bayes -luokitin sklearn, eli sklearn.naive_bayes. Se on moduuli, joka toteuttaa tämän algoritmin.
Yhteenveto
Naiivit Bayes-algoritmit koneoppimisessa ovat luokittajia, joita käytetään enimmäkseen roskapostin havaitsemiseen, uutisten luokitteluun, tunneanalyysiin, sääennusteisiin, ostoksille jne. Naiivit Bayes-algoritmit perustuvat Bayes-lauseeseen. Tämä algoritmi on yksinkertainen ja helppo toteuttaa. Koska se on nopea, voimme käyttää sitä reaaliaikaisissa sovelluksissa. Sen suurin haitta on, että se olettaa itsenäisiä ominaisuuksia (koska itsenäiset ominaisuudet ovat harvoin mahdollisia tosielämässä, joten se tunnetaan nimellä Naive). Se kohtelee jokaista ominaisuutta tasa-arvoisena. Tämän haitan voittamiseksi voit käyttää muita luokittajia, kuten päätöspuuta, satunnaista metsää, tukivektorikonetta (SVM) jne.