Naiv Bayes algoritmus a gépi tanulásban

⚡ Okos összefoglaló

A Naiv Bayes egy felügyelt, valószínűségi osztályozási algoritmus, amely a Bayes-tételre épül, feltételezve, hogy minden jellemző függetlenül járul hozzá a folyamathoz. Az elmélete egy kidolgozott műhely.ping Például az alábbiakban a három modellváltozatot, azok előnyeit, korlátait és valós alkalmazásait tárgyaljuk.

  • 🔘 Meghatározás: Egy osztályozó, amely egy rekordot úgy címkéz fel, hogy összehasonlítja az összes jelölt osztály posterior valószínűségét.
  • ☑️ Naiv feltételezés: Minden jellemzőt feltételesen függetlennek tekintünk, ami ritkán igaz, mégis jól predikciós.
  • ✅ Bayes-képlet: A P(A|B) egyenlő P(B|A) szorozva P(A)-val, osztva P(B)-vel.
  • 🧪 Működő példa: A nap, a kedvezmény és az ingyenes kiszállítás együttesen 97.33 százalékos vásárlási valószínűséget biztosít.
  • 🇧🇷 Három változat: Multinomiális a szószámhoz, Bernoulli a szavak jelenlétéhez, Gauss-féle a folytonos értékekhez.
  • ⚠️ Korlátozás: A korrelált jellemzőket figyelmen kívül hagyjuk, így a döntési fák vagy az SVM-ek jobban illeszkednek a függő adatokhoz.

Naiv Bayes algoritmus a gépi tanulásban

Naiv Bayes osztályozó algoritmus

Az osztályozó egy gépi tanulási algoritmus, amely az adatokat egy vagy több „osztályba” rendezi. Egy e-mail osztályozó egy ismerős példa: minden bejövő üzenetet átvizsgál, és egy Spam vagy Nem Spam osztálycímkét rendel hozzá.

A gépi tanulásban használt naiv Bayes-osztályozó egy felügyelt tanulás osztályozási feladatokhoz használt algoritmus.

Az alábbi ábra ezt a folyamatot vázolja fel.

Naiv Bayes osztályozó, amely osztálycímkét rendel egy bemeneti rekordhoz

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ó a Bayes-tételen alapul, valószínűségi osztályozóként is ismert. Egy elem valószínűsége alapján végez predikciót.

Miért hívják naiv Bayes-szindrómának?

A Naiv Bayes név két részből áll: Naiv és Bayes. Miért naiv? Az algoritmus figyelmen kívül hagyja a jellemzők megjelenésének sorrendjét, így a „Te vagy” és az „Ön vagy” azonosnak tűnik. Azt is feltételezi, hogy egyetlen jellemző sem befolyásolja a másikat. Az alma felismeréséhez a piros színt, a gömb alakú formát és az édes ízt használjuk, és az algoritmus ezeket a jeleket különálló, független bizonyítékként kezeli.

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

Naiv Bayes-tétel

A Bayes-tételt arra használjuk, hogy meghatározzuk egy előzetes tudástól függő feltételes valószínűségű hipotézis valószínűségét. 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, ahogyan azt a Bayes-tétel is megadja.

A Bayes-tétel megértéséhez nézzünk egy egyszerű naiv Bayes-osztályozó példát, két érme feldobását. Két érme feldobásával a következő mintatereket kaphatjuk: {HH, HT, TH, TT}. Tehát ezen események valószínűségei a következők lesznek:

  • 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

A Bayes-tétel egy esemény bekövetkezésének valószínűségét egy 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)

A P(A|B) az A esemény valószínűsége, amikor a B esemény 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 előzetes valószínűsége, azaz az esemény valószínűsége, mielőtt bármilyen bizonyítékot megfigyelnénk. Itt a B esemény egy ismeretlen példány értéke.
  • P(A|B) az A esemény posterior valószínűsége, azaz A valószínűsége a B bizonyíték vizsgálata után.

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

A képlet működésének leggyorsabb módja, ha kézzel futtatjuk.

Vegyünk egy példát az üzletreping a Bayes naiv osztályozó működésének megértéséhez. Ebben az adathalmazban egy 30 soros kis mintaadathalmaz található ehhez a példához.

adatbázisba

Mintaboltping 30 soros adathalmaz Nap, Kedvezmény, Ingyenes szállítás és Vásárlás oszlopokkal

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.

Gyakorisági táblázat, amely minden attribútumértékhez vételi és nem vételi eredményeket számol

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.

Gyakorisági táblázatok a Nap, Kedvezmény és Ingyenes Szállítás attribútumokhoz

Legyen a 'Vásárlás' esemény 'A', a független változók pedig a 'Kedvezmény', az 'Ingyenes szállítás' és a 'Nap', 'B'. Ezeket az eseményeket és változókat fogjuk felhasználni a Bayes-tétel alkalmazásához.

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

Valószínűségi táblázat a Nap attribútumhoz a Vétel és a Nem Vétel függvényében

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 kombinált számításban használt valószínűségi táblázatok a Nap, Kedvezmény és Ingyenes Szállítás esetében

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 %

A két pontszám összege 1.013, nem pedig 1, mivel a függetlenségi feltételezés miatt minden becslés közelítő, így az összeggel való osztás százalékos értékre skálázza át őket.

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.

Változat Jellemzőtípus Tipikus felhasználás
Multinomiális Szószám Téma és dokumentumbesorolás
Bernoulli Bináris jelenléti vagy hiányzó jelzők Rövid szövegek és spam szűrés
Gauss Folyamatos numerikus értékek Érzékelők által leolvasott értékek és mérések

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-féle haranggörbe, amelyet a naiv Bayes-féle folytonos jellemzők modellezésére használnak

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

Gauss-féle naiv Bayes-féle feltételes valószínűségi képlet átlag és variancia felhasználásával

Az scikit elsajátítható A könyvtár két további változatot ad hozzá: a komplementer naiv Bayes-t kiegyensúlyozatlan szövegekhez és a kategorikus naiv Bayes-t diszkrét kategóriákhoz.

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-módszer nem igényel annyi betanítási adatot a jellemzők közötti függetlenség miatt. A modell betanítása után gyorsan tud előre jelezni.
  • 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ódszer korlátozott tanulóadatokkal is elfogadható eredményeket tud szolgáltatni. Olyan helyzeteket is képes kezelni, ahol a tanulópéldányok száma kicsi.

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.

Egy második figyelmeztetés: a jelentett osztályvalószínűségek rosszul kalibráltak, így az előrejelzéshez csatolt megbízhatósági érték nem megbízható valószínűség.

A probléma megoldásához használhatja Döntési fák, Véletlenszerű erdők, Támogató Vektor Gépek (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 pontosabb eredményeket tudnak előre jelezni.

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 (Mint például a Gmail) ezt az algoritmust használja annak meghatározására, hogy egy e-mail spam-e. Ez az algoritmus kiválóan alkalmas spam szűrésre.

É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 arcfelismerésben, időjárás-előrejelzésben, orvosi diagnózisban, vásárlásban is.ping, Hírosztályozás stb. A Naiv Bayes-t implementálhatod a következőben: Python, ahol az sklearn.naive_bayes modul a fent leírt összes változatot biztosítja.

GYIK

Importálja a szükséges változatot innen: sklearn.naive_bayes, bontsd szét az adatokat a train_test_split segítségével, majd hívd meg a fit() függvényt a tanulósorokon és a predict() függvényt a tesztsorokon. A GaussianNB folytonos jellemzőket kezel, míg a MultinomialNB és a BernoulliNB a szöveges számokat és a bináris szójelzőket kezeli.

Ha egy kategória soha nem jelenik meg egy osztállyal a betanítás során, akkor a feltételes valószínűsége nullává válik, és az egész szorzatot törli. A Laplace-simítás minden számlálóhoz egyet ad, így semmi sem omlik össze nullává. A Scikit-learn ezt alfa paraméterként teszi elérhetővé.

Egyik sem nyer egyértelműen. A Naiv Bayes gyorsabban tanul, kevesebb adatra van szüksége, és nagy dimenziójú szövegekkel is megbirkózik. A logisztikus regresszió korrelált jellemzőket modellez, és jobban kalibrált valószínűségeket eredményez. Kis szöveges adathalmazokon a Naiv Bayes gyakran vezet; több adat esetén a logisztikus regresszió megelőzi.

Tarts elő egy tesztkészletet, és hasonlítsd össze az előrejelzéseket a valódi címkékkel egy zavart mátrix, majd vezessük le a pontosságot, a visszahívási esélyt és az F1-et. A pontosság önmagában félrevezető az olyan kiegyensúlyozatlan adatokon, mint a spam, ahol az egyik osztály dominál a mintában.

Kisbetűsítsd a szöveget, távolítsd el az írásjeleket, a stopszavakat, és opcionálisan írd a tokeneket szótagba, majd alakítsd át az egyes dokumentumokat számláló vagy TF-IDF vektorrá. A Bernoulli-variánsok bináris jelenlét-jelzőket igényelnek a számlálók helyett. Alkalmazd azonos lépéseket a betanítás és az előrejelzés során.

A Naiv Bayes-hálózat a legegyszerűbb Bayes-hálózat: egy osztálycsomópont, amelyről minden jellemző közvetlenül függ, és nincsenek kapcsolatok a jellemzők között. Egy általános Bayes-hálózat lehetővé teszi ezen függőségi élek megrajzolását, így olyan korrelációkat modellez, amelyeket a Naiv Bayes szándékosan figyelmen kívül hagy.

Az automatizált gépi tanulási eszközök kisimított értékeket, jellemzőreprezentációkat és variánsválasztást keresnek, majd keresztvalidált pontszám alapján rangsorolják a jelölteket. Ez kiküszöböli a manuális próbálkozások és hibák nagy részét – továbbra is Ön dönti el, hogy melyik metrika számít, és hogy a győztes ésszerűen viselkedik-e.

GitHub másodpilóta gyorsan elkészíti a sablonmodell vázlatát – importálás, tesztelés és tesztelés felosztása, illesztés és előrejelzés – egy rövid megjegyzésből. Mindig ellenőrizze a kiválasztott variánst és a kiértékelő kódot, mert egy hihető szkript is rossz modellt képezhet.

Foglald össze ezt a bejegyzést a következőképpen: