【问题标题】:Difference between WEKA instance predictions and confusion matrix results?WEKA 实例预测和混淆矩阵结果之间的区别?
【发布时间】:2014-01-21 14:05:34
【问题描述】:

我对数据挖掘并不陌生,所以对 WEKA 的结果完全感到困惑。希望得到一些帮助。提前致谢!

我有一个具有二进制分类 (S,H) 的数字向量数据集。我训练了一个 NaiveBayes 模型(尽管该方法真的无关紧要)以进行交叉验证。结果如下:

    === Predictions on test data ===
 inst#     actual  predicted error distribution
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        2:S   +   0,*1
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *1,0
     1        1:H        1:H       *0.997,0.003
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1 
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1 
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        1:H   +   *1,0
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        2:S       0,*1
     1        2:S        1:H   +   *1,0

=== Stratified cross-validation ===
=== Summary ===

Total Number of Instances               66

=== Confusion Matrix ===

  a  b   <-- classified as
 14  1 |  a = H
  2 49 |  b = S

如您所见,输出和混淆矩阵都存在三个错误。 然后,我使用具有相同属性和相同两个类的独立数据集重新评估模型。结果如下:

=== Re-evaluation on test set ===

User supplied test set
Relation:     FCBC_New.TagProt
Instances:     unknown (yet). Reading incrementally
Attributes:   355

=== Predictions on user test set ===

 inst#     actual  predicted error distribution
     1        1:S        2:H   +   0,*1
     2        1:S        1:S       *1,0
     3        1:S        2:H   +   0,*1
     4        2:H        1:S   +   *1,0
     5        2:H        2:H       0,*1
     6        1:S        2:H   +   0,*1
     7        1:S        2:H   +   0,*1
     8        2:H        2:H       0,*1
     9        1:S        1:S       *1,0
    10        1:S        2:H   +   0,*1
    11        1:S        2:H   +   0,*1
    12        2:H        1:S   +   *1,0
    13        2:H        2:H       0,*1
    14        1:S        2:H   +   0,*1
    15        1:S        2:H   +   0,*1
    16        1:S        2:H   +   0,*1
    17        2:H        2:H       0,*1
    18        2:H        2:H       0,*1
    19        1:S        2:H   +   0,*1
    20        1:S        2:H   +   0,*1
    21        1:S        2:H   +   0,*1
    22        1:S        1:S       *1,0
    23        1:S        2:H   +   0,*1
    24        1:S        2:H   +   0,*1
    25        2:H        1:S   +   *1,0
    26        1:S        2:H   +   0,*1
    27        1:S        1:S       *1,0
    28        1:S        2:H   +   0,*1
    29        1:S        2:H   +   0,*1
    30        1:S        2:H   +   0,*1
    31        1:S        2:H   +   0,*1
    32        1:S        2:H   +   0,*1
    33        1:S        2:H   +   0,*1
    34        1:S        1:S       *1,0
    35        2:H        1:S   +   *1,0
    36        1:S        2:H   +   0,*1
    37        1:S        1:S       *1,0
    38        1:S        1:S       *1,0
    39        2:H        1:S   +   *1,0
    40        1:S        2:H   +   0,*1
    41        1:S        2:H   +   0,*1
    42        1:S        2:H   +   0,*1
    43        1:S        2:H   +   0,*1
    44        1:S        2:H   +   0,*1
    45        1:S        2:H   +   0,*1
    46        1:S        2:H   +   0,*1
    47        2:H        1:S   +   *1,0
    48        1:S        2:H   +   0,*1
    49        2:H        1:S   +   *1,0
    50        2:H        1:S   +   *1,0
    51        1:S        2:H   +   0,*1
    52        1:S        2:H   +   0,*1
    53        2:H        1:S   +   *1,0
    54        1:S        2:H   +   0,*1
    55        1:S        2:H   +   0,*1
    56        1:S        2:H   +   0,*1

=== Summary ===

Correctly Classified Instances          44               78.5714 %
Incorrectly Classified Instances        12               21.4286 %
Kappa statistic                          0.4545
Mean absolute error                      0.2143
Root mean squared error                  0.4629
Coverage of cases (0.95 level)          78.5714 %
Total Number of Instances               56

=== Detailed Accuracy By Class ===

                 TP Rate  FP Rate  Precision  Recall   F-Measure  MCC      ROC Area  PRC Area  Class
                 0.643    0.167    0.563      0.643    0.600      0.456    0.828     0.566     H
                 0.833    0.357    0.875      0.833    0.854      0.456    0.804     0.891     S
Weighted Avg.    0.786    0.310    0.797      0.786    0.790      0.456    0.810     0.810

=== Confusion Matrix ===

  a  b   <-- classified as
  9  5 |  a = H
  7 35 |  b = S

这就是我的问题所在。输出清楚地表明存在许多错误。事实上,有 44 个。另一方面,混淆矩阵和结果摘要表明有 12 个错误。现在,如果预测类被反转,混淆矩阵将是正确的。所以现在,我看一下分数的分布,我看到在交叉验证结果中,逗号前的值代表 H 类,第二个值是 S 类(所以值 1,0 表示 H 预测)。然而,在测试结果中,这些是相反的,值 1,0 表示 S 预测。因此,如果我采用分数分布,则混淆矩阵是正确的。如果我采用预测(H 或 S),则混淆矩阵是错误的。 我尝试将所有测试文件类更改为 H 或 S。这不会改变输出结果或混淆矩阵总数:在混淆矩阵中,16 个实例总是预测为 a(H),40 个实例总是 b(S),甚至尽管纯文本输出实际上是 16 b(S) 和 40 a(H)。任何想法出了什么问题?这一定是一件简单的事情,但我完全不知所措......

【问题讨论】:

  • 这真的很奇怪。我认为您应该尝试将其发布到 Weka 邮件列表,也许这是一个错误。您是否尝试过在 IDE 中调试它并查看内部数据结构?这就是我解决大部分 Weka 问题/误解的方法。
  • @Sentry,感谢您的想法。我已发布到 WEKA 列表。可能是他们提出了解决方案。我现在真的没有时间对此进行任何重大研究,但如果我没有得到答案,我会尽快跟进。会及时通知您!

标签: weka


【解决方案1】:

如果你能看看这个关于实例分类的weka教程会更好http://preciselyconcise.com/apis_and_installations/training_a_weka_classifier_in_java.php希望它有所帮助。本教程还处理二进制分类(正、负)。

【讨论】:

    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 2021-12-15
    • 2020-07-31
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-02
    相关资源
    最近更新 更多