Naiwne cechy Bayesa mają prawdopodobieństwo: czy powinienem podwójnie liczyć słowa?

12

Prototypuję własny model słów Naive Bayes i miałem pytanie dotyczące obliczania prawdopodobieństw cech.

Powiedzmy, że mam dwie klasy, po prostu używam spamu i nie-spamu, ponieważ wszyscy tego używają. Weźmy jako przykład słowo „viagra”. W moim zestawie szkoleniowym jest 10 e-maili, 5 spamu i 5 spamu. „viagra” pojawia się we wszystkich 5 dokumentach spamowych. W jednym z dokumentów szkoleniowych pojawia się 3 razy (o to chodzi w moim pytaniu), więc to łącznie 7 wystąpień w spamie. W zestawie szkoleń bez spamu pojawia się 1 raz.

Jeśli chcę oszacować p (viagra | spam), to po prostu:

p (viagra | spam) = 5 dokumentów spamowych zawiera viagra / 5 dokumentów spamowych = 1

Innymi słowy, czy fakt, że jeden dokument wspomniał viagrę 3 razy zamiast raz naprawdę nie ma znaczenia?


Edycja: Oto post na blogu, w którym autor stosuje właśnie opracowane przeze mnie podejście: http://ebiquity.umbc.edu/blogger/2010/12/07/naive-bayes-classifier-in-50-lines/

A tutaj jest blog, w którym autor mówi: p (viagra | spam) = 7 viagra spam wzmianki / 8 wszystkich wzmianek http://www.nils-haldenwang.de/computer-science/machine-learning/how-to-apply -naive-bayes-klasyfikators-to-document-klasyfikacja-problems

A następnie jedna z poniższych odpowiedzi mówi, że powinno być: p (viagra | spam) = 7 viagra wspomina w spamie / całkowita liczba terminów w spamie

Czy ktoś może link do źródła, które wydaje opinię na ten temat?

użytkownik24885
źródło

Odpowiedzi:

4

Innymi słowy, czy fakt, że jeden dokument wspomniał viagrę 3 razy zamiast raz naprawdę nie ma znaczenia?

To ma znaczenie. Model wielomianowego naiwnego Bayesa bierze pod uwagę każde wystąpienie tokena, podczas gdy model Bernoulliego naiwnego Bayesa nie (tj. W tym ostatnim modelu 3 wystąpienia „viagry” są takie same jak 1 wystąpienie „viagry”).

Oto dwie ilustracje oraz tabela porównawcza z {1}:

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

{1} zgrabnie wprowadza Naive Bayesa do klasyfikacji tekstu, a także model Multinomial Naive Bayes i model Bernoulli Naive Bayes.


Bibliografia:

Franck Dernoncourt
źródło
1

To zależy od konkretnego zastosowanego modelu naiwnego. Ogólnie rzecz biorąc, w przypadku klasyfikacji tekstowej powinieneś rozważyć powtórzenie terminów, więc odpowiedź brzmi tak.

Drugą kwestią jest rozważenie prawdopodobieństwa na podstawie przestrzeni zdarzeń dokumentu. Możesz to również zrobić na podstawie terminu space:

p (viagra | spam) = 5-krotny termin spamu w klasie spam / 50 terminów w klasie

Masz wiele informacji w tym [artykule] ( http://echo.edres.org:8080/betsy/mccallum1.pdf )

miguelmalvarez
źródło
0

Myślę, że to zależy od tego, co dokładnie rozumiesz przez p (viagra | spam) i od tego, jak modelujesz dane.

Jak napisano, interpretowałbym twoje znaczenie jako „prawdopodobieństwo, że słowo viagra jest wspomniane co najmniej raz w wiadomości, biorąc pod uwagę, że jest to spam”. W takim przypadku tak, fakt, że jeden dokument trzykrotnie wymienił viagrę, nie ma żadnego efektu. Zdefiniowałeś model, który nie zwraca uwagi na takie fakty.

Oczywiście możesz mieć inny model. Na przykład, zamiast viagry reprezentowanej przez zmienną binarną (obecną / nieobecną), może reprezentować liczbę wyświetleń słowa w wiadomości. W takim przypadku na podstawie surowych danych oszacowałbyś częstotliwość empiryczną czegoś takiego

p (viagra = 0 | spam) = 0

p (viagra = 1 | spam) = 4/5

p (viagra = 2 | spam) = 0

p (viagra = 3 | spam) = 1/5

itp.

Nie twierdzę, że to lepszy sposób na zrobienie tego. Właśnie ilustruję alternatywną sytuację, w której twoja intuicja, że ​​trzykrotnie wspomniana viagra jest istotna, ma sens.

Bardziej praktycznym przykładem może być „Częstotliwość - odwrotna częstotliwość dokumentów”, która jest metodą, która zwraca dużą uwagę na częstotliwość słowa w dokumencie.

Poklepać
źródło