[R] [klaR package] [NaiveBayes] warning message numerical 0 probability
ligges at statistik.tu-dortmund.de
Thu Nov 10 10:29:13 CET 2011
On 10.11.2011 09:00, Ted Chang wrote:
> Uwe Ligges<ligges<at> statistik.tu-dortmund.de> writes:
>> On 03.11.2010 16:26, Fabon Dzogang wrote:
>>> 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
>>> 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
>>> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
>>> and provide commented, minimal, self-contained, reproducible code.
> 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)
Please send data and code (if the above is not all the code) to me
privately. I'll take a look.
> 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
> R-help at r-project.org mailing list
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help