朴素贝叶斯(Weka) - 属性总数x实例总数 - 为什么它不同?

时间:2013-10-27 22:52:19

标签: attributes classification weka instances

我一直在通过Weka运行数据集,应用NB。 我坚持以下问题:当我分析它时,我注意到属性部分中的总数与日志中出现的总实例之间存在差异。

如果你总结“a0”属性,你会注意到Weka指向1044个实例。 如果选中“实例”,则为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 个答案:

答案 0 :(得分: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周围找到真正的数字示例