Como lidar com um fator zero no cálculo do Naive Bayes Classifier?

13

Se eu tiver um conjunto de dados de treinamento e treinar um Classificador Naive Bayes nele, e tiver um valor de atributo com probabilidade zero. Como faço para lidar com isso se mais tarde desejar prever a classificação em novos dados? O problema é que, se houver um zero no cálculo, todo o produto se torna zero, não importando quantos outros valores eu tenha, que talvez encontrem outra solução.

Exemplo:

P(x|spumam=yes)=P(TEumeZone=vocêS|spumam=yes)P(GeoeuocumatEuon=Evocê|spumam=yes) ... =0,004

P(x|spumam=no)=P(TEumeZone=vocêS|spumam=no)P(GeoeuocumatEuon=Evocê|spumam=no) ... =0 0

O produto inteiro se torna porque nos dados de treinamento o atributo TimeZone US é sempre Sim em nosso pequeno conjunto de dados de treinamento. Como posso lidar com isso? Devo usar um conjunto maior de dados de treinamento ou existe outra possibilidade de superar esse problema?0 0

fragrante
fonte
Se você receber um valor de atributo discreto, sua probabilidade não pode ser zero, por definição.
Paul
por que adicionamos 1 em 0 problema de frequência, qual é a lógica por trás disso, por que não adicionamos outro número
Aftab Hussaiin

Respostas:

12

Uma abordagem para superar esse 'problema de frequência zero' em uma configuração bayesiana é adicionar um à contagem para cada combinação de valor-classe de atributo quando um valor de atributo não ocorre com cada valor de classe. Por exemplo, digamos que seus dados de treinamento tenham a seguinte aparência:

Spam=yesSpam=noFuso horário=vocêS105Fuso horário=Evocê0 00 0

P(Fuso horário=vocêS|Spam=yes)=1010=1

P(Fuso horário=Evocê|Spam=yes)=0 010=0 0

Em seguida, você deve adicionar um a cada valor nesta tabela ao usá-lo para calcular probabilidades:

Spam=yesSpam=noFuso horário=vocêS116Fuso horário=Evocê11

P(Fuso horário=vocêS|Spam=yes)=1112

P(Fuso horário=Evocê|Spam=yes)=112

timleathart
fonte
4
De fato. Observe que em algum momento você pode adicionar outros valores que não um. Para obter detalhes, consulte en.wikipedia.org/wiki/Additive_smoothing
DaL