Základní princip: Bayesova věta

Jádrem celého modelu je matematický koncept podmíněné pravděpodobnosti. Ve strojovém učení se často ptáme: „Jaká je pravděpodobnost, že tento datový bod patří do třídy C, když má vlastnosti X?“ (Například: Jaká je pravděpodobnost, že je e-mail spam, když obsahuje slovo sleva).

Bayesova věta tento problém řeší tak, že ho “otočí”. Vzorec vypadá následovně:

  • (A posteriori pravděpodobnost): To, co chceme zjistit. Pravděpodobnost, že záznam patří do třídy za předpokladu, že jsme zaznamenali vlastnosti .
  • (A priori pravděpodobnost): Základní pravděpodobnost dané třídy v datech. (Např. víme, že celkově je 40 % všech e-mailů spam. Takže a priori pravděpodobnost spamu je 0.4).
  • (Věrohodnost / Likelihood): Pravděpodobnost, že uvidíme tyto konkrétní vlastnosti, pokud víme, že záznam pochází ze třídy . (Např. jak často se slovo sleva vyskytuje ve spamech).
  • (Evidence): Celková pravděpodobnost výskytu daných vlastností napříč všemi třídami. V praxi se tento jmenovatel často ignoruje, protože je stejný pro všechny třídy a nám jde jen o to porovnat, která třída má větší hodnotu čitatele.

Proč se mu říká „Naivní“?

Přívlastek „naivní“ si algoritmus vysloužil kvůli jednomu obrovskému zjednodušení: předpokládá, že všechny vlastnosti (příznaky) v datech jsou na sobě absolutně nezávislé.

Spam e-maily (celkem 3):

  1. “výhra peníze sleva”
  2. “sleva sleva akce”
  3. “peníze zdarma”

Ham e-maily (celkem 2): 4. “ahoj schůzka zítra” 5. “peníze za oběd”

3. Krok: Výpočet apriorní pravděpodobnosti

Jaká je šance, že jakýkoliv náhodný e-mail je spam, ještě než si ho vůbec přečteme? Z naší databáze víme, že 3 z 5 e-mailů jsou spam.

  • Pravděpodobnost Spamu: 3/5 = 0.6 (60 %)
  • Pravděpodobnost Hamu: 2/5 = 0.4 (40 %)

Výpočet pro slovo “sleva”:

  • Vyskytuje se ve Spamu: 3x. Výpočet: (3 + 1) / (8 + 10) = 4/18 = 0.222
  • Vyskytuje se v Hamu: 0x. Výpočet: (0 + 1) / (6 + 10) = 1/16 = 0.062

Výpočet pro slovo “peníze”:

  • Vyskytuje se ve Spamu: 2x. Výpočet: (2 + 1) / (8 + 10) = 3/18 = 0.166
  • Vyskytuje se v Hamu: 1x. Výpočet: (1 + 1) / (6 + 10) = 2/16 = 0.125

5. Krok: Finální rozhodnutí (Násobení)

Nyní použijeme Naivní Bayesův vzorec – vezmeme apriorní pravděpodobnost a vynásobíme ji pravděpodobnostmi jednotlivých slov.

Testujeme hypotézu SPAM:

Skóre = Pravděpodobnost(Spam) × Pravděpodobnost(“sleva” ve Spamu) × Pravděpodobnost(“peníze” ve Spamu) Skóre = 0.6 × 0.222 × 0.166 = 0.0221

Testujeme hypotézu HAM (Normální zpráva):

Skóre = Pravděpodobnost(Ham) × Pravděpodobnost(“sleva” v Hamu) × Pravděpodobnost(“peníze” v Hamu) Skóre = 0.4 × 0.062 × 0.125 = 0.0031

Závěr

Porovnáme obě skóre: 0.0221 (Spam) je výrazně více než 0.0031 (Ham).

Naivní Bayesův klasifikátor tedy zprávu “sleva peníze” bezpečně označí jako SPAM.