Naiv Bayes algoritmus a gépi tanulásban

Naiv Bayes osztályozó algoritmus

Naiv Bayes osztályozó algoritmus

Az osztályozó egy gépi tanulási algoritmus, amely az adatokat „osztályok” egy vagy több csoportjába sorolja. Az e-mail osztályozó egy olyan osztályozó példa, amely átvizsgálja az e-maileket, és osztálycímke szerint szűri őket: Spam vagy Not Spam.

A Naive Bayes Classifier a gépi tanulásban egy felügyelt gépi tanulás osztályozási feladatokhoz.

Naiv Bayes osztályozó algoritmus

A Naive Bayest osztályozási problémák megoldására használják. Egy objektum valószínűsége alapján jósol. A Naive Bayes a Bayes-tételen alapul, és többnyire szövegosztályozásra használatos. A Naive Bayes egy valószínűségi osztályozási algoritmus, amely könnyen megvalósítható és gyorsan betanítható.

Mivel a naiv Bayes osztályozó Bayes-tételen alapul, ezért valószínűségi osztályozóként ismert. Egy elem valószínűsége alapján jósol.

Miért nevezhető naiv Bayes?

A Naive Bayes osztályozónak két szója van: Naive és Bayes. Miért Navie? Ez az algoritmus minden szómondatot azonosként kezel. Például a „Te vagy” és a „Te vagy” ugyanaz ennél az algoritmusnál. Ez nem függ a jellemzőktől vagy a jellemzők előfordulásától. Ha azonosítani szeretné az almát, akkor piros színre, gömb alakúra, édes ízre van szüksége ahhoz, hogy almaként ismerje fel. Ez azt jelenti, hogy ezek a tulajdonságok függetlenek egymástól.

  • A naiv Bayes osztályozó feltételezi, hogy a jellemzők függetlenek egymástól. Mivel ez a valós adatokban ritkán lehetséges, ezért az osztályozót naivnak nevezzük.
  • Ez az osztályozási algoritmus a naiv Bayes osztályozóként ismert Bayes-tételen alapul.

Naiv Bayes-tétel

A Bayes-tételt arra használjuk, hogy meghatározzuk egy hipotézis valószínűségét, amelynek feltételes valószínűsége az előzetes tudástól függ. Ez a tétel Thomas Bayesről kapta a nevét. A naiv Bayes-osztályozó a feltételes valószínűség elvén működik, a Bayes-tétel szerint.

Bayes tételének megértéséhez nézzünk meg egy egyszerű naiv Bayes osztályozó példát két érme feldobására. Ezeket a mintatereket két érme feldobásával kaphatjuk meg: {HH, HT, TH, TT}. Tehát ezeknek az eseményeknek a valószínűsége a következő lesz:

  • Két fej megszerzése = 1/4
  • Legalább egy farok = 3/4
  • A második érme fejjel, mivel az első érme farka = 1/2
  • Ha az első érmével két fejet kapunk, az egy fej = 1/2

Bayes tétele egy esemény bekövetkezésének valószínűségét egy másik, már megtörtént esemény valószínűsége alapján számítja ki. A Bayes-tétel képlete a következő:

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

P(A|B) Páros A valószínűsége, ha páros B már bekövetkezett. A P(B) valószínűség nem lehet nulla.

  • Meg kell találni az A esemény valószínűségét, amely akkor van megadva, ha B esemény (bizonyíték) igaz.
  • P(A) az A a priori (a priori, azaz egy megfigyelt esemény valószínűsége a bizonyítás előtt). Itt B esemény egy ismeretlen példány értéke.
  • P(A|B) a B esemény utólagos valószínűsége, azaz az esemény valószínűsége a bizonyítékok megvizsgálása után.

Naív Bayes osztályozójának működő példája

Vegyünk egy példát a vásárlásra, hogy megértsük a Bayes Naive Classifier működését. Ebben az adatkészletben van egy kis, 30 soros mintaadatkészlet ehhez a példához.

adatbázisba

A Naive Bayes osztályozójának működő példája

A probléma az, hogy a Naive Bayes-tétel segítségével megjósoljuk, hogy egy személy megvásárolja-e a terméket a nap, a kedvezmény és az ingyenes szállítás meghatározott kombinációjával.

A Naive Bayes osztályozójának működő példája

Step 1) Az egyes attribútumokhoz gyakorisági táblázatokat készítünk az adatkészletben említett bemeneti típusok használatával, mint például a napok, a kedvezmény és az ingyenes szállítás.

A Naive Bayes osztályozójának működő példája

Legyen az „A” jelzésű „Vásárlás” esemény és a független változók, nevezetesen a „Kedvezmény”, „Ingyenes szállítás” és „Nap” „B” jelöléssel. Ezeket az eseményeket és változókat fogjuk felhasználni a Bayes-tétel alkalmazására.

Step 2) Most egyenként számítsuk ki a Likelihood táblákat.

A Naive Bayes osztályozójának működő példája

Példa 1:

E valószínűségi táblázat alapján az alábbiak szerint számítjuk ki a feltételes valószínűségeket.

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

És keresse meg P(A/B)-t a Bayes-tétel segítségével,

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

Hasonlóképpen, ha A vásárlás, akkor

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

Jegyzet: Mivel a P(Vásárlás | Hétköznap) több, mint a P(No Buy | Weekday), arra a következtetésre juthatunk, hogy a vásárló nagy valószínűséggel egy hétköznap vásárolja meg a terméket.

Step 3) Hasonlóképpen mindhárom változó alapján kiszámíthatjuk egy esemény bekövetkezésének valószínűségét. Most a fenti gyakorisági táblázatok segítségével kiszámítjuk a valószínűségi táblákat mindhárom változóhoz.

A Naive Bayes osztályozója működő példája

Példa 2:

Most ennek a három valószínűségi táblázatnak a segítségével kiszámítjuk, hogy az ügyfél valószínűleg vásárol-e a „Nap”, „Kedvezmény” és „Ingyenes szállítás” kombinációja alapján.

Vegyük a következő tényezők kombinációját:

  • Nap = ünnep
  • Kedvezmény = Igen
  • Ingyenes kiszállítás = Igen

Mikor, A = Vásárlás

Számítsa ki a vásárlás feltételes valószínűségét a nap, az árengedmény és az ingyenes szállítás alábbi kombinációjával.

Ahol B van:

  • Nap = ünnep
  • Kedvezmény = Igen
  • Ingyenes kiszállítás = Igen

És A = Vásárlás

Ezért

= 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

Mikor, A = nincs vásárlás

Hasonlóképpen számítsa ki a vásárlás feltételes valószínűségét a nap, a kedvezmény és az ingyenes szállítás következő kombinációja esetén.

Ahol B van:

  • Nap = ünnep
  • Kedvezmény = Igen
  • Ingyenes kiszállítás = Igen

És A = No Buy

Ezért

= 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) Ennélfogva,

A vásárlás valószínűsége = 0.986

A vásárlás elmaradásának valószínűsége = 0.027

Végül feltételes valószínűséggel vásárolunk ezen a napon. Most általánosítsuk ezeket a valószínűségeket, hogy megkapjuk az események valószínűségét.

  • Valószínűségek összege = 0.986 + 0.027 = 1.013
  • A vásárlás valószínűsége = 0.986 / 1.013 = 97.33 %
  • A vásárlás elmaradásának valószínűsége = 0.027 / 1.013 = 2.67 %

Vegye figyelembe, hogy mivel a 97.33% nagyobb, mint 2.67%. Megállapíthatjuk, hogy az átlagos vásárló egy nyaraláson kedvezményesen és ingyenes kiszállítással vásárol.

A naiv Bayes-modell típusai

Sokféle naiv Bayes osztályozó létezik. Itt a multinomiális, Bernoulli és Gaussian Naive Bayes osztályozókat tárgyaltuk.

1. Multinomiális Naive Bayes

Ezt a fajta Naive Bayes modellt dokumentumosztályozási problémákra használják. Olyan funkciókkal működik, amelyek a szavak gyakoriságát képviselik a dokumentumban. Az osztályozó a szavak előfordulását és számát veszi figyelembe, hogy meghatározza annak valószínűségét, hogy egy dokumentum egy adott kategóriába, például sport, politika vagy technológia tartozik.

2. Bernoulli Naive Bayes

Ez hasonló a Naive Bayes multinomiálishoz. A Bernoulli Naive Bayes osztályozót dokumentumosztályozási feladatokhoz használják. Azonban logikai előrejelzőket használ. Azt jelzi, hogy egy szó jelen van-e vagy sem, és csak Igen vagy Nem értékeket vesz fel. Az osztályozó kiszámítja a valószínűségeket az alapján, hogy egy szó előfordul-e a szövegben vagy sem.

3. Gauss-féle naiv Bayes

Ezt az osztályozót folytonos érték, de nem diszkrét érték esetén használjuk. Ez az osztályozó kiszámítja a valószínűségeket a paraméterek segítségével Gauss eloszlás, azaz az átlag és a variancia.

Gauss naiv Bayes

A feltételes valószínűség képlete a következőre változik:

Gauss naiv Bayes

A naiv Bayes osztályozó előnyei és korlátai

A Naive Bayes algoritmusnak számos előnyei és hátrányai vannak a gépi tanulásban.

A Naive Bayes osztályozó előnyei

  • Egyszerűség és hatékonyság: A Naive Bayes egyszerű, könnyen betanítható és megvalósítható. Hatékony az alacsony számítási költség miatt. Hatékonyan képes kezelni a nagy adatkészleteket.
  • Gyors képzés és előrejelzés: A naiv Bayes nem igényel annyi képzési adatot, mivel a funkciók függetlenek. Gyorsan képes előre jelezni, ha a modellt betanítják.
  • skálázhatóság: A naiv Bayes képes kezelni a nagy dimenziós adatkészleteket nagyszámú szolgáltatással. Akkor is jól teljesít, ha a funkciók száma nagyobb, mint a betanítási példák száma. Az adatpontok és a prediktorok számával skálázódik. Folyamatos és diszkrét adatokat is kezel.
  • Robusztusság az irreleváns tulajdonságokhoz: Nem érzékeny az irreleváns funkciókra.
  • Jól működik kis edzőkészletekkel: A naiv Bayes még korlátozott edzési adatok mellett is ésszerű eredményeket tud nyújtani. Kezelheti azokat a helyzeteket, amikor a képzési példányok száma kicsi. Nem igényel annyi edzési adatot.

A naiv Bayes osztályozó korlátozása

Naiv Bayes be gépi tanulás feltételezi, hogy minden jellemző független egymástól. Tehát nem tudja megtanulni az adatok különböző jellemzői közötti kapcsolatokat. Az egyes jellemzőket úgy kezeli, mintha nem lennének kapcsolatban a többivel.

A probléma megoldásához használhatja Döntési fák, Random Forests, Support Vector Machines (SVM), Neurális hálózatok stb. Ezek az algoritmusok képesek megtanulni az adatok jellemzői közötti összetett kapcsolatokat és függőségeket. Így ezek pontosabb eredményeket jelezhetnek előre.

A Naive Bayes osztályozó alkalmazásai

Mivel ez az algoritmus gyors és hatékony, valós idejű előrejelzések készítésére használhatja.

Spam észlelés

E-mail szolgáltatások (például Gmail) használja ezt az algoritmust annak meghatározására, hogy egy e-mail spam-e. Ez az algoritmus kiválóan alkalmas a spam szűrésére.

Érzelmi elemzés

A szöveget pozitívnak, negatívnak vagy semlegesnek minősítheti olyan jellemzők alapján, mint a szóválasztás, a mondatszerkezet és a kontextus. Alkalmazásokat talál a közösségi média megfigyelésében, vásárlói értékelésekben és piackutatásban.

Dokumentum osztályozás

A dokumentumokat olyan kategóriákba sorolhatja, mint például a sport, a politika, a technológia vagy a pénzügy, meghatározott szavak vagy jellemzők gyakorisága vagy jelenléte alapján.

Ajánló rendszerek

Elemezheti a felhasználói preferenciákat, az előzményadatokat és a tételjellemzőket, hogy előre jelezze a felhasználók érdeklődését vagy a termékek, filmek vagy cikkek ajánlásával kapcsolatos preferenciáit.

Ezt az osztályozó algoritmust használják az arcfelismerésben, az időjárás előrejelzésben, az orvosi diagnosztikában, a vásárlásban, a hírek osztályozásában stb. A Naive Bayes-t megvalósíthatja Python. Van egy Naive Bayes sklearn osztályozó, azaz sklearn.naive_bayes. Ez a modul valósítja meg ezt az algoritmust.

Következtetés

A gépi tanulás naiv Bayes algoritmusai olyan osztályozók, amelyeket leggyakrabban spamészlelésben, hírek osztályozásában, hangulatelemzésben, időjárás-előrejelzésben, vásárlásban stb. használnak. A Naive Bayes algoritmusok a Bayes-tételen alapulnak. Ez algoritmus egyszerű és könnyen megvalósítható. Mivel gyors, valós idejű alkalmazásokban is használhatjuk. Legnagyobb hátránya, hogy független tulajdonságokat feltételez (mivel a független tulajdonságok a való életben ritkán lehetségesek, ezért Naiv néven ismert). Minden jellemzőt egyenlőként kezel. Ennek a hátránynak a kiküszöbölésére más osztályozókat is használhat, mint például a döntési fa, a véletlenszerű erdő, a támogatási vektorgép (SVM) stb.