Naiivi Bayes-algoritmi koneoppimisessa

⚡ Älykäs yhteenveto

Naiivi Bayes on valvottu, probabilistinen luokittelualgoritmi, joka perustuu Bayesin lauseeseen, olettaen, että jokainen ominaisuus vaikuttaa itsenäisesti. Sen teoria, työpajaping Esimerkiksi kolme mallivarianttia, edut, rajoitukset ja todelliset sovellukset käsitellään alla.

  • 🔘 Määritelmä: Luokittelija, joka nimeää tietueen vertaamalla jokaisen ehdokasluokan posterioritodennäköisyyttä.
  • ☑️ Naiivi oletus: Jokaista ominaisuutta käsitellään ehdollisesti riippumattomana, mikä harvoin pätee, mutta ennustaa silti hyvin.
  • Bayesin kaava: P(A|B) on yhtä kuin P(B|A) kerrottuna P(A):lla ja jaettuna P(B):llä.
  • 🧪 Toimiva esimerkki: Päivä, alennus ja ilmainen toimitus yhdessä antavat 97.33 prosentin ostotodennäköisyyden.
  • 🛠️ Kolme muunnosta: Multinomiaalinen sanamäärille, Bernoullilainen sanojen läsnäololle, Gaussinen jatkuville arvoille.
  • ⚠️ rajoitus: Korreloituneita ominaisuuksia ei oteta huomioon, joten päätöspuut tai SVM:t sopivat paremmin riippuvaisille tiedoille.

Naiivi Bayes-algoritmi koneoppimisessa

Naiivi Bayesin luokittelualgoritmi

Luokittelija on koneoppimisalgoritmi, joka lajittelee tiedot yhteen tai useampaan "luokkaan". Sähköpostiluokittelija on yksi tuttu esimerkki: se skannaa jokaisen saapuvan viestin ja liittää siihen luokkatunnisteen, joka on joko Roskaposti tai Ei roskapostia.

Naiivi Bayes-luokittelija koneoppimisessa on valvottu oppiminen luokittelutehtävissä käytetty algoritmi.

Alla oleva kaavio hahmottelee kyseisen virtauksen.

Naiivi Bayes-luokittelija, joka määrittää luokkatunnisteen syötetietueelle

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-luokittelija perustuu Bayesin lauseeseen, sitä kutsutaan myös todennäköisyysluokittelijaksi. Se ennustaa jonkin kohteen todennäköisyyden perusteella.

Miksi sitä kutsutaan naiiviksi Bayesiksi?

Nimessä Naive Bayes on kaksi osaa: Naive ja Bayes. Miksi naiivi? Algoritmi ei huomioi ominaisuuksien esiintymisjärjestystä, joten "You are" ja "Are you" näyttävät identtisiltä. Se olettaa myös, ettei mikään ominaisuus vaikuta mihinkään toiseen. Omenan tunnistamiseen käytetään punaista väriä, pallomaista muotoa ja makeaa makua, ja algoritmi käsittelee kutakin näistä vihjeistä erillisenä, itsenäisenä todisteena.

  • Naiivi Bayes-luokittelija olettaa, että ominaisuudet ovat toisistaan ​​riippumattomia. Koska tämä on harvoin mahdollista tosielämän datassa, luokittelijaa kutsutaan naiiviksi.
  • Tämä luokittelualgoritmi perustuu Bayesin lauseeseen, joten sitä kutsutaan naiiviksi Bayesin luokittelijaksi.

Naiivi Bayesin lause

Bayesin lausetta käytetään hypoteesin todennäköisyyden löytämiseen ehdollisilla todennäköisyyksillä, jotka riippuvat ennakkotiedosta. Tämä lause on nimetty Thomas Bayesin mukaan. Naiivi Bayesin luokittelija toimii ehdollisen todennäköisyyden periaatteella, kuten Bayesin lauseessa esitetään.

Ymmärtääksemme Bayesin lauseen, tarkastellaan yksinkertaista naiivia Bayes-luokittelijaesimerkkiä kahden kolikon heittämisestä. Heittämällä kaksi kolikkoa saadaan seuraavat esimerkkiavaruudet: {HH, HT, TH, TT}. Näiden tapahtumien todennäköisyydet ovat siis:

  • 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 toisen, jo tapahtuneen tapahtuman todennäköisyyden perusteella. Bayesin lauseen kaava on annettu seuraavasti:

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

P(A|B) on tapahtuman A todennäköisyys, kun tapahtuma 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 tapahtuman A prioritodennäköisyys eli tapahtuman todennäköisyys ennen kuin siitä havaitaan mitään todisteita. Tässä tapahtuma B on tuntemattoman esiintymän arvo.
  • P(A|B) on tapahtuman A posterioritodennäköisyys eli tapahtuman A todennäköisyys todistusaineiston B tarkastelun jälkeen.

Naiivin Bayes-luokittelijan toimiva esimerkki

Nopein tapa nähdä kaavan toimivuus on ajaa se käsin.

Otetaan esimerkiksi kaupastaping ymmärtää Bayesin naiivin luokittelijan toimintaa. Tässä aineistossa on pieni, 30 rivin esimerkkiaineisto tätä esimerkkiä varten.

aineisto

Näytekauppaping 30 rivin tietojoukko, jossa on Päivä-, Alennus-, Ilmainen toimitus- ja Osta-sarakkeet

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

Frekvenssitaulukon mukaan osto- ja ei-osto-tulokset kullekin attribuutin arvolle

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

Päivä-, Alennus- ja Ilmainen toimitus -attribuuttien tiheystaulukot

Olkoon tapahtuma 'Osta' merkittynä 'A':lla ja riippumattomat muuttujat, eli 'Alennus', 'Ilmainen toimitus' ja 'Päivä', merkittynä 'B':llä. Käytämme näitä tapahtumia ja muuttujia Bayesin lauseen soveltamiseen.

Vaihe 2) Lasketaan nyt todennäköisyystaulukot yksitellen.

Päivä-attribuutin todennäköisyystaulukko osto- ja ostokiellon suhteen

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.

Yhdistetyssä laskennassa käytetyt todennäköisyystaulukot päivälle, alennukselle ja ilmaiselle toimitukselle

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 %

Kahden pistemäärän summa on 1.013 yhden sijaan, koska riippumattomuusoletuksen vuoksi molemmat arviot ovat likimääräisiä, joten jakaminen kokonaissummalla skaalaa ne prosenttiosuuksiksi.

Huomaa, että koska 97.33 % on suurempi kuin 2.67 %. Voimme päätellä, että keskivertoasiakas ostaa lomalla alennuksella ja ilmaisella toimituksella.

Naiivin Bayes-mallin tyypit

Naive Bayes -luokittajia on monenlaisia. Tässä olemme keskustelleet Multinomial-, Bernoulli- ja Gaussian Naive Bayes -luokittelijoista.

variantti Ominaisuuden tyyppi Tyypillinen käyttö
Multinomi Sanamäärät Aihe- ja asiakirjaluokittelu
Bernoulli Binääriset läsnä- tai poissaololiput Lyhyet tekstiviestit ja roskapostin suodatus
Gaussin Jatkuvat numeeriset arvot Anturien lukemat ja mittaukset

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 kellokäyrä, jota käytetään jatkuvien ominaisuuksien mallintamiseen naiivissa Bayesissa

Ehdollisen todennäköisyyden kaava muuttuu

Gaussinen naiivi Bayesin ehdollinen todennäköisyyskaava keskiarvon ja varianssin avulla

scikit opittava kirjastoon lisätään kaksi uutta varianttia: komplementtisen naiivin Bayesin epätasapainoiselle tekstille ja kategorisen naiivin Bayesin diskreeteille kategorioille.

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: Naiivi Bayes ei vaadi yhtä paljon harjoitusdataa ominaisuuksien välisen riippumattomuuden vuoksi. Se pystyy ennustamaan 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: Naiivi Bayes voi tarjota kohtuullisia tuloksia jopa rajoitetulla harjoitusdatalla. Se pystyy käsittelemään tilanteita, joissa harjoitusinstanssien määrä on pieni.

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.

Toinen varoitus: sen raportoimat luokkatodennäköisyydet on kalibroitu huonosti, joten ennusteeseen liitetty luottamusluku ei ole luotettava todennäköisyys.

Voit ratkaista tämän ongelman käyttämällä Päätöspuut, Satunnaiset metsät, Tukivektorikoneet (SVM), Neuraaliverkot jne. Näillä algoritmeilla on kyky oppia monimutkaisia ​​​​suhteita ja riippuvuuksia datan ominaisuuksien välillä. Joten ne 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 sopii erinomaisesti 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ääennusteissa, lääketieteellisissä diagnooseissa, kaupoissa ja muissa palveluissa.ping, Uutisten luokittelu jne. Voit toteuttaa naiivin Bayesin Python, jossa sklearn.naive_bayes-moduuli tarjoaa kaikki edellä kuvatut variantit.

UKK

Tuo tarvitsemasi variantti osoitteesta sklearn.naive_bayes, jaa data train_test_split-funktiolla ja kutsu sitten fit()-funktiota harjoitusriveille ja predict()-funktiota testiriveille. GaussianNB sopii jatkuville ominaisuuksille, kun taas MultinomialNB ja BernoulliNB käsittelevät tekstimääriä ja binäärisiä sanalippuja.

Jos kategoria ei koskaan esiinny luokassa harjoittelussa, sen ehdollinen todennäköisyys muuttuu nollaksi ja pyyhkii pois koko tulon. Laplace-tasoitus lisää yhden jokaiseen laskuriin, joten mikään ei supistu nollaksi. Scikit-learn paljastaa tämän alfa-parametrina.

Kumpikaan ei voita suoraan. Naiivi Bayes harjoittelee nopeammin, tarvitsee vähemmän dataa ja selviytyy moniulotteisesta tekstistä. Logistinen regressio mallintaa korreloivia piirteitä ja tuottaa paremmin kalibroituja todennäköisyyksiä. Pienissä tekstiaineistoissa naiivi Bayes usein johtaa; suuremmilla datamäärillä logistinen regressio ohittaa sen.

Pidä testisarjaa esillä ja vertaa ennusteita todellisiin merkintöihin käyttämällä sekaannusmatriisi, sitten johda tarkkuus, kattavuus ja F1. Pelkkä tarkkuus johtaa harhaan epätasapainoisessa datassa, kuten roskapostissa, jossa yksi luokka hallitsee otosta.

Kirjoita teksti pienellä kirjaimella, poista välimerkit, pysäytyssanat ja halutessasi lisää merkkijonoihin vartalon, ja muuta sitten jokainen dokumentti laskuriksi tai TF-IDF-vektoriksi. Bernoullin variantit haluavat binaariset läsnäololiput laskurien sijaan. Suorita identtiset vaiheet sekä koulutus- että ennustusvaiheessa.

Naiivi Bayes on yksinkertaisin Bayes-verkko: yksi luokkasolmu, josta jokainen ominaisuus riippuu suoraan, eikä ominaisuuksien välillä ole linkkejä. Yleinen Bayes-verkko antaa sinun piirtää nämä riippuvuusreunat, joten se mallintaa korrelaatioita, jotka naiivi Bayes tarkoituksella jättää huomiotta.

Automatisoidut koneoppimistyökalut etsivät tasoitusarvoja, ominaisuuksien esityksiä ja varianttien valintoja ja luokittelevat sitten ehdokkaat ristiinvalidoitujen pistemäärien perusteella. Tämä poistaa suurimman osan manuaalisista kokeiluista ja erehdyksistä – sinä päätät edelleen, mikä mittari on tärkeä ja toimiiko voittaja järkevästi.

GitHub Copilot laatii mallipohjan nopeasti lyhyen kommentin perusteella – tuonnit, juna-testausjako, sovitus- ja ennustuspuhelut. Tarkista aina valitsemansa variantti ja arviointikoodi, koska uskottava skripti voi silti kouluttaa väärän mallin.

Tiivistä tämä viesti seuraavasti: