Naiwny algorytm Bayesa w uczeniu maszynowym

Naiwny algorytm klasyfikatora Bayesa

Naiwny algorytm klasyfikatora Bayesa

Klasyfikator to algorytm uczenia maszynowego, który kategoryzuje dane do jednej lub więcej z zestawu „klas”. Klasyfikator wiadomości e-mail to jeden z przykładów klasyfikatora, który skanuje wiadomości e-mail, aby filtrować je według etykiety klasy: Spam lub Nie spam.

Naiwny klasyfikator Bayesa w uczeniu maszynowym to nadzorowane uczenie maszynowe do zadań klasyfikacyjnych.

Naiwny algorytm klasyfikatora Bayesa

Naiwny Bayes służy do rozwiązywania problemów klasyfikacyjnych. Przewiduje na podstawie prawdopodobieństwa wystąpienia obiektu. Naiwny Bayes opiera się na twierdzeniu Bayesa i jest używany głównie do klasyfikacji tekstów. Naive Bayes to probabilistyczny algorytm klasyfikacji, który jest łatwy do wdrożenia i szybki do wytrenowania.

Ponieważ naiwny klasyfikator Bayesa opiera się na twierdzeniu Bayesa, dlatego jest znany jako klasyfikator prawdopodobieństwa. Przewiduje na podstawie prawdopodobieństwa wystąpienia przedmiotu.

Powód, dla którego nazywano go Naiwnym Bayesem?

Naiwny klasyfikator Bayesa ma dwa słowa: Naiwny i Bayes. Dlaczego Navie? Algorytm ten traktuje wszystkie zdania słowne jako takie same. Na przykład „Jesteś” i „Czy jesteś” są takie same dla tego algorytmu. Nie jest to zależne od cech ani występowania cech. Jeśli chcesz zidentyfikować owoc Jabłko, potrzebujesz koloru czerwonego, kształtu kulistego, smaku słodkiego, aby rozpoznać Jabłko. Oznacza to, że cechy te są od siebie niezależne.

  • Naiwny klasyfikator Bayesa zakłada, że ​​cechy są od siebie niezależne. Ponieważ rzadko jest to możliwe w przypadku rzeczywistych danych, klasyfikator nazywa się naiwnym.
  • Algorytm klasyfikacji opiera się na twierdzeniu Bayesa, zwanym naiwnym klasyfikatorem Bayesa.

Naiwne twierdzenie Bayesa

Twierdzenie Bayesa służy do wyznaczania prawdopodobieństwa hipotezy z prawdopodobieństwami warunkowymi zależnymi od wcześniejszej wiedzy. Twierdzenie to zostało nazwane na cześć Thomasa Bayesa. Naiwny klasyfikator Bayesa działa na zasadzie prawdopodobieństwa warunkowego, zgodnie z twierdzeniem Bayesa.

Aby zrozumieć twierdzenie Bayesa, spójrzmy na prosty przykład naiwnego klasyfikatora Bayesa rzucającego dwiema monetami. Możemy uzyskać te przykładowe przestrzenie, rzucając dwiema monetami: {HH, HT, TH, TT}. Zatem prawdopodobieństwa tych zdarzeń będą wynosić:

  • Zdobycie dwóch głów = 1/4
  • Przynajmniej jeden ogon = 3/4
  • Druga moneta jest reszką, przy czym pierwsza moneta to reszka = 1/2
  • Otrzymanie dwóch reszek, biorąc pod uwagę pierwszą monetę, to reszka = 1/2

Twierdzenie Bayesa oblicza prawdopodobieństwo wystąpienia zdarzenia na podstawie prawdopodobieństwa innego zdarzenia, które już miało miejsce. Wzór na twierdzenie Bayesa jest podany jako:

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

P(A|B) Prawdopodobieństwo nawet A, gdy wystąpiło już nawet B. Prawdopodobieństwo P(B) nie powinno wynosić zero.

  • Musisz znaleźć prawdopodobieństwo zdarzenia A, które jest dane, gdy zdarzenie B (dowód) jest prawdziwe.
  • P(A) jest apriori (apriori, tj. prawdopodobieństwem zaobserwowanego zdarzenia przed dowodem) A. Tutaj zdarzenie B jest wartością nieznanego przypadku.
  • P(A|B) jest prawdopodobieństwem późniejszym zdarzenia B, tj. prawdopodobieństwem zdarzenia po zapoznaniu się z dowodami.

Działający przykład naiwnego klasyfikatora Bayesa

Weźmy przykład zakupów, aby zrozumieć działanie Naiwnego Klasyfikatora Bayesa. W tym zestawie danych znajduje się mały przykładowy zestaw danych składający się z 30 wierszy dla tego przykładu.

Dataset

Działający przykład naiwnego klasyfikatora Bayesa

Problem polega na przewidzeniu, czy dana osoba kupi produkt w ramach określonej kombinacji dnia, rabatu i bezpłatnej dostawy, korzystając z naiwnego twierdzenia Bayesa.

Działający przykład naiwnego klasyfikatora Bayesa

Krok 1) Utworzymy tabele częstotliwości dla każdego atrybutu, korzystając z typów danych wejściowych wymienionych w zbiorze danych, takich jak dni, rabat i bezpłatna dostawa.

Działający przykład naiwnego klasyfikatora Bayesa

Niech zdarzenie „Kup” oznaczymy jako „A”, a zmienne niezależne, a mianowicie „Rabat”, „Darmowa dostawa” i „Dzień” oznaczymy jako „B”. Wykorzystamy te zdarzenia i zmienne, aby zastosować twierdzenie Bayesa.

Krok 2) Teraz obliczmy tabele prawdopodobieństwa, jedna po drugiej.

Działający przykład naiwnego klasyfikatora Bayesa

1 przykład:

Na podstawie tej tabeli prawdopodobieństwa obliczymy prawdopodobieństwa warunkowe jak poniżej.

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

I znajdź P(A/B) korzystając z twierdzenia Bayesa,

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

Podobnie, jeśli A to Kup, to

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

Uwaga: Ponieważ P(Kup | Dzień powszedni) jest większe niż P (Nie Kupuj | Dzień powszedni), możemy stwierdzić, że klient najprawdopodobniej kupi produkt w Dzień powszedni.

Krok 3) Podobnie możemy obliczyć prawdopodobieństwo wystąpienia zdarzenia na podstawie wszystkich trzech zmiennych. Teraz obliczymy tabele prawdopodobieństwa dla wszystkich trzech zmiennych, korzystając z powyższych tabel częstości.

Działający przykład naiwnego klasyfikatora Bayesa

2 przykład:

Teraz, korzystając z tych trzech tabel prawdopodobieństwa, obliczymy, czy klient prawdopodobnie dokona zakupu na podstawie określonej kombinacji „Dzień”, „Rabat” i „Bezpłatna dostawa”.

Weźmy tutaj kombinację tych czynników:

  • Dzień = święto
  • Zniżka = Tak
  • Darmowa dostawa = Tak

Kiedy, A = Kup

Oblicz prawdopodobieństwo warunkowe zakupu przy następującej kombinacji dnia, zniżki i bezpłatnej dostawy.

Gdzie B jest:

  • Dzień = święto
  • Zniżka = Tak
  • Darmowa dostawa = Tak

A A = Kup

Dlatego

= 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

Kiedy, A = Nie kupuj

Oblicz w podobny sposób prawdopodobieństwo warunkowe zakupu przy następującej kombinacji dnia, zniżki i bezpłatnej dostawy.

Gdzie B jest:

  • Dzień = święto
  • Zniżka = Tak
  • Darmowa dostawa = Tak

Oraz A = Nie kupuję

Dlatego

= 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) Stąd,

Prawdopodobieństwo zakupu = 0.986

Prawdopodobieństwo braku zakupu = 0.027

Wreszcie mamy warunkowe prawdopodobieństwo zakupu w tym dniu. Uogólnijmy teraz te prawdopodobieństwa, aby uzyskać prawdopodobieństwo wystąpienia zdarzeń.

  • Suma prawdopodobieństw = 0.986 + 0.027 = 1.013
  • Prawdopodobieństwo zakupu = 0.986 / 1.013 = 97.33%
  • Prawdopodobieństwo braku zakupu = 0.027 / 1.013 = 2.67%

Należy pamiętać, że 97.33% jest większe niż 2.67%. Możemy stwierdzić, że przeciętny klient na wakacjach zrobi zakupy z rabatem i darmową dostawą.

Rodzaje naiwnego modelu Bayesa

Istnieje wiele typów naiwnych klasyfikatorów Bayesa. Tutaj omówiliśmy klasyfikatory wielomianowe, Bernoulliego i Gaussa Naive Bayesa.

1. Wielomianowy naiwny Bayes

Ten typ modelu Naive Bayesa jest używany do rozwiązywania problemów z klasyfikacją dokumentów. Działa z funkcjami reprezentującymi częstotliwość występowania słów w dokumencie. Klasyfikator uwzględnia występowanie i liczbę słów, aby określić prawdopodobieństwo, że dokument należy do określonej kategorii, takiej jak sport, polityka lub technologia.

2. Naiwny Bayes Bernoulliego

Jest to podobne do wielomianu Naive Bayes. Klasyfikator Bernoulliego Naive Bayesa służy do zadań klasyfikacji dokumentów. Używa jednak predyktorów boolowskich. Wskazuje, czy słowo występuje, czy nie, i przyjmuje tylko wartości Tak lub Nie. Klasyfikator oblicza prawdopodobieństwa na podstawie tego, czy słowo występuje w tekście, czy nie.

3. Gaussowski Naiwny Bayes

Ten klasyfikator jest używany w przypadku wartości ciągłej, ale nie wartości dyskretnej. Klasyfikator ten oblicza prawdopodobieństwa przy użyciu parametrów Gaussian dystrybucja, tj. średnia i wariancja.

Gaussowski naiwny Bayes

Wzór na prawdopodobieństwo warunkowe zmienia się na:

Gaussowski naiwny Bayes

Korzyści i ograniczenia naiwnego klasyfikatora Bayesa

Istnieją różne zalety i wady algorytmu Naive Bayes w uczeniu maszynowym.

Korzyści z naiwnego klasyfikatora Bayesa

  • Prostota i wydajność: Naiwny Bayes jest prosty i łatwy do wyszkolenia i wdrożenia. Jest wydajny ze względu na niski koszt obliczeniowy. Potrafi efektywnie obsługiwać duże zbiory danych.
  • Szybkie szkolenie i przewidywanie: Naiwny Bayes nie wymaga tak dużej ilości danych szkoleniowych ze względu na niezależność między funkcjami. Potrafi szybko przewidywać po przeszkoleniu modelu.
  • Skalowalność: Naiwny Bayes może obsługiwać wielowymiarowe zbiory danych z dużą liczbą funkcji. Działa dobrze nawet wtedy, gdy liczba funkcji jest większa niż liczba przykładów szkoleniowych. Skaluje się wraz z liczbą punktów danych i predyktorów. Obsługuje zarówno dane ciągłe, jak i dyskretne.
  • Odporność na nieistotne funkcje: Nie jest wrażliwy na nieistotne funkcje.
  • Dobrze współpracuje z małymi zestawami treningowymi: Naiwny Bayes może zapewnić rozsądne wyniki nawet przy ograniczonych danych treningowych. Radzi sobie w sytuacjach, w których liczba instancji szkoleniowych jest niewielka. Nie wymaga tak dużej ilości danych treningowych.

Ograniczenia naiwnego klasyfikatora Bayesa

Naiwny Bayes uczenie maszynowe zakłada, że ​​wszystkie cechy są od siebie niezależne. Nie może więc nauczyć się relacji między różnymi cechami danych. Traktuje każdą cechę tak, jakby nie miała związku z innymi.

Aby przezwyciężyć ten problem, możesz użyć Drzewa decyzyjne, Random Forests, Support Vector Machines (SVM), Neural Networks itd. Algorytmy te mają zdolność uczenia się złożonych relacji i zależności między cechami w danych. Dzięki temu mogą przewidywać dokładniejsze wyniki.

Zastosowania naiwnego klasyfikatora Bayesa

Ponieważ algorytm ten jest szybki i wydajny, można go używać do przewidywania w czasie rzeczywistym.

Wykrywanie spamu

Usługi e-mail (takie jak Gmail) używają tego algorytmu, aby określić, czy e-mail jest spamem. Ten algorytm jest doskonały do ​​filtrowania spamu.

Analiza sentymentów

Może klasyfikować tekst jako pozytywny, negatywny lub neutralny na podstawie takich cech, jak dobór słów, struktura zdania i kontekst. Znajduje zastosowanie w monitoringu mediów społecznościowych, opiniach klientów i badaniach rynku.

Klasyfikacja dokumentów

Może klasyfikować dokumenty na kategorie, takie jak sport, polityka, technologia lub finanse, w oparciu o częstotliwość lub obecność określonych słów lub funkcji w dokumencie.

Systemy rekomendujące

Może analizować preferencje użytkownika, dane historyczne i cechy przedmiotów, aby przewidzieć zainteresowania użytkowników lub preferencje dotyczące rekomendowania produktów, filmów lub artykułów.

Ten algorytm klasyfikatora jest również używany w rozpoznawaniu twarzy, przewidywaniu pogody, diagnostyce medycznej, zakupach, klasyfikacji wiadomości itp. Możesz zaimplementować Naive Bayes w Python. Istnieje naiwny klasyfikator Bayesa sklearn, tj. sklearn.naive_bayes. Jest to moduł implementujący ten algorytm.

Podsumowanie

Algorytmy Naive Bayes w uczeniu maszynowym to klasyfikatory najczęściej używane w wykrywaniu spamu, klasyfikacji wiadomości, analizie sentymentów, przewidywaniu pogody, zakupach itp. Algorytmy Naive Bayes opierają się na twierdzeniu Bayesa. To algorytm jest prosty i łatwy do wdrożenia. Ponieważ jest szybki, możemy go używać w aplikacjach czasu rzeczywistego. Jego największą wadą jest to, że zakłada niezależne funkcje (ponieważ niezależne funkcje rzadko są możliwe w prawdziwym życiu, dlatego jest znany jako naiwny). Traktuje każdą cechę jako równą. Aby przezwyciężyć tę wadę, można użyć innych klasyfikatorów, takich jak drzewo decyzyjne, losowy las, maszyna wektorów nośnych (SVM) itp.