Co je algoritmus Naive Bayes?

Algoritmus Naive Bayes je technika, která pomáhá konstruovat klasifikátory. Klasifikátory jsou modely, které klasifikují instance problému a poskytují jim popisky tříd, které jsou reprezentovány jako vektory prediktorů nebo hodnot funkcí. Vychází z Bayesovy věty. Říká se tomu naivní Bayes, protože předpokládá, že hodnota prvku je nezávislá na jiném prvku, tj. Změna hodnoty prvku by neměla vliv na hodnotu druhého prvku. To je také nazýváno jako idiot Bayes kvůli stejnému důvodu. Tento algoritmus pracuje efektivně pro velké soubory dat, a proto je nejvhodnější pro předpovědi v reálném čase.

Pomáhá vypočítat zadní pravděpodobnost P (c | x) s využitím předchozí pravděpodobnosti třídy P (c), předchozí pravděpodobnosti prediktoru P (x) a pravděpodobnosti prediktoru dané třídy, také nazývané jako pravděpodobnost P (x | c) ).

Vzorec nebo rovnice pro výpočet zadní pravděpodobnosti je:

  • P (c | x) = (P (x | c) * P (c)) / P (x)

Jak funguje Naive Bayesův algoritmus?

Podívejme se na fungování Algoritmu Naive Bayes pomocí příkladu. Předpokládáme školicí datový soubor počasí a cílovou proměnnou „Nakupování“. Nyní klasifikujeme, zda bude dívka nakupovat na základě povětrnostních podmínek.

Daný soubor dat je:

PočasíJít nakupovat
SlunnýNe
DeštivýAno
ZataženýAno
SlunnýAno
ZataženýAno
DeštivýNe
SlunnýAno
SlunnýAno
DeštivýNe
DeštivýAno
ZataženýAno
DeštivýNe
ZataženýAno
SlunnýNe

Byly provedeny následující kroky:

Krok 1: Vytvořte frekvenční tabulky pomocí datových sad.

PočasíAnoNe
Slunný32
Zatažený40
Deštivý23
Celkový95

Krok 2: Vytvořte tabulku pravděpodobnosti pomocí výpočtu pravděpodobnosti každého počasí a nákupu.

PočasíAnoNePravděpodobnost
Slunný325/14 = 0, 36
Zatažený404/14 = 0, 29
Deštivý235/14 = 0, 36
Celkový95
Pravděpodobnost9/14 = 0, 645/14 = 0, 36

Krok 3: Nyní musíme vypočítat zadní pravděpodobnost pomocí Naive Bayesovy rovnice pro každou třídu.

Příklad problému: Dívka bude nakupovat, bude-li počasí zataženo. Je toto tvrzení správné?

Řešení:

  • P (Ano | Zataženo) = (P (Zataženo | Ano) * P (Ano)) / P (Zataženo)
  • P (zataženo | ano) = 4/9 = 0, 44
  • P (Ano) = 9/14 = 0, 64
  • P (zataženo) = 4/14 = 0, 39

Nyní vložte všechny vypočtené hodnoty do výše uvedeného vzorce

  • P (Ano | Zataženo) = (0, 44 * 0, 64) / 0, 39
  • P (Ano | Zataženo) = 0, 722

Třída s nejvyšší pravděpodobností by byla výsledkem predikce. Pomocí stejného přístupu lze předvídat pravděpodobnosti různých tříd.

Na co se algoritmus Naive Bayes používá?

1. Predikce v reálném čase: Algoritmus Naive Bayes je rychlý a vždy připraven se učit, a proto se nejlépe hodí pro předpovědi v reálném čase.

2. Predikce více tříd: Pravděpodobnost více tříd jakékoli cílové proměnné lze předpovědět pomocí algoritmu Naive Bayes.

3. Systém doporučení: Klasifikátor Naive Bayes pomocí Collaborative Filtering vytvoří systém doporučení. Tento systém používá techniku ​​dolování dat a strojového učení k filtrování informací, které dříve nebyly vidět, a pak předpovídá, zda uživatel daný zdroj ocení, či nikoli.

4. Klasifikace textu / Analýza sentimentu / Filtrování spamu: Kvůli lepšímu výkonu s problémy s více třídami a pravidlu nezávislosti funguje algoritmus Naive Bayes lépe nebo má vyšší úspěšnost při klasifikaci textu, proto se používá v analýze sentimentu a Filtrování spamu.

Výhody algoritmu Naive Bayes

  • Snadná implementace.
  • Rychle
  • Pokud předpoklad nezávislosti trvá, pak funguje efektivněji než jiné algoritmy.
  • Vyžaduje méně údajů o školení.
  • Je vysoce škálovatelný.
  • Může vytvářet pravděpodobnostní předpovědi.
  • Zvládne spojitá i diskrétní data.
  • Necitlivý na irelevantní prvky.
  • Může snadno pracovat s chybějícími hodnotami.
  • Snadná aktualizace při příchodu nových dat.
  • Nejvhodnější pro problémy s klasifikací textu.

Nevýhody algoritmu Naive Bayes

  • Silný předpoklad o vlastnostech, které mají být nezávislé, je v aplikacích v reálném životě stěží pravdivý.
  • Nedostatek dat.
  • Šance na ztrátu přesnosti.
  • Nulová frekvence, tj. Pokud kategorie jakékoli kategorické proměnné není vidět v tréninkových datových sadách, model přiřadí této kategorii nulovou pravděpodobnost a potom nelze předpovědět.

Jak postavit základní model pomocí Naive Bayesova algoritmu

Existují tři typy modelů Naive Bayes, tj. Gaussian, Multinomial a Bernoulli. Podívejme se stručně na každou z nich.

1. Gaussovský: Gaussovský naivní Bayesův algoritmus předpokládá, že spojité hodnoty odpovídající každému prvku jsou distribuovány podle gaussovského rozdělení také nazývaného jako normální rozdělení.

Pravděpodobnost nebo předchozí pravděpodobnost prediktoru dané třídy se považuje za Gaussovu, a proto lze podmíněnou pravděpodobnost vypočítat jako:

2. Multinomiální: Frekvence výskytu určitých událostí představovaných vektory funkcí jsou generovány pomocí multinomiální distribuce. Tento model je široce používán pro klasifikaci dokumentů.

3. Bernoulli: V tomto modelu jsou vstupy popsány vlastnostmi, které jsou nezávislými binárními proměnnými nebo booleovskými proměnnými. Toto je také široce používáno v klasifikaci dokumentů jako Multinomial Naive Bayes.

K manipulaci a klasifikaci datové sady můžete použít libovolný z výše uvedených modelů.

Gaussovský model můžete sestavit pomocí Pythonu pochopením níže uvedeného příkladu:

Kód:

from sklearn.naive_bayes import GaussianNB
import numpy as np
a = np.array((-2, 7), (1, 2), (1, 5), (2, 3), (1, -1), (-2, 0), (-4, 0), (-2, 2), (3, 7), (1, 1), (-4, 1), (-3, 7)))
b = np.array((3, 3, 3, 3, 4, 3, 4, 3, 3, 3, 4, 4, 4))
md = GaussianNB()
md.fit (a, b)
pd = md.predict (((1, 2), (3, 4)))
print (pd)

Výstup:

((3, 4))

Závěr

V tomto článku jsme se podrobně naučili konceptům algoritmu Naive Bayes. Většinou se používá při klasifikaci textu. Je snadné implementovat a rychle provést. Jeho hlavní nevýhodou je, že vyžaduje, aby funkce byly nezávislé, což v aplikacích v reálném životě neplatí.

Doporučené články

Toto byl průvodce algoritmem Naive Bayes. Zde jsme diskutovali základní koncept, práci, výhody a nevýhody algoritmu Naive Bayes. Další informace naleznete také v dalších navrhovaných článcích -

  1. Posílení algoritmu
  2. Algoritmus v programování
  3. Úvod do algoritmu

Kategorie: