Wyjaśnienie naiwnego Bayesa: funkcja, zalety i wady, zastosowania w 2022 r.

Opublikowany: 2021-01-05

Naive Bayes to algorytm uczenia maszynowego, którego używamy do rozwiązywania problemów z klasyfikacją. Opiera się na twierdzeniu Bayesa. Jest to jeden z najprostszych, ale potężnych algorytmów ML w użyciu i znajduje zastosowanie w wielu branżach.

Załóżmy, że musisz rozwiązać problem klasyfikacji i stworzyłeś cechy i wygenerowałeś hipotezę, ale twoi przełożeni chcą zobaczyć model. Masz wiele punktów danych (liczba punktów danych) i wiele zmiennych do trenowania zestawu danych. Najlepszym rozwiązaniem w takiej sytuacji byłoby użycie klasyfikatora Naive Bayes, który jest dość szybszy w porównaniu z innymi algorytmami klasyfikacji.

W tym artykule szczegółowo omówimy ten algorytm i dowiemy się, jak działa. Omówimy również jego zalety i wady oraz jego rzeczywiste zastosowania, aby zrozumieć, jak ważny jest ten algorytm.

Dołącz do kursu Deep Learning online z najlepszych światowych uniwersytetów — studiów magisterskich, programów podyplomowych dla kadry kierowniczej i zaawansowanego programu certyfikacji w zakresie uczenia się maszynowego i sztucznej inteligencji, aby przyspieszyć swoją karierę.

Zacznijmy:

Spis treści

Wyjaśnienie naiwnego Bayesa

Naiwny Bayes używa twierdzenia Bayesa i zakłada, że ​​wszystkie predyktory są niezależne. Innymi słowy, ten klasyfikator zakłada, że ​​obecność jednej konkretnej cechy w klasie nie wpływa na obecność innej.

Oto przykład: uważasz, że owoc jest pomarańczowy, jeśli jest okrągły, pomarańczowy i ma około 3,5 cala średnicy. Teraz, nawet jeśli te cechy wymagają wzajemnego istnienia, wszystkie niezależnie przyczyniają się do założenia, że ​​ten konkretny owoc jest pomarańczowy. Dlatego ten algorytm ma w nazwie „Naiwny”.

Budowanie modelu Naive Bayes jest dość proste i pomaga w pracy z ogromnymi zbiorami danych. Co więcej, to równanie jest popularne, gdy pokonuje wiele zaawansowanych technik klasyfikacji pod względem wydajności.

Oto równanie dla naiwnego Bayesa:

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

P(c|x) = P(x1 | c) x P(x2 | c) x … P(xn | c) x P(c)

Tutaj P (c|x) jest prawdopodobieństwem a posteriori zgodnie z predyktorem (x) dla klasy (c). P(c) to prawdopodobieństwo a priori klasy, P(x) to prawdopodobieństwo a priori predyktora, a P(x|c) to prawdopodobieństwo predyktora dla określonej klasy (c).

Oprócz rozważenia niezależności każdej funkcji, Naive Bayes zakłada również, że przyczyniają się one w równym stopniu. To ważny punkt do zapamiętania.

Jak działa naiwne Bayes?

Aby zrozumieć, jak działa Naive Bayes, powinniśmy omówić przykład.

Załóżmy, że chcemy znaleźć skradzione samochody i mamy następujący zestaw danych:

Numer seryjny. Kolor Rodzaj Pochodzenie Czy to było skradzione?
1 czerwony Sporty Domowy TAk
2 czerwony Sporty Domowy Nie
3 czerwony Sporty Domowy TAk
4 Żółty Sporty Domowy Nie
5 Żółty Sporty Importowany TAk
6 Żółty SUV Importowany Nie
7 Żółty SUV Importowany TAk
8 Żółty SUV Domowy Nie
9 czerwony SUV Importowany Nie
10 czerwony Sporty Importowany TAk

Zgodnie z naszym zbiorem danych możemy zrozumieć, że nasz algorytm przyjmuje następujące założenia:

  • Zakłada, że ​​każda funkcja jest niezależna. Na przykład kolor „żółty” samochodu nie ma nic wspólnego z jego pochodzeniem ani typem.
  • Nadaje każdej funkcji ten sam poziom ważności. Na przykład znajomość tylko koloru i pochodzenia umożliwiłaby prawidłowe przewidzenie wyniku. Dlatego każda funkcja jest równie ważna i w równym stopniu przyczynia się do wyniku.

Teraz, korzystając z naszego zestawu danych, musimy sklasyfikować, czy złodzieje ukradną samochód zgodnie z jego cechami. Każdy wiersz ma osobne wpisy, a kolumny reprezentują cechy każdego samochodu. W pierwszym rzędzie mamy skradziony Czerwony Samochód Sportowy z Krajowym Pochodzeniem. Dowiemy się, czy złodzieje ukradliby czerwonego SUV-a krajowego, czy nie (w naszym zestawie danych nie ma wpisu dotyczącego czerwonego SUV-a krajowego).

Możemy przepisać twierdzenie Bayesa dla naszego przykładu jako:

P(y | X) = [P(X | y) P(y)P(X)]/P(X)

Tutaj y oznacza zmienną klasy (Czy to było skradzione?), aby pokazać, czy złodzieje ukradli samochód niezgodnie z warunkami. X oznacza funkcje.

X = x1, x2, x3, …., xn)

Tutaj x1, x2,…, xn oznaczają cechy. Możemy je zmapować na typ, pochodzenie i kolor. Teraz zastąpimy X i rozszerzymy regułę łańcucha, aby uzyskać następujące:

P(y | x1, …, xn) = [P(x1 | y) P(x2 | y) … P(xn | y) P(y)]/[P(x1) P (x2) … P(xn )]

Możesz uzyskać wartości dla każdego z nich, używając zestawu danych i umieszczając ich wartości w równaniu. Mianownik pozostanie statyczny dla każdego wpisu w zbiorze danych, aby go usunąć i wprowadzić proporcjonalność.

P(y | x1, …, xn) ∝ P(y) i = 1nP(xi | y)

W naszym przykładzie y ma tylko dwa wyniki, tak lub nie.

y = argmaxyP(y) i = 1nP(xi | y)

Możemy stworzyć tabelę częstości, aby obliczyć prawdopodobieństwo a posteriori P(y|x) dla każdej cechy. Następnie uformujemy tabele częstości do tabel prawdopodobieństwa i użyjemy naiwnego równania Bayesa, aby znaleźć prawdopodobieństwo a posteriori każdej klasy. Wynikiem naszego przewidywania byłaby klasa, która ma najwyższe prawdopodobieństwo a posteriori. Oto tabele prawdopodobieństwa i częstotliwości:

Tabela częstotliwości koloru:

Kolor Czy to było skradzione (Tak) Czy to było skradzione (nie)
czerwony 3 2
Żółty 2 3

Tabela prawdopodobieństwa koloru:

Kolor Czy to było skradzione [P(Tak)] Czy to było skradzione [P(Nie)]
czerwony 3/5 2/5
Żółty 2/5 3/5

Tabela częstotliwości typu:

Rodzaj Czy to było skradzione (Tak) Czy to było skradzione (nie)
Sporty 4 2
SUV 1 3

Tabela prawdopodobieństwa typu:

Rodzaj Czy to było skradzione [P(Tak)] Czy to było skradzione [P(Nie)]
Sporty 4/5 2/5
SUV 1/5 3/5

Tabela częstotliwości pochodzenia:

Pochodzenie Czy to było skradzione (Tak) Czy to było skradzione (nie)
Domowy 2 3
Importowany 3 2

Tabela prawdopodobieństwa pochodzenia:

Pochodzenie Czy to było skradzione [P(Tak)] Czy to było skradzione [P(Nie)]
Domowy 2/5 3/5
Importowany 3/5 2/5

Nasz problem ma 3 predyktory dla X, więc zgodnie z równaniami, które widzieliśmy wcześniej, prawdopodobieństwo a posteriori P(Tak | X) byłoby następujące:

P(tak | X) = P(czerwony | tak) * P(SUV | tak) * P(krajowe | tak) * P(tak)

= ⅗ x x ⅖ x 1

= 0,048

P(nr | X) byłoby:

P(Nie | X) = P(Czerwony | Nie) * P(SUV | Nie) * P(Krajowy | Nie) * P(Nie)

= ⅖ x x ⅗ x 1

= 0,144

Tak więc, ponieważ prawdopodobieństwo a posteriori P (nie | X) jest wyższe niż prawdopodobieństwo a posteriori P (tak | X), nasz czerwony domowy SUV będzie miał „Nie” w „Czy to było skradzione?” Sekcja.

Przykład powinien pokazać, jak działa klasyfikator Naive Bayes. Aby uzyskać lepszy obraz wyjaśnienia Naive Bayes, powinniśmy teraz omówić jego zalety i wady:

Zalety i wady naiwnych Bayes

Zalety

  • Ten algorytm działa szybko i może zaoszczędzić sporo czasu.
  • Naive Bayes jest odpowiedni do rozwiązywania wieloklasowych problemów z przewidywaniami.
  • Jeśli jego założenie o niezależności funkcji jest prawdziwe, może działać lepiej niż inne modele i wymaga znacznie mniej danych szkoleniowych.
  • Naive Bayes lepiej nadaje się do kategorycznych zmiennych wejściowych niż zmiennych numerycznych.

Niedogodności

  • Naiwny Bayes zakłada, że ​​wszystkie predyktory (lub cechy) są niezależne i rzadko zdarzają się w prawdziwym życiu. Ogranicza to zastosowanie tego algorytmu w rzeczywistych przypadkach użycia.
  • Algorytm ten boryka się z „problemem zerowej częstotliwości”, w którym przypisuje zerowe prawdopodobieństwo zmiennej kategorialnej, której kategoria w zestawie danych testowych nie była dostępna w zestawie danych uczących. Najlepiej byłoby, gdybyś użył techniki wygładzania, aby rozwiązać ten problem.
  • Jego oszacowania mogą być w niektórych przypadkach błędne, więc nie powinieneś traktować jego wyników prawdopodobieństwa bardzo poważnie.

Zamówienie: Wyjaśnienie modeli uczenia maszynowego

Wyjaśnienie zastosowań naiwnych Bayes

Oto kilka obszarów, w których ten algorytm znajduje zastosowanie:

Klasyfikacja tekstu

W większości przypadków Naive Bayes wykorzystuje klasyfikację w tekście ze względu na założenie niezależności i wysokiej wydajności w rozwiązywaniu problemów wieloklasowych. Cieszy się wysokim wskaźnikiem sukcesu niż inne algorytmy ze względu na swoją szybkość i wydajność.

Analiza nastrojów

Jednym z najważniejszych obszarów uczenia maszynowego jest analiza sentymentu, a ten algorytm jest również bardzo przydatny. Analiza nastrojów skupia się na określeniu, czy klienci myślą pozytywnie czy negatywnie na dany temat (produkt lub usługę).

Systemy polecające

Z pomocą Collaborative Filtering, Naive Bayes Classifier buduje potężny system rekomendacji, aby przewidzieć, czy użytkownik chciałby dany produkt (lub zasób), czy nie. Amazon, Netflix i Flipkart to czołowe firmy, które używają systemów rekomendacji do sugerowania produktów swoim klientom.

Dowiedz się więcej algorytmów uczenia maszynowego

Naive Bayes to prosty i skuteczny algorytm uczenia maszynowego do rozwiązywania problemów wieloklasowych. Znajduje zastosowanie w wielu ważnych obszarach aplikacji uczenia maszynowego, takich jak analiza sentymentu i klasyfikacja tekstu.

Sprawdź Advanced Certification Program in Machine Learning & Cloud z IIT Madras, najlepszą szkołą inżynierską w kraju, aby stworzyć program, który nauczy Cię nie tylko uczenia maszynowego, ale także skutecznego jego wdrażania z wykorzystaniem infrastruktury chmury. Naszym celem w ramach tego programu jest otwarcie drzwi najbardziej selektywnego instytutu w kraju i zapewnienie uczniom dostępu do niesamowitych wydziałów i zasobów, aby opanować umiejętność, która jest na wysokim poziomie i rośnie

Co to jest naiwny algorytm Bayesa?

Aby poradzić sobie z trudnościami w kategoryzacji, wykorzystujemy technikę uczenia maszynowego Naive Bayes. U podstaw tego leży twierdzenie Bayesa. Jest to jeden z najbardziej podstawowych, ale potężnych algorytmów uczenia maszynowego w użyciu, mający zastosowanie w różnych branżach. Załóżmy, że pracujesz nad problemem klasyfikacji i masz już ustalone cechy i hipotezę, ale Twój szef chce zobaczyć model. Aby wytrenować zestaw danych, masz dużą liczbę punktów danych (tysiące punktów danych) i dużą liczbę zmiennych. Klasyfikator Naive Bayes, który jest znacznie szybszy niż inne algorytmy klasyfikacji, byłby najlepszą opcją w tej sytuacji.

Jakie są zalety i wady naiwnych bayesów?

W przypadku problemów z przewidywaniem wielu klas, dobrym wyborem jest Naive Bayes. Jeśli założenie o niezależności funkcji pozostanie prawdziwe, może przewyższyć inne modele przy użyciu znacznie mniejszej ilości danych szkoleniowych. Kategoryczne zmienne wejściowe są bardziej odpowiednie dla Naive Bayes niż liczbowe zmienne wejściowe.

W naiwnym Bayesa zakłada się, że wszystkie predyktory (lub cechy) są niezależne, co rzadko zdarza się w prawdziwym życiu. Ogranicza to użyteczność algorytmu w rzeczywistych scenariuszach. Nie powinieneś poważnie traktować jego wyników prawdopodobieństwa, ponieważ jego oszacowania mogą być w niektórych przypadkach niepoprawne.

Jakie są rzeczywiste zastosowania naiwnych bayesów?

Ze względu na swoje założenie o autonomii i wysokiej wydajności w rozwiązywaniu problemów wieloklasowych, Naive Bayes jest często używany w klasyfikacji w tekście. Analiza nastrojów jest jednym z najpopularniejszych zastosowań uczenia maszynowego i ta technika również może w tym pomóc. Celem analizy sentymentu jest ustalenie, czy klienci mają pozytywne lub negatywne odczucia w odniesieniu do konkretnego zagadnienia (produktu lub usługi). Naive Bayes Classifier wykorzystuje Collaborative Filtering do tworzenia zaawansowanego systemu rekomendacji, który może przewidzieć, czy użytkownik będzie zadowolony z danego produktu (lub zasobu).