Algoritmus Naivného Bayesa: Príklad a Riešenie
Základný princíp: Naivný Bayesov algoritmus sa opiera na Bayesovom pravidle, ktoré sa využíva na predpovedanie pravdepodobnosti príslušnosti objektu do určitej kategórie na základe jeho vlastností.
Bayesovo pravidlo hovorí, že pravdepodobnosť hypotézy H vzhľadom na nové dáta E je:
P(H∣E)=P(E)P(E∣H)⋅P(H)
Kde:
- P(H∣E) je pravdepodobnosť, že H je pravdivé, ak sú dáta E.
- P(E∣H) je pravdepodobnosť, že dáta E sú pozorované, ak je H pravdivé.
- P(H) je a priori pravdepodobnosť hypotézy H.
- P(E) je a priori pravdepodobnosť pozorovania dát E.
Naivné predpoklady: Pri použití Naivného Bayesa sa predpokladá, že vlastnosti (atribúty) sú nezávislé, čo znamená, že hodnoty jedného atribútu nemajú vplyv na hodnoty iných atribútov. Tento predpoklad je v praxi často zjednodušujúci, ale napriek tomu môže byť veľmi účinný.
Praktický príklad: Klasifikácia e-mailov
Predpokladajme, že chceme klasifikovať e-maily ako „spam“ alebo „ne-spam“. Použijeme Naivného Bayesa na základe obsahu e-mailu, konkrétne na základe výskytu určitých kľúčových slov.
Krok 1: Príprava údajov
Máme dve triedy:
- Spam
- Ne-spam
A kľúčové slová, ktoré môžu byť v e-maile prítomné:
- „zľava“
- „doprava“
- „získajte“
- „výhra“
Na základe historických údajov vieme, že:
- 40% e-mailov je spam
- 60% e-mailov je ne-spam
Ďalej vieme, že:
- 50% spam e-mailov obsahuje „zľava“
- 30% spam e-mailov obsahuje „doprava“
- 20% spam e-mailov obsahuje „získajte“
- 10% spam e-mailov obsahuje „výhra“
A pre ne-spam e-maily:
- 10% ne-spam e-mailov obsahuje „zľava“
- 20% ne-spam e-mailov obsahuje „doprava“
- 40% ne-spam e-mailov obsahuje „získajte“
- 30% ne-spam e-mailov obsahuje „výhra“
Krok 2: Použitie Naivného Bayesa na novú e-mailovú správu
Predpokladajme, že nový e-mail obsahuje kľúčové slová „zľava“ a „výhra“. Chceme zistiť, či je tento e-mail spam.
- Vypočítame pravdepodobnosť, že e-mail je spam:
P(Spam)=0.40
- Vypočítame pravdepodobnosť, že e-mail obsahuje slová „zľava“ a „výhra“, ak je spam:
P(zlˇava∩vyˊhra∣Spam)=P(zlˇava∣Spam)⋅P(vyˊhra∣Spam)
P(zlˇava∣Spam)=0.50 P(vyˊhra∣Spam)=0.10
P(zlˇava∩vyˊhra∣Spam)=0.50×0.10=0.05
- Vypočítame pravdepodobnosť, že e-mail obsahuje slová „zľava“ a „výhra“, ak je ne-spam:
P(zlˇava∩vyˊhra∣ne-spam)=P(zlˇava∣ne-spam)⋅P(vyˊhra∣ne-spam)
P(zlˇava∣ne-spam)=0.10 P(vyˊhra∣ne-spam)=0.30
P(zlˇava∩vyˊhra∣ne-spam)=0.10×0.30=0.03
- Vypočítame a posteriori pravdepodobnosť, že e-mail je spam vzhľadom na slová „zľava“ a „výhra“:
P(Spam∣zlˇava,vyˊhra)=P(zlˇava,vyˊhra)P(zlˇava,vyˊhra∣Spam)⋅P(Spam)
Kde P(zlˇava,vyˊhra) je pravdepodobnosť, že e-mail obsahuje tieto slová bez ohľadu na to, či je spam alebo ne-spam. Tento môžeme vypočítať ako:
P(zlˇava,vyˊhra)=P(zlˇava∩vyˊhra∣Spam)⋅P(Spam)+P(zlˇava∩vyˊhra∣ne-spam)⋅P(ne-spam)
P(zlˇava,vyˊhra)=0.05×0.40+0.03×0.60=0.02+0.018=0.038
P(Spam∣zlˇava,vyˊhra)=0.0380.05×0.40≈0.526
- Vypočítame a posteriori pravdepodobnosť, že e-mail je ne-spam vzhľadom na slová „zľava“ a „výhra“:
P(ne-spam∣zlˇava,vyˊhra)=P(zlˇava,vyˊhra)P(zlˇava,vyˊhra∣ne-spam)⋅P(ne-spam)
P(ne-spam∣zlˇava,vyˊhra)=0.0380.03×0.60≈0.474
Záver
Naivný Bayesov algoritmus nám poskytuje pravdepodobnostný rámec na rozhodovanie, či je e-mail spam alebo nie. Na základe nášho výpočtu je pravdepodobnosť, že e-mail s kľúčovými slovami „zľava“ a „výhra“ je spam približne 52.6%, zatiaľ čo pravdepodobnosť, že je ne-spam, je približne 47.4%. Tento prístup je účinný, najmä pri veľkých množstvách dát, kde môže byť jednoduché a rýchle zaradenie do kategórií veľmi cenné.
Populárne komentáre
Zatiaľ žiadne komentáre