Naive Bayes apresentam probabilidades: devo contar duas palavras?

12

Estou prototipando meu próprio modelo de saco de palavras Naive Bayes e tive uma pergunta sobre o cálculo das probabilidades de recurso.

Digamos que eu tenho duas classes, vou usar spam e não spam, já que é isso que todo mundo usa. E vamos tomar a palavra "viagra" como exemplo. Tenho 10 e-mails no meu conjunto de treinamento, 5 spam e 5 não spam. "viagra" aparece nos 5 documentos de spam. Em um dos documentos de treinamento, ele aparece três vezes (é sobre isso que minha pergunta), então são 7 aparições no total de spam. No conjunto de treinamento sem spam, ele aparece 1 vez.

Se eu quiser estimar p (viagra | spam) é simplesmente:

p (viagra | spam) = 5 documentos de spam contêm viagra / 5 total de documentos de spam = 1

Em outras palavras, o fato de um documento mencionar viagra 3 vezes em vez de uma vez realmente não importa?


Edit: Aqui está uma postagem no blog em que o autor usa a abordagem que acabei de expor: http://ebiquity.umbc.edu/blogger/2010/12/07/naive-bayes-classifier-in-50-lines/

E aqui está uma postagem no blog em que o autor diz: p (viagra | spam) = 7 menções de spam viagra / 8 total de menções http://www.nils-haldenwang.de/computer-science/machine-learning/how-to-apply -naive-bayes-classifiers-to-document-classificação-problemas

E então uma das respostas abaixo diz que deve ser: p (viagra | spam) = 7 menções de viagra em spam / contagem total de termos em spam

Alguém pode criar um link para uma fonte que dê uma opinião sobre isso?

user24885
fonte

Respostas:

4

Em outras palavras, o fato de um documento mencionar viagra 3 vezes em vez de uma vez realmente não importa?

Isto é importante. O modelo Multinomial Naive Bayes leva em consideração cada ocorrência de um token, enquanto o modelo Bernoulli Naive Bayes não (ou seja, para o último modelo, 3 ocorrências de "viagra" são iguais a 1 ocorrência de "viagra").

Aqui estão duas ilustrações e uma tabela de comparação de {1}:

insira a descrição da imagem aqui

insira a descrição da imagem aqui

insira a descrição da imagem aqui

{1} apresenta cuidadosamente Naive Bayes para classificação de texto, bem como o modelo Multinomial Naive Bayes e o modelo Bernoulli Naive Bayes.


Referências:

Franck Dernoncourt
fonte
1

Depende do modelo ingênuo específico que você aplica. Em geral, para a Classificação do texto, você deseja considerar a repetição de termos, portanto a resposta é sim.

O outro ponto é que você está considerando a probabilidade com base no espaço de eventos do documento. Você também pode fazer isso com base no termo espaço:

p (viagra | spam) = 5 vezes o termo spam na classe spam / 50 termos na classe

Você tem muita informação neste [artigo] ( http://echo.edres.org:8080/betsy/mccallum1.pdf )

miguelmalvarez
fonte
0

Eu acho que depende do que exatamente você quer dizer com p (viagra | spam) e como você está modelando os dados.

Como está escrito, eu interpretaria seu significado como 'a probabilidade de a palavra viagra ser mencionada pelo menos uma vez em uma mensagem, uma vez que essa mensagem é spam'. Nesse caso, sim, o fato de um documento mencionar viagra três vezes não tem efeito. Você definiu um modelo que não presta atenção a esses fatos.

Claro, você poderia ter um modelo diferente. Por exemplo, em vez de o viagra representar por uma variável binária (presente / ausente), poderia representar a contagem do número de vezes que a palavra aparece na mensagem. Nesse caso, a partir dos dados brutos, você estimaria uma frequência empírica de algo como

p (viagra = 0 | spam) = 0

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

p (viagra = 2 | spam) = 0

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

etc.

Não estou dizendo que é a melhor maneira de fazer isso. Estou apenas ilustrando uma situação alternativa em que sua intuição de que ver o viagra mencionado três vezes é relevante é válida.

Um exemplo mais prático pode ser 'Frequência de Termo - Frequência Inversa de Documento', que é um método que presta muita atenção à frequência de uma palavra em um documento.

Pat
fonte