Naivní Bayesův algoritmus ve strojovém učení

Naivní Bayesův klasifikátorový algoritmus

Naivní Bayesův klasifikátorový algoritmus

Klasifikátor je algoritmus strojového učení, který kategorizuje data do jedné nebo více ze sady „tříd“. Klasifikátor e-mailů je jedním z příkladů klasifikátoru, který prohledává e-maily a filtruje je podle štítku třídy: Spam nebo Není spam.

Naive Bayes Classifier ve strojovém učení je supervizované strojové učení pro klasifikační úlohy.

Naivní Bayesův klasifikátorový algoritmus

Naive Bayes se používá pro řešení klasifikačních problémů. Předpovídá na základě pravděpodobnosti objektu. Naive Bayes je založen na Bayesově teorému a používá se především pro klasifikaci textu. Naive Bayes je pravděpodobnostní klasifikační algoritmus, který se snadno implementuje a rychle trénuje.

Protože naivní Bayesův klasifikátor je založen na Bayesově teorému, je znám jako klasifikátor pravděpodobnosti. Předpovídá na základě pravděpodobnosti položky.

Důvod, proč být nazýván naivní Bayesovou?

Naivní Bayesův klasifikátor má dvě slova: Naivní a Bayes. Proč Navie? Tento algoritmus považuje všechny slovní věty za stejné. Například „You are“ a „Are you“ jsou pro tento algoritmus stejné. Není závislý na vlastnostech nebo výskytu prvků. Pokud chcete identifikovat ovoce jablko, potřebujete červenou barvu, kulovitý tvar a sladkou chuť, abyste mohli rozpoznat jablko. To znamená, že tyto funkce jsou na sobě nezávislé.

  • Naivní Bayesův klasifikátor předpokládá, že vlastnosti jsou na sobě nezávislé. Protože je to v reálných datech jen zřídka možné, klasifikátor se nazývá naivní.
  • Tento klasifikační algoritmus je založen na Bayesově teorému známém jako Naivní Bayesův klasifikátor.

Naivní Bayesova věta

Bayesův teorém se používá k nalezení pravděpodobnosti hypotézy s podmíněnými pravděpodobnostmi závislými na předchozích znalostech. Tato věta je pojmenována po Thomasi Bayesovi. Naivní Bayesův klasifikátor pracuje na principu podmíněné pravděpodobnosti, jak je dáno Bayesovým teorémem.

Abychom pochopili Bayesovu větu, podívejme se na jednoduchý příklad naivního bayesova klasifikátoru házení dvou mincí. Tyto vzorové prostory můžeme získat hozením dvou mincí: {HH, HT, TH, TT}. Takže pravděpodobnosti těchto událostí budou:

  • Získání dvou hlav = 1/4
  • Alespoň jeden ocas = 3/4
  • Druhá mince je hlava vzhledem k tomu, že první mince je ocas = 1/2
  • Získání dvou hlav vzhledem k první minci je hlava = 1/2

Bayesův teorém počítá pravděpodobnost události, která nastane, na základě pravděpodobnosti jiné události, která se již stala. Vzorec pro Bayesovu větu je dán takto:

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

P(A|B) Pravděpodobnost sudého A, když sudý B již nastal. Pravděpodobnost P(B) by neměla být nulová.

  • Musíte najít pravděpodobnost události A, která je dána, když je událost B (důkaz) pravdivá.
  • P(A) je a priori (a priori, tj. pravděpodobnost pozorované události před důkazem) A. Zde je událost B hodnotou neznámé instance.
  • P(A|B) je zadní pravděpodobnost události B, tj. pravděpodobnost události po zhlédnutí důkazů.

Pracovní příklad klasifikátoru Naïve Bayes

Vezměme si příklad nakupování, abychom pochopili fungování Bayes Naive Classifier. V této datové sadě je pro tento příklad malá ukázková datová sada o 30 řádcích.

Dataset

Pracovní příklad klasifikátoru Naïve Bayes

Problémem je předpovědět, zda si člověk koupí produkt na konkrétní kombinaci dne, slevy a bezplatného doručení pomocí Naive Bayes Theorem.

Pracovní příklad klasifikátoru Naïve Bayes

Krok 1) Pro každý atribut vytvoříme frekvenční tabulky pomocí typů vstupů uvedených v datové sadě, jako jsou dny, sleva a bezplatné doručení.

Pracovní příklad klasifikátoru Naïve Bayes

Nechť událost 'Koupit' označí jako 'A' a nezávislé proměnné, jmenovitě 'Sleva', 'Doručení zdarma' a 'Den', označíme jako 'B'. Tyto události a proměnné použijeme k aplikaci Bayesovy věty.

Krok 2) Nyní pojďme vypočítat pravděpodobnostní tabulky jednu po druhé.

Pracovní příklad klasifikátoru Naïve Bayes

Příklad 1:

Na základě této pravděpodobnostní tabulky vypočítáme podmíněné pravděpodobnosti, jak je uvedeno níže.

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

A najděte P(A/B) pomocí Bayesovy věty,

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

Podobně, pokud A je Koupit, pak

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

Poznámka: Vzhledem k tomu, že P(Koupit | Den v týdnu) je více než P(Nekoupit | Den v týdnu), můžeme dojít k závěru, že zákazník s největší pravděpodobností koupí produkt ve všední den.

Krok 3) Podobně můžeme vypočítat pravděpodobnost výskytu události na základě všech tří proměnných. Nyní vypočítáme pravděpodobnostní tabulky pro všechny tři proměnné pomocí výše uvedených frekvenčních tabulek.

Pracovní příklad klasifikátoru Naïve Bayes

Příklad 2:

Nyní pomocí těchto tří pravděpodobnostních tabulek vypočítáme, zda zákazník pravděpodobně uskuteční nákup na základě konkrétní kombinace „Den“, „Sleva“ a „Doručení zdarma“.

Podívejme se na kombinaci těchto faktorů:

  • Den = svátek
  • Sleva = Ano
  • Doprava zdarma = Ano

Kdy, A = Koupit

Vypočítejte podmíněnou pravděpodobnost nákupu při následující kombinaci dne, slevy a doručení zdarma.

Kde B je:

  • Den = svátek
  • Sleva = Ano
  • Doprava zdarma = Ano

A A = Koupit

Proto,

= 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

Kdy, A = Bez nákupu

Podobně Vypočítejte podmíněnou pravděpodobnost nákupu na následující kombinaci dne, slevy a bezplatného doručení.

Kde B je:

  • Den = svátek
  • Sleva = Ano
  • Doprava zdarma = Ano

A A = No Buy

Proto,

= 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

Krok 4) Proto,

Pravděpodobnost nákupu = 0.986

Pravděpodobnost žádného nákupu = 0.027

Konečně máme podmíněnou pravděpodobnost nákupu v tento den. Pojďme nyní zobecnit tyto pravděpodobnosti, abychom získali pravděpodobnost událostí.

  • Součet pravděpodobností = 0.986 + 0.027 = 1.013
  • Pravděpodobnost nákupu = 0.986 / 1.013 = 97.33 %
  • Pravděpodobnost žádného nákupu = 0.027 / 1.013 = 2.67 %

Všimněte si, že 97.33 % je větší než 2.67 %. Můžeme usuzovat, že průměrný zákazník nakoupí o dovolené se slevou a dopravou zdarma.

Typy naivního Bayesova modelu

Existuje mnoho typů klasifikátorů Naive Bayes. Zde jsme diskutovali o multinomických, Bernoulliho a Gaussových naivních Bayesových klasifikátorech.

1. Multinomický naivní Bayes

Tento typ modelu Naive Bayes se používá pro problémy s klasifikací dokumentů. Pracuje s funkcemi, které představují frekvenci slov v dokumentu. Klasifikátor zvažuje výskyt a počet slov, aby určil pravděpodobnost, že dokument patří do určité kategorie, jako je sport, politika nebo technologie.

2. Bernoulli Naivní Bayes

To je podobné multinomickému Naive Bayes. Klasifikátor Bernoulli Naive Bayes se používá pro úkoly klasifikace dokumentů. Používá však booleovské prediktory. Představuje, zda je slovo přítomno nebo ne, a nabývá pouze hodnot Ano nebo Ne. Klasifikátor vypočítá pravděpodobnost na základě toho, zda se slovo v textu vyskytuje či nikoli.

3. Gaussův naivní Bayes

Tento klasifikátor se používá v případě spojité hodnoty, ale ne diskrétní hodnoty. Tento klasifikátor počítá pravděpodobnosti pomocí parametrů Gaussian rozdělení, tj. průměr a rozptyl.

Gaussův naivní Bayes

Vzorec pro podmíněnou pravděpodobnost se změní na,

Gaussův naivní Bayes

Výhody a omezení klasifikátoru Naive Bayes

Algoritmus Naive Bayes ve strojovém učení má různé výhody a nevýhody.

Výhody klasifikátoru Naive Bayes

  • Jednoduchost a efektivita: Naive Bayes je jednoduchý a snadno se trénuje a implementuje. Je efektivní díky nízkým nákladům na výpočetní techniku. Dokáže efektivně zpracovávat velké soubory dat.
  • Rychlý trénink a předpověď: Naive Bayes nevyžaduje tolik trénovacích dat kvůli nezávislosti mezi funkcemi. Jakmile je model trénován, může rychle předpovídat.
  • Škálovatelnost: Naive Bayes dokáže zpracovat vysokorozměrné datové sady s velkým množstvím funkcí. Funguje dobře, i když je počet funkcí větší než počet příkladů školení. Škáluje s počtem datových bodů a prediktorů. Zpracovává spojitá i diskrétní data.
  • Odolnost vůči irelevantním funkcím: Není citlivý na nepodstatné funkce.
  • Funguje dobře s malými tréninkovými sadami: Naive Bayes může poskytnout rozumné výsledky i s omezenými tréninkovými daty. Dokáže si poradit se situacemi, kdy je počet instancí školení malý. Nevyžaduje tolik tréninkových dat.

Omezení klasifikátoru Naive Bayes Classifier

Naivní Bayes dovnitř strojové učení předpokládá, že všechny funkce jsou na sobě nezávislé. Nemůže se tedy naučit vztahy mezi různými funkcemi v datech. Zachází s každým prvkem, jako by neměl žádný vztah s ostatními.

Chcete-li tento problém překonat, můžete použít Rozhodovací stromy, náhodné lesy, podpůrné vektorové stroje (SVM), neuronové sítě atd. Tyto algoritmy mají schopnost učit se složité vztahy a závislosti mezi funkcemi v datech. Takže tyto mohou předpovídat přesnější výsledky.

Aplikace klasifikátoru Naive Bayes

Protože je tento algoritmus rychlý a efektivní, můžete jej použít k předpovědím v reálném čase.

Detekce spamu

E-mailové služby (jako je Gmail) pomocí tohoto algoritmu určí, zda je e-mail spam. Tento algoritmus je vynikající pro filtrování spamu.

Analýza sentimentu

Může klasifikovat text jako pozitivní, negativní nebo neutrální na základě funkcí, jako je výběr slov, struktura vět a kontext. Najde uplatnění v monitorování sociálních sítí, zákaznických recenzích a průzkumech trhu.

Klasifikace dokumentů

Může klasifikovat dokumenty do kategorií, jako je sport, politika, technologie nebo finance, na základě frekvence nebo přítomnosti konkrétních slov nebo vlastností v dokumentu.

Doporučující systémy

Dokáže analyzovat uživatelské preference, historická data a funkce položek a předvídat zájmy uživatelů nebo preference pro doporučování produktů, filmů nebo článků.

Tento klasifikační algoritmus se také používá při rozpoznávání obličeje, předpovědi počasí, lékařské diagnostice, nakupování, klasifikaci zpráv atd. Naivní Bayes můžete implementovat v Python. Existuje klasifikátor Naive Bayes sklearn, tj. sklearn.naive_bayes. Je to modul, který implementuje tento algoritmus.

Proč investovat do čističky vzduchu?

Naivní Bayesovy algoritmy ve strojovém učení jsou klasifikátory většinou používané při detekci spamu, klasifikaci zpráv, analýze sentimentu, předpovědi počasí, nakupování atd. Naivní Bayesovy algoritmy jsou založeny na Bayesově teorému. Tento algoritmus je jednoduchý a snadno implementovatelný. Protože je rychlý, můžeme jej použít v aplikacích v reálném čase. Jeho největší nevýhodou je, že předpokládá nezávislé funkce (protože nezávislé funkce jsou v reálném životě možné jen zřídka, proto se nazývá naivní). Zachází s každou funkcí jako s rovnocennou. K překonání této nevýhody můžete použít další klasifikátory, jako je rozhodovací strom, náhodný les, podpůrný vektorový stroj (SVM) atd.