[R] [klaR package] [NaiveBayes] warning message numerical 0 probability

Ted Chang changcy.mlml at gmail.com
Thu Nov 10 09:00:49 CET 2011


Uwe Ligges <ligges <at> statistik.tu-dortmund.de> writes:

> 
> 
> On 03.11.2010 16:26, Fabon Dzogang wrote:
> > Hi,
> >
> > I run R 2.10.1 under ubuntu 10.04 LTS (Lucid Lynx) and klaR version 0.6-4.
> >
> > I compute a model over a 2 classes dataset (composed of 700 examples).
> > To that aim, I use the function NaiveBayes provided in the package
> > klaR.
> > When I then use the prediction function : predict(my_model, new_data).
> > I get the following warning :
> >
> > "In FUN(1:747[[747L]], ...) : Numerical 0 probability with observation 458"
> >
> > As I did not find any documentation or any discussion concerning this
> > warning message, I looked in the klaR source code and found the
> > following line in predict.NaiveBayes.R :
> >
> > "warning("Numerical 0 probability with observation ", i)"
> 
> Within Naive Bayes in order to calculate the posteriori probabilities of
> the classes it is necessary to calculate the probabilities of the
> observations given the classes. The function NaiveBayes prints a warning
> if all these probabilities are numerical 0, i.e. that the observation
> has a numerical probability of 0 for *all* classes. Usually this is only
> the case when the obs. is an extreme outlier.
> 
> I will change the warning to say "all classes" in further releases of klaR.
> 
> Best wishes,
> Uwe Ligges
> 
> > Unfortunately, it is hard to get a clear picture of the whole process
> > reading the code. I wonder if someone could help me with the meaning
> > of this warning message.
> >
> > Sorry I did not provide an example, but I could not simulate the same
> > message over a small toy example.
> >
> > Thank you,
> >
> > Fabon Dzogang.
> >
> > ______________________________________________
> > R-help <at> r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
> 
> 

Hello,

I am following this thread after it's one year old!

I am also getting the warnings for probabilities=0, but for ALL observations! 
I am using NaiveBayes() to obtain the posteriors of all training examples (29
classes; 49 numeric continuous variables, 700 examples), thus the command:

my.model <-NaiveBayes(class ~ ., data = data, usekernel = TRUE)

predict(my.model)

as expected, it returns predicted classes and a matrix of posteriors for each
training examples, BUT with this warning for ALL training examples. Still the
accuracy is ~60% and is within expectation.
Please give some comments, Is this possible?? Should I ignore the warnings??

The posteriors returned look like this:

         Class1       class2        class3        class4  ...
1  6.725408e-58  0.999999996  4.277379e-09  2.923033e-90
2  4.443767e-48  0.997316780  2.683220e-03  1.710466e-75
3  3.348223e-40  0.999993916  6.799327e-08  6.760083e-81
... ...

Sorry I am replying via the Gmane interface and cannot attach my dataset. But I
am starting to follow this mailing list now, so may be able to reply with
attachments to the next message.

grateful for any comments!

Ted Chang



More information about the R-help mailing list