Naive Bayes - within-class variance must be positive.
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am trying to use Naive Bayes for some classification task, I am not sure what it is complaining about.
??? Error using ==> NaiveBayes.fit>gaussianFit at 535
The within-class variance in each feature of TRAINING must be positive. The within-class variance in
feature 5 6 12 13 15 16 17 in class 1 are not positive.
Error in ==> NaiveBayes.fit at 498
obj = gaussianFit(obj, training, gindex);
Thank you for reading
1 comentario
the cyclist
el 4 de Jun. de 2012
Are you able to post a small bit of your data and code that exhibit the error?
Respuesta aceptada
Tom Lane
el 5 de Jun. de 2012
Suppose you have data X and classes C. Can you look at
var(X(C==1,:)
If you see that columns 5, 6, 12, etc. have zero variance, that is the problem. The fit is based on fitting a normal distribution separately for each class and feature. If any class has 0 variance for a feature, that normal fit is degenerate.
What you want to do about this depends on you. It is possible to change the fit to a kernel density estimate and specify the width. Or you could try a decision tree or knn classifier.
0 comentarios
Más respuestas (0)
Ver también
Categorías
Más información sobre Classification en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!