Comment gérer un facteur zéro dans le calcul du Naive Bayes Classifier?

14

Si j'ai un ensemble de données d'entraînement et j'entraîne un classificateur Naive Bayes dessus et j'ai une valeur d'attribut qui a une probabilité nulle. Comment gérer cela si je souhaite par la suite prédire la classification des nouvelles données? Le problème est que s'il y a un zéro dans le calcul, le produit entier devient nul, peu importe le nombre d'autres valeurs que j'ai obtenues qui trouveraient peut-être une autre solution.

Exemple:

P(X|spunem=yes)=P(TjemeZone=US|spunem=yes)P(geoLocunetjeon=EU|spunem=yes) ... =0,004

P(X|spunem=no)=P(TjemeZone=US|spunem=no)P(geoLocunetjeon=EU|spunem=no) ... =0

Le produit entier devient parce que dans les données d'entraînement, l'attribut TimeZone US est toujours Oui dans notre petit ensemble de données d'entraînement. Comment puis-je gérer cela? Dois-je utiliser un plus grand ensemble de données d'entraînement ou existe-t-il une autre possibilité de résoudre ce problème?0

parfumé
la source
Si vous obtenez une valeur d'attribut discrète, sa probabilité ne peut pas être nulle, par définition.
Paul
pourquoi nous ajoutons un problème de fréquence 1 sur 0 quelle est la logique derrière cela pourquoi ne pas ajouter un autre nombre.
Aftab Hussaiin

Réponses:

13

Une approche pour surmonter ce «problème de fréquence nulle» dans un cadre bayésien consiste à en ajouter un au nombre pour chaque combinaison valeur-attribut lorsqu'une valeur d'attribut ne se produit pas avec chaque valeur de classe. Par exemple, supposons que vos données d'entraînement ressemblent à ceci:

Spam=yesSpam=noFuseau horaire=USdix5Fuseau horaire=EU00

P(Fuseau horaire=US|Spam=yes)=dixdix=1

P(Fuseau horaire=EU|Spam=yes)=0dix=0

Ensuite, vous devez ajouter une à chaque valeur de ce tableau lorsque vous l'utilisez pour calculer les probabilités:

Spam=yesSpam=noFuseau horaire=US116Fuseau horaire=EU11

P(Fuseau horaire=US|Spam=yes)=1112

P(Fuseau horaire=EU|Spam=yes)=112

chronogramme
la source
4
En effet. Notez que vous pouvez parfois ajouter des valeurs autres qu'une. Pour plus de détails, voir en.wikipedia.org/wiki/Additive_smoothing
DaL