Wyjaśnienie naiwnego Bayesa: funkcja, zalety i wady, zastosowania w 2022 r.
Opublikowany: 2021-01-05Naive 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).