朴素贝叶斯 (Weka) - 属性总数 x 实例总数 - 为啥不同?
Posted
技术标签:
【中文标题】朴素贝叶斯 (Weka) - 属性总数 x 实例总数 - 为啥不同?【英文标题】:Naive Bayes (Weka) - Attributes total x Instances total - Why is it different?朴素贝叶斯 (Weka) - 属性总数 x 实例总数 - 为什么不同? 【发布时间】:2013-11-06 14:59:09 【问题描述】:我一直在通过 Weka 运行数据集,应用 NB。 我坚持以下问题:在分析它时,我注意到属性部分中的总数与日志中出现的实例总数之间的差异。
如果对“a0”属性求和,您会注意到 Weka 点 1044 个实例。 如果勾选“Instances”,则为 1036。
数据集实际上包含 1036 个实例。
有人对此有解释吗?谢谢。
这是一个日志粘贴:
=== Run information ===
Scheme: weka.classifiers.bayes.NaiveBayes
Relation: teste.carro
Instances: 1036
Attributes: 7
a0
a1
a2
a3
a4
a5
class
Test mode: evaluate on training data
=== Classifier model (full training set) ===
Naive Bayes Classifier
Class
Attribute 0 1
(0.5) (0.5)
===========================
a0
1 105.0 175.0
2 112.0 165.0
3 153.0 109.0
4 152.0 73.0
[total] 522.0 522.0
a1
1 101.0 165.0
2 123.0 165.0
3 136.0 119.0
4 162.0 73.0
[total] 522.0 522.0
a2
1 150.0 107.0
2 122.0 133.0
3 121.0 141.0
4 129.0 141.0
[total] 522.0 522.0
a3
1 247.0 1.0
2 134.0 265.0
3 140.0 255.0
[total] 521.0 521.0
a4
1 189.0 127.0
2 177.0 185.0
3 155.0 209.0
[total] 521.0 521.0
a5
1 244.0 1.0
2 160.0 220.0
3 117.0 300.0
[total] 521.0 521.0
Time taken to build model: 0 seconds
=== Evaluation on training set ===
Time taken to test model on training data: 0.01 seconds
=== Summary ===
Correctly Classified Instances 957 92.3745 %
Incorrectly Classified Instances 79 7.6255 %
Kappa statistic 0.8475
Mean absolute error 0.1564
Root mean squared error 0.2398
Relative absolute error 31.2731 %
Root relative squared error 47.9651 %
Coverage of cases (0.95 level) 100 %
Mean rel. region size (0.95 level) 80.2124 %
Total Number of Instances 1036
=== Detailed Accuracy By Class ===
TP Rate FP Rate Precision Recall F-Measure MCC ROC Area PRC Area Class
0,847 0,000 1,000 0,847 0,917 0,858 0,989 0,991 0
1,000 0,153 0,868 1,000 0,929 0,858 0,989 0,988 1
Weighted Avg. 0,924 0,076 0,934 0,924 0,923 0,858 0,989 0,989
=== Confusion Matrix ===
a b <-- classified as
439 79 | a = 0
0 518 | b = 1
【问题讨论】:
【参考方案1】:阅读 Witten 和 Frank 的“数据挖掘:实用机器学习工具和技术”(Weka 的配套书籍)中指出了朴素贝叶斯中的一个问题。
如果一个特定的属性值没有出现在每个可能的类值中,那么零属性对类预测有不当的影响。 在 Weka 中,通过在计算条件概率时将每个分类属性的分子加一(分母相应调整)来避免这种可能性。如果您查看您的示例,您可以验证这是什么完成。
下面我试图解释缺少属性值所表现出的不当影响。
朴素贝叶斯公式:
P(y|x)= ( P(x1|y) * P(x2|y) * ... * P(xn|y) * P(Y) ) / P(x)
从朴素贝叶斯公式我们可以看出它们的含义:
说:
P(x1|y1) = 0 P(x2|y1) ... P(xn|y1) 都等于 1由上式:
P(y1|x) = 0
即使所有其他属性都强烈表明该实例属于类 y1,但结果概率为零。 Weka 所做的调整允许实例仍然来自类 y1。
可以在webpage 的幻灯片 12 左右找到一个真实的数字示例
【讨论】:
非常感谢!这很有帮助。以上是关于朴素贝叶斯 (Weka) - 属性总数 x 实例总数 - 为啥不同?的主要内容,如果未能解决你的问题,请参考以下文章