我尝试使用NaiveBayes分类器和NaiveBayesSimple分类器进行分类,使用以下数据:
@attribute a real
@attribute b {yes, no}
@data
1,yes
3,yes
5,yes
2,yes
1,yes
4,no
7,no
5,no
8,no
9,no当使用NaiveBayesSimple分类器时,我得到了预期的均值和方差值:
=== Classifier model (full training set) ===
Naive Bayes (simple)
Class yes: P(C) = 0.5
Attribute a
Mean: 2.4 Standard Deviation: 1.67332005
Class no: P(C) = 0.5
Attribute a
Mean: 6.6 Standard Deviation: 2.07364414但是,在使用NaiveBayes分类器时,我得到了不同的值:
=== Classifier model (full training set) ===
Naive Bayes Classifier
Class
Attribute yes no
(0.5) (0.5)
=============================
a
mean 2.5143 6.6286
std. dev. 1.3328 1.8286
weight sum 5 5
precision 1.1429 1.1429我想知道转移的原因是什么?我已经读过一篇文章,说NaiveBayes分类器是基于:http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.8.3257的,因此看不到任何理由。
谢谢
发布于 2012-05-10 18:04:57
这两种算法各不相同。
Weka中的朴素贝叶斯定义如下:
名称weka.classifiers.bayes.NaiveBayes
一个使用估计类的朴素贝叶斯分类器的概要类。在对训练数据进行分析的基础上,选择了数值估计精度值。因此,分类器不是UpdateableClassifier (通常使用零训练实例初始化) --如果需要UpdateableClassifier功能,请使用NaiveBayesUpdateable分类器。当调用具有零训练实例的NaiveBayesUpdateable时,buildClassifier分类器将对数值属性使用默认精度为0.1。
有关朴素贝叶斯分类器的更多信息,请参见
乔治·H·约翰,帕特·兰利:在贝叶斯分类器中估计连续分布。第十一次人工智能不确定性问题会议,圣马特奥,338-345,1995年。
选项调试--如果设置为true,分类器可能会将附加信息输出到控制台。
displayModelInOldFormat --模型输出使用旧格式。当有许多类值时,旧的格式会更好。当有较少的类和许多属性时,新的格式会更好。
useKernelEstimator -对数值属性使用内核估计器,而不是正态分布。
useSupervisedDiscretization --使用监督离散化将数字属性转换为标称属性。
NaiveBayesSimple的定义如下:
名称weka.classifiers.bayes.NaiveBayesSimple
用于构建和使用简单朴素贝叶斯classifier.Numeric属性的概要类是由正态分布建模的。
有关详细信息,请参阅
Richard Duda,Peter Hart (1973)。模式分类和场景分析。威利,纽约。
选项调试--如果设置为真,分类器可能会将附加信息输出到控制台.
https://stackoverflow.com/questions/8622341
复制相似问题