Co to jest Naiwny algorytm Bayesa?

Naiwny algorytm Bayesa to technika, która pomaga konstruować klasyfikatory. Klasyfikatory to modele, które klasyfikują wystąpienia problemów i nadają im etykiety klas reprezentowane jako wektory predyktorów lub wartości cech. Opiera się na twierdzeniu Bayesa. Nazywa się to naiwnym Bayesem, ponieważ zakłada, że ​​wartość cechy jest niezależna od drugiej cechy, tj. Zmiana wartości cechy nie wpłynie na wartość innej cechy. Jest również nazywany idiotą Bayes z tego samego powodu. Ten algorytm działa skutecznie w przypadku dużych zestawów danych, dlatego najlepiej nadaje się do prognozowania w czasie rzeczywistym.

Pomaga obliczyć prawdopodobieństwo tylne P (c | x) z wykorzystaniem wcześniejszego prawdopodobieństwa klasy P (c), wcześniejszego prawdopodobieństwa predyktora P (x) i prawdopodobieństwa predyktora danej klasy, zwanego również prawdopodobieństwem P (x | c ).

Wzór lub równanie do obliczenia prawdopodobieństwa a posteriori to:

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

Jak działa Naiwny algorytm Bayesa?

Pozwól nam zrozumieć działanie Naiwnego algorytmu Bayesa na przykładzie. Zakładamy zestaw danych treningowych pogody i zmienną docelową „Idziemy na zakupy”. Teraz sklasyfikujemy, czy dziewczyna pójdzie na zakupy na podstawie warunków pogodowych.

Podany zestaw danych to:

PogodaIść na zakupy
SłonecznyNie
Deszczowytak
Pochmurnytak
Słonecznytak
Pochmurnytak
DeszczowyNie
Słonecznytak
Słonecznytak
DeszczowyNie
Deszczowytak
Pochmurnytak
DeszczowyNie
Pochmurnytak
SłonecznyNie

Zostaną wykonane następujące kroki:

Krok 1: Utwórz tabele częstotliwości przy użyciu zestawów danych.

PogodatakNie
Słoneczny3)2)
Pochmurny40
Deszczowy2)3)
Całkowity95

Krok 2: Zrób tabelę prawdopodobieństwa, obliczając prawdopodobieństwo każdego stanu pogodowego i robiąc zakupy.

PogodatakNiePrawdopodobieństwo
Słoneczny3)2)5/14 = 0, 36
Pochmurny404/14 = 0, 29
Deszczowy2)3)5/14 = 0, 36
Całkowity95
Prawdopodobieństwo9/14 = 0, 645/14 = 0, 36

Krok 3: Teraz musimy obliczyć prawdopodobieństwo tylne za pomocą równania Naive Bayesa dla każdej klasy.

Przykład problemu: dziewczyna będzie chodzić na zakupy, jeśli będzie pochmurno. Czy to stwierdzenie jest prawidłowe?

Rozwiązanie:

  • P (Tak | Pochmurno) = (P (Pochmurno | Tak) * P (Tak)) / P (Pochmurno)
  • P (Zachmurzenie | Tak) = 4/9 = 0, 44
  • P (Tak) = 9/14 = 0, 64
  • P (pochmurno) = 4/14 = 0, 39

Teraz umieść wszystkie obliczone wartości w powyższym wzorze

  • P (Tak | Zachmurzenie) = (0, 44 * 0, 64) / 0, 39
  • P (Tak | Zachmurzenie) = 0, 722

Klasa o najwyższym prawdopodobieństwie byłaby wynikiem prognozy. Stosując to samo podejście, można przewidzieć prawdopodobieństwo różnych klas.

W jakim celu stosuje się Naiwny algorytm Bayesa?

1. Prognozowanie w czasie rzeczywistym: Naiwny algorytm Bayesa jest szybki i zawsze gotowy do nauki, dlatego najlepiej nadaje się do prognozowania w czasie rzeczywistym.

2. Przewidywanie wielu klas: prawdopodobieństwo wystąpienia wielu klas dowolnej zmiennej docelowej można przewidzieć za pomocą algorytmu Naive Bayesa.

3. System rekomendacji: Naiwny klasyfikator Bayesa przy pomocy Collaborative Filtering tworzy system rekomendacji. System wykorzystuje techniki eksploracji danych i uczenia maszynowego do filtrowania informacji, które nie były wcześniej widoczne, a następnie przewidywania, czy użytkownik doceni dany zasób, czy nie.

4. Klasyfikacja tekstu / Analiza sentymentów / Filtrowanie spamu: Ze względu na lepszą wydajność w przypadku problemów wieloklasowych i zasadę niezależności algorytm Naive Bayes działa lepiej lub ma wyższy wskaźnik skuteczności w klasyfikacji tekstu, dlatego jest stosowany w analizie sentymentów i Filtrowanie spamu

Zalety naiwnego algorytmu Bayesa

  • Łatwy do wdrożenia.
  • Szybki
  • Jeśli założenie o niezależności się utrzymuje, działa ono wydajniej niż inne algorytmy.
  • Wymaga mniej danych treningowych.
  • Jest wysoce skalowalny.
  • Może dokonywać prognoz probabilistycznych.
  • Może obsługiwać zarówno dane ciągłe, jak i dyskretne.
  • Niewrażliwy na nieistotne cechy.
  • Może łatwo pracować z brakującymi wartościami.
  • Łatwa aktualizacja po przybyciu nowych danych.
  • Najlepiej nadaje się do problemów z klasyfikacją tekstu.

Wady algorytmu Naive Bayesa

  • Mocne założenie, że funkcje są niezależne, co nie jest prawdą w rzeczywistych zastosowaniach.
  • Niedobór danych
  • Szanse na utratę dokładności.
  • Częstotliwość zerowa, tj. Jeśli kategoria dowolnej zmiennej kategorialnej nie jest widoczna w zbiorze danych treningowych, wówczas model przypisuje zerowe prawdopodobieństwo tej kategorii, a następnie nie można dokonać prognozy.

Jak zbudować podstawowy model przy użyciu Naiwnego algorytmu Bayesa

Istnieją trzy rodzaje modeli Naive Bayesa, tj. Gaussa, Wielomian i Bernoulli. Porozmawiajmy krótko o każdym z nich.

1. Gaussowski: Gaussowski Naiwny algorytm Bayesa zakłada, że ​​ciągłe wartości odpowiadające każdej funkcji są rozkładane zgodnie z rozkładem Gaussa zwanym również rozkładem normalnym.

Zakłada się, że prawdopodobieństwo lub wcześniejsze prawdopodobieństwo predyktora danej klasy jest gaussowskie, dlatego prawdopodobieństwo warunkowe można obliczyć jako:

2. Wielomian: Częstotliwości występowania niektórych zdarzeń reprezentowanych przez wektory cech są generowane przy użyciu rozkładu wielomianowego. Ten model jest szeroko stosowany do klasyfikacji dokumentów.

3. Bernoulli: W tym modelu dane wejściowe są opisane przez cechy, które są niezależnymi zmiennymi binarnymi lub wartościami logicznymi. Jest to również szeroko stosowane w klasyfikacji dokumentów, takich jak Multinomial Naive Bayes.

Możesz użyć dowolnego z powyższych modeli zgodnie z wymaganiami, aby obsłużyć i sklasyfikować zestaw danych.

Możesz zbudować model Gaussa za pomocą Pythona, rozumiejąc przykład podany poniżej:

Kod:

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)

Wynik:

((3, 4))

Wniosek

W tym artykule szczegółowo poznaliśmy pojęcia naiwnego algorytmu Bayesa. Najczęściej stosuje się go w klasyfikacji tekstowej. Jest łatwy do wdrożenia i szybki do wykonania. Jego główną wadą jest to, że wymaga, aby funkcje były niezależne, co nie jest prawdą w rzeczywistych zastosowaniach.

Polecane artykuły

To był przewodnik po Naive Bayes Algorithm. Tutaj omówiliśmy Podstawową koncepcję, działanie, zalety i wady algorytmu Naive Bayesa. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Algorytm wspomagający
  2. Algorytm w programowaniu
  3. Wprowadzenie do algorytmu

Kategoria: