Naiivi Bayes-algoritmi koneoppimisessa

Naiivi Bayesin luokittelualgoritmi

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.

Naiivi Bayesin luokittelualgoritmi

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

Toimiva esimerkki Naive Bayesin luokittimesta

Ongelmana on ennustaa, ostaako henkilö tuotteen tietyllä päivä-, alennus- ja ilmaistoimituksen yhdistelmällä Naive Bayes -lauseen avulla.

Toimiva esimerkki Naive Bayesin luokittimesta

Vaihe 1) Luomme kullekin määritteelle taajuustaulukot käyttämällä tietojoukossa mainittuja syöttötyyppejä, kuten päivät, alennus ja ilmainen toimitus.

Toimiva esimerkki Naive Bayesin luokittimesta

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.

Toimiva esimerkki Naive Bayesin luokittimesta

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.

Toimiva esimerkki Naive Bayesin luokittimesta

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.

Gaussin naiivi Bayes

Ehdollisen todennäköisyyden kaava muuttuu

Gaussin naiivi Bayes

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.