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.
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.
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
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.
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.
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.
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.
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.
A feltételes valószínűség képlete a következőre változik:
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.








