Naive Bayes présente des probabilités: dois-je compter deux fois les mots?

12

Je suis en train de prototyper mon propre modèle Naive Bayes bag o 'words, et j'avais une question sur le calcul des probabilités de fonctionnalité.

Disons que j'ai deux classes, je vais juste utiliser le spam et non-spam car c'est ce que tout le monde utilise. Et prenons le mot "viagra" comme exemple. J'ai 10 e-mails dans mon kit de formation, 5 spam et 5 non-spam. "viagra" apparaît dans les 5 documents de spam. Dans l'un des documents de formation, il apparaît 3 fois (c'est ma question), ce qui fait 7 apparitions dans le spam. Dans l'ensemble de formation anti-spam, il apparaît 1 fois.

Si je veux estimer p (viagra | spam) est-ce simplement:

p (viagra | spam) = 5 documents de spam contiennent du viagra / 5 documents de spam au total = 1

En d'autres termes, le fait qu'un document mentionne le viagra 3 fois au lieu d'une fois n'a-t-il pas vraiment d'importance?


Edit: Voici un article de blog où l'auteur utilise l'approche que je viens d'exposer: http://ebiquity.umbc.edu/blogger/2010/12/07/naive-bayes-classifier-in-50-lines/

Et voici un article de blog où l'auteur dit: p (viagra | spam) = 7 mentions de spam viagra / 8 mentions totales http://www.nils-haldenwang.de/computer-science/machine-learning/how-to-apply -nive-bayes-classifiers-to-document-classification-problems

Et puis l'une des réponses ci-dessous dit que cela devrait être: p (viagra | spam) = 7 mentions de viagra dans le spam / nombre total de termes dans le spam

Quelqu'un peut-il créer un lien vers une source qui donne un avis à ce sujet?

user24885
la source

Réponses:

4

En d'autres termes, le fait qu'un document mentionne le viagra 3 fois au lieu d'une fois n'a-t-il pas vraiment d'importance?

C'est important. Le modèle multinomial Naive Bayes prend en compte chaque occurrence d'un jeton, contrairement au modèle Bernoulli Naive Bayes (c'est-à-dire que pour ce dernier modèle, 3 occurrences de "viagra" sont identiques à 1 occurrence de "viagra").

Voici deux illustrations ainsi qu'un tableau de comparaison de {1}:

entrez la description de l'image ici

entrez la description de l'image ici

entrez la description de l'image ici

{1} présente parfaitement Naive Bayes pour la classification de texte, ainsi que le modèle multinomial Naive Bayes et le modèle Bernoulli Naive Bayes.


Les références:

Franck Dernoncourt
la source
1

Cela dépend du modèle naïf spécifique que vous appliquez. En général, pour la classification de texte, vous voulez considérer la répétition des termes, donc la réponse est oui.

L'autre point est que vous envisagez la probabilité basée sur l'espace d'événement du document. Vous pouvez également le faire en fonction du terme espace:

p (viagra | spam) = 5 fois le terme spam dans la classe spam / 50 termes dans la classe

Vous avez beaucoup d'informations dans ce [papier] ( http://echo.edres.org:8080/betsy/mccallum1.pdf )

miguelmalvarez
la source
0

Je pense que cela dépend de ce que vous entendez exactement par p (viagra | spam) et de la façon dont vous modélisez les données.

Tel qu'écrit, j'interpréterais votre sens comme «la probabilité que le mot viagra soit mentionné au moins une fois dans un message, étant donné que ce message est du spam». Dans ce cas, oui, le fait qu'un document mentionne le viagra trois fois n'a aucun effet. Vous avez défini un modèle qui ne tient pas compte de ces faits.

Bien sûr, vous pourriez avoir un modèle différent. Par exemple, au lieu que le viagra soit représenté par une variable binaire (présente / absente), il pourrait représenter le nombre de fois où le mot apparaît dans le message. Dans ce cas, à partir de vos données brutes, vous estimez une fréquence empirique de quelque chose comme

p (viagra = 0 | spam) = 0

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

p (viagra = 2 | spam) = 0

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

etc.

Je ne dis pas que c'est une meilleure façon de procéder. Je ne fais qu'illustrer une situation alternative où votre intuition selon laquelle voir le viagra mentionné trois fois est pertinente tient.

Un exemple plus pratique pourrait être «Fréquence terminologique - Fréquence inverse du document», qui est une méthode qui accorde beaucoup d'attention à la fréquence d'un mot dans un document.

Tapoter
la source