我尝试使用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
我想知道平均/ SD变化的原因是什么?我已经阅读了论文,NaiveBayes分类器基于:http://citeseer.ist.psu.edu/viewdoc/summary?doi=10.1.1.8.3257,并且在那里找不到任何理由。
由于
答案 0 :(得分:0)
这两种算法彼此不同。
Weka中的朴素贝叶定义如下:
名称weka.classifiers.bayes.NaiveBayes
使用估算器类的朴素贝叶斯分类器的SYNOPSIS类。 基于分析,选择数值估计精度值 培训数据。因此,分类器不是 UpdateableClassifier(在典型用法中初始化为零 训练实例) - 如果您需要UpdateableClassifier 功能,使用NaiveBayesUpdateable分类器。该 NaiveBayesUpdateable分类器将使用默认精度0.1 对于使用零调用buildClassifier时的数字属性 培训实例。
有关朴素贝叶斯分类器的更多信息,请参阅
George H. John,Pat Langley:估算连续分布 贝叶斯分类器。在:第十一届不确定性会议 人工智能,圣马特奥,338-345,1995。
OPTIONS debug - 如果设置为true,分类器可能会输出其他信息 到控制台。
displayModelInOldFormat - 使用旧格式进行模型输出。老人 当有许多类值时,格式更好。新格式是 当有更少的类和许多属性时更好。
useKernelEstimator - 使用内核估算器来表示数字属性 而不是正常的分布。
useSupervisedDiscretization - 使用有监督的离散化 将数字属性转换为名义属性。
和NaiveBayesSimple定义如下:
名称weka.classifiers.bayes.NaiveBayesSimple
SYNOPSIS用于构建和使用简单朴素贝叶斯的类 classifier.Numeric属性由正态分布建模。
有关详细信息,请参阅
Richard Duda,Peter Hart(1973)。模式分类和场景 分析。 Wiley,纽约。
OPTIONS debug - 如果设置为true,分类器可能会输出其他信息 到控制台。