Zdaję sobie sprawę, że to stare pytanie z ustaloną odpowiedzią. Powodem, dla którego piszę, jest to, że zaakceptowana odpowiedź zawiera wiele elementów k-NN ( k- najbliższych sąsiadów), inny algorytm.
Zarówno k-NN, jak i NaiveBayes są algorytmami klasyfikacji. Koncepcyjnie, k-NN używa pojęcia „bliskości” do klasyfikowania nowych bytów. W k-NN „bliskość” jest modelowana za pomocą takich pomysłów, jak odległość euklidesowa lub odległość kosinusowa. Natomiast w NaiveBayes pojęcie „prawdopodobieństwa” służy do klasyfikowania nowych bytów.
Ponieważ pytanie dotyczy Naive Bayes, oto jak opisałbym pomysły i kroki do kogoś. Spróbuję to zrobić przy użyciu jak najmniejszej liczby równań i możliwie jak najprostszego angielskiego.
Po pierwsze, prawdopodobieństwo warunkowe i reguła Bayesa
Zanim ktoś zrozumie i doceni niuanse Naive Bayesa, musi najpierw poznać kilka powiązanych pojęć, a mianowicie ideę warunkowego prawdopodobieństwa i Regułę Bayesa. (Jeśli znasz te koncepcje, przejdź do sekcji zatytułowanej Getting to Naive Bayes ' )
Prawdopodobieństwo warunkowe w prostym języku angielskim: jakie jest prawdopodobieństwo, że coś się wydarzy, biorąc pod uwagę, że coś innego już się wydarzyło.
Powiedzmy, że istnieje jakiś Wynik O. I niektóre Dowody E. Ze sposobu, w jaki te prawdopodobieństwa są zdefiniowane: Prawdopodobieństwo, że zarówno Wynik O, jak i Dowód E są następujące: (Prawdopodobieństwo wystąpienia O) pomnożone przez (Prawdopodobieństwo E, biorąc pod uwagę, że O się stało)
Jeden przykład, aby zrozumieć prawdopodobieństwo warunkowe:
Powiedzmy, że mamy kolekcję amerykańskich senatorów. Senatorami mogą być Demokraci lub Republikanie. Są także płci męskiej lub żeńskiej.
Jeśli wybieramy jednego senatora całkowicie losowo, jakie jest prawdopodobieństwo, że ta osoba jest demokratką? Prawdopodobieństwo warunkowe może pomóc nam odpowiedzieć na to pytanie.
Prawdopodobieństwo (Demokratki i Senatora Kobiet) = Prob (Senator jest Demokratą) pomnożone przez Warunkowe Prawdopodobieństwo Być Kobietą, biorąc pod uwagę, że są Demokratami.
P(Democrat & Female) = P(Democrat) * P(Female | Democrat)
Możemy obliczyć dokładnie to samo, odwrotnie:
P(Democrat & Female) = P(Female) * P(Democrat | Female)
Zrozumienie reguły Bayesa
Koncepcyjnie jest to sposób na przejście od P (Dowód | Znany wynik) do P (Wynik | Znany dowód). Często wiemy, jak często obserwuje się określone dowody, biorąc pod uwagę znany wynik . Biorąc pod uwagę dowody, musimy wykorzystać ten znany fakt do obliczenia odwrotności, do obliczenia prawdopodobieństwa wystąpienia tego wyniku .
P (Wynik podany, że znamy pewne dowody) = P (Podany dowód, że znamy Wynik) razy Prob (Wynik), skalowany przez P (Dowód)
Klasyczny przykład na zrozumienie reguły Bayesa:
Probability of Disease D given Test-positive =
Prob(Test is positive|Disease) * P(Disease)
_______________________________________________________________
(scaled by) Prob(Testing Positive, with or without the disease)
Teraz wszystko to było tylko wstępem do Naive Bayes.
Dojazd do Naive Bayes
Do tej pory rozmawialiśmy tylko o jednym dowodzie. W rzeczywistości musimy przewidzieć wynik na podstawie wielu dowodów. W takim przypadku matematyka staje się bardzo skomplikowana. Aby obejść tę komplikację, jednym z podejść jest „odłączenie” wielu dowodów i traktowanie każdego z nich jako niezależnego. Takie podejście nazywa się naiwnym Bayesem.
P(Outcome|Multiple Evidence) =
P(Evidence1|Outcome) * P(Evidence2|outcome) * ... * P(EvidenceN|outcome) * P(Outcome)
scaled by P(Multiple Evidence)
Wiele osób decyduje się zapamiętać to jako:
P(Likelihood of Evidence) * Prior prob of outcome
P(outcome|evidence) = _________________________________________________
P(Evidence)
Zwróć uwagę na kilka rzeczy na temat tego równania:
- Jeśli Prob (dowód | wynik) wynosi 1, to mnożymy tylko przez 1.
- Jeśli Prob (niektóre konkretne dowody | wynik) wynosi 0, to cały prob. staje się 0. Jeśli zobaczysz sprzeczne dowody, możemy wykluczyć ten wynik.
- Ponieważ dzielimy wszystko przez P (dowód), możemy nawet uciec bez obliczania tego.
- Intuicyjność stojąca za pomnożeniem przez wcześniejsze jest taka, że dajemy wysokie prawdopodobieństwo częstszych wyników, a niskie prawdopodobieństwo mało prawdopodobnych. Są również nazywane
base rates
i są sposobem na skalowanie naszych przewidywanych prawdopodobieństw.
Jak zastosować NaiveBayes do przewidywania wyniku?
Po prostu uruchom powyższą formułę dla każdego możliwego wyniku. Ponieważ próbujemy sklasyfikować , każdy wynik nazywa się „ class
a”. class label.
Naszym zadaniem jest przyjrzenie się dowodom, rozważenie prawdopodobieństwa, że będzie to ta klasa lub klasa, i przypisanie etykiety każdej jednostce. Ponownie przyjmujemy bardzo proste podejście: klasa o najwyższym prawdopodobieństwie zostaje ogłoszona „zwycięzcą” i ta etykieta klasy zostaje przypisana do tej kombinacji dowodów.
Przykład owoców
Wypróbujmy to na przykładzie, aby zwiększyć nasze zrozumienie: OP poprosił o przykład identyfikacji „owocowej”.
Powiedzmy, że mamy dane dotyczące 1000 kawałków owoców. Zdarza się, że to banan , pomarańcza lub inny owoc . Znamy 3 cechy każdego owocu:
- Czy to jest długie
- Czy to jest słodkie i
- Jeśli ma kolor żółty.
To jest nasz „zestaw treningowy”. Wykorzystamy to, aby przewidzieć rodzaj każdego nowego napotkanego owocu.
Type Long | Not Long || Sweet | Not Sweet || Yellow |Not Yellow|Total
___________________________________________________________________
Banana | 400 | 100 || 350 | 150 || 450 | 50 | 500
Orange | 0 | 300 || 150 | 150 || 300 | 0 | 300
Other Fruit | 100 | 100 || 150 | 50 || 50 | 150 | 200
____________________________________________________________________
Total | 500 | 500 || 650 | 350 || 800 | 200 | 1000
___________________________________________________________________
Możemy wstępnie obliczyć wiele rzeczy na temat naszej kolekcji owoców.
Tak zwane „wcześniejsze” prawdopodobieństwa. (Gdybyśmy nie znali żadnego z atrybutów owoców, byłoby to nasze przypuszczenie.) To są naszebase rates.
P(Banana) = 0.5 (500/1000)
P(Orange) = 0.3
P(Other Fruit) = 0.2
Prawdopodobieństwo „dowodów”
p(Long) = 0.5
P(Sweet) = 0.65
P(Yellow) = 0.8
Prawdopodobieństwo „prawdopodobieństwa”
P(Long|Banana) = 0.8
P(Long|Orange) = 0 [Oranges are never long in all the fruit we have seen.]
....
P(Yellow|Other Fruit) = 50/200 = 0.25
P(Not Yellow|Other Fruit) = 0.75
Biorąc pod uwagę owoc, jak go sklasyfikować?
Powiedzmy, że otrzymaliśmy właściwości nieznanego owocu i poprosiliśmy go o sklasyfikowanie. Mówi się nam, że owoc jest długi, słodki i żółty. Czy to banan? Czy to pomarańcza? A może to jakiś inny owoc?
Możemy po prostu uruchomić liczby dla każdego z 3 wyników, jeden po drugim. Następnie wybieramy najwyższe prawdopodobieństwo i „klasyfikujemy” nasz nieznany owoc jako należący do klasy, która miała najwyższe prawdopodobieństwo na podstawie naszych wcześniejszych dowodów (nasz zestaw treningowy 1000 owoców):
P(Banana|Long, Sweet and Yellow)
P(Long|Banana) * P(Sweet|Banana) * P(Yellow|Banana) * P(banana)
= _______________________________________________________________
P(Long) * P(Sweet) * P(Yellow)
= 0.8 * 0.7 * 0.9 * 0.5 / P(evidence)
= 0.252 / P(evidence)
P(Orange|Long, Sweet and Yellow) = 0
P(Other Fruit|Long, Sweet and Yellow)
P(Long|Other fruit) * P(Sweet|Other fruit) * P(Yellow|Other fruit) * P(Other Fruit)
= ____________________________________________________________________________________
P(evidence)
= (100/200 * 150/200 * 50/200 * 200/1000) / P(evidence)
= 0.01875 / P(evidence)
Przy użyciu przeważającego marginesu ( 0.252 >> 0.01875
), klasyfikujemy ten słodki / długi / żółty owoc jako prawdopodobny banan.
Dlaczego klasyfikator Bayes jest tak popularny?
Zobacz, co w końcu sprowadza się. Tylko trochę liczenia i mnożenia. Możemy wstępnie obliczyć wszystkie te warunki, dzięki czemu klasyfikacja staje się łatwa, szybka i wydajna.
Let z = 1 / P(evidence).
Teraz szybko obliczamy następujące trzy wielkości.
P(Banana|evidence) = z * Prob(Banana) * Prob(Evidence1|Banana) * Prob(Evidence2|Banana) ...
P(Orange|Evidence) = z * Prob(Orange) * Prob(Evidence1|Orange) * Prob(Evidence2|Orange) ...
P(Other|Evidence) = z * Prob(Other) * Prob(Evidence1|Other) * Prob(Evidence2|Other) ...
Przypisz etykietę klasy, która jest najwyższą liczbą, i gotowe.
Pomimo nazwy, Naive Bayes okazuje się być doskonały w niektórych zastosowaniach. Klasyfikacja tekstu to jeden z obszarów, w którym naprawdę świeci.
Mam nadzieję, że pomaga w zrozumieniu koncepcji algorytmu Naive Bayes.