当前位置: 首页 > 知识库问答 >
问题:

Weka中决策树和混淆矩阵中正确/错误分类实例的差异

丰佐
2023-03-14

我一直在使用Weka的J48决策树将RSS提要中的关键字频率分类为目标类别。我想我可能在协调生成的决策树与报告的正确分类的实例数以及混淆矩阵中的实例数方面存在问题。

例如,我的一个. arff文件包含以下数据摘录:

@attribute Keyword_1_nasa_Frequency numeric
@attribute Keyword_2_fish_Frequency numeric
@attribute Keyword_3_kill_Frequency numeric
@attribute Keyword_4_show_Frequency numeric
...
@attribute Keyword_64_fear_Frequency numeric
@attribute RSSFeedCategoryDescription {BFE,FCL,F,M, NCA, SNT,S}

@data
0,0,0,34,0,0,0,0,0,40,0,0,0,0,0,0,0,0,0,0,24,0,0,0,0,13,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,BFE
...
20,0,64,19,0,162,0,0,36,72,179,24,24,47,24,40,0,48,0,0,0,97,24,0,48,205,143,62,78,
0,0,216,0,36,24,24,0,0,24,0,0,0,0,140,24,0,0,0,0,72,176,0,0,144,48,0,38,0,284,
221,72,0,72,0,SNT
...
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,S

以此类推:总共有64个关键字(列)和570行,其中每一行都包含一天提要中关键字的频率。在这种情况下,10天内有57条feed,总共有570条记录需要分类。每个关键字都以代理项编号作为前缀,并以“频率”作为后缀。

我对决策树的使用是使用10倍验证的默认参数。

Weka报告如下:

Correctly Classified Instances         210               36.8421 %
Incorrectly Classified Instances       360               63.1579 %

使用以下混淆矩阵:

=== Confusion Matrix ===

   a   b   c   d   e   f   g   <-- classified as
  11   0   0   0  39   0   0 |   a = BFE
   0   0   0   0  60   0   0 |   b = FCL
   1   0   5   0  72   0   2 |   c = F
   0   0   1   0  69   0   0 |   d = M
   3   0   0   0 153   0   4 |   e = NCA
   0   0   0   0  90  10   0 |   f = SNT
   0   0   0   0  19   0  31 |   g = S

树如下:

Keyword_22_health_Frequency <= 0
|   Keyword_7_open_Frequency <= 0
|   |   Keyword_52_libya_Frequency <= 0
|   |   |   Keyword_21_job_Frequency <= 0
|   |   |   |   Keyword_48_pic_Frequency <= 0
|   |   |   |   |   Keyword_63_world_Frequency <= 0
|   |   |   |   |   |   Keyword_26_day_Frequency <= 0: NCA (461.0/343.0)
|   |   |   |   |   |   Keyword_26_day_Frequency > 0: BFE (8.0/3.0)
|   |   |   |   |   Keyword_63_world_Frequency > 0
|   |   |   |   |   |   Keyword_31_gaddafi_Frequency <= 0: S (4.0/1.0)
|   |   |   |   |   |   Keyword_31_gaddafi_Frequency > 0: NCA (3.0)
|   |   |   |   Keyword_48_pic_Frequency > 0: F (7.0)
|   |   |   Keyword_21_job_Frequency > 0: BFE (10.0/1.0)
|   |   Keyword_52_libya_Frequency > 0: NCA (31.0)
|   Keyword_7_open_Frequency > 0
|   |   Keyword_31_gaddafi_Frequency <= 0: S (32.0/1.0)
|   |   Keyword_31_gaddafi_Frequency > 0: NCA (4.0)
Keyword_22_health_Frequency > 0: SNT (10.0)

我的问题是关于协调矩阵和树,反之亦然。据我所知,像(461.0/343.0)这样的评级表明461个实例被归类为NCA。但是当矩阵只显示153个时,这怎么可能呢?我不知道如何解释这一点,所以欢迎任何帮助。

提前谢谢。

共有1个答案

殷永嘉
2023-03-14

每一页括号中的数字应读作(此页上此分类的总实例数/此页上不正确分类的数量)。

在您的第一个NCA叶的示例中,它说有461个测试实例被归类为NCA,在这461个实例中,有343个不正确的分类。因此,该叶461-343 = 118正确分类的实例。

查看决策树,请注意NCA也位于其他叶。我统计了461 3 31 4=499个NCA总分类中118 3 31 4=156个正确分类的实例。

您的混淆矩阵显示了NCA总分类中39 60 72 69 153 90 19 = 502153个正确的NCA分类。

因此,这棵树(156/499)和你的混淆矩阵(153/502)之间有一点不同。

请注意,如果您从命令行运行Weka,它会输出一个树和一个混淆矩阵,用于测试所有训练数据以及交叉验证测试。请注意,您正在为正确的树查看正确的矩阵。Weka输出训练和测试结果,从而产生两对矩阵和树。您可能混淆了它们。

 类似资料:
  • 所有规则中不正确分类(见树)的总和是2097(来自895 700 428 74)。但是混淆矩阵是2121(来自1999 122)。有人能解释一下差异吗?为什么数字不同?

  • 对不起,我是新来WEKA,刚刚学习。 在我的决策树(J48)分类器输出中,有一个混淆矩阵: 我如何读取这个矩阵?

  • 如何分析Weka中的混淆矩阵,以获得准确度?我们知道,由于数据集不平衡,精度不准确。混淆矩阵如何“确认”准确性? 示例:a)准确率96.1728% b) 准确率:96.8% 等...

  • 我想在weka中进行分类。我正在使用一些方法(随机树、随机森林、决策表、随机子空间...),但它们会给出如下结果。 然而,我希望结果作为准确度和混淆矩阵。我怎样才能得到这样的结果? 注意:当我使用小数据集时,它会以混淆矩阵的形式给出结果。它可以与数据集的大小相关吗?

  • 我对数据挖掘并不陌生,所以我完全被WEKA结果难倒了。希望得到一些帮助。提前谢谢! 我有一个具有二分类(S, H)的数值向量数据集。我在省略交叉验证中训练了一个朴素贝叶斯模型(尽管方法真的无关紧要)。结果如下: 如您所见,输出和混淆矩阵都有三个错误。然后,我使用具有相同属性和相同两个类的独立数据集重新评估模型。结果如下: 这就是我的问题所在。输出清楚地显示有很多错误。事实上,有44个。另一方面,混

  • 我今天开始使用Weka。我使用一个包含虚拟信息的. arff文件。然后,我使用weka来获取结果。但是,问题是我不确定weka正在做什么来获取结果。例如,使用Heoffding Tree,我在错误分类的结果上得到了75%和25%的正确分类实例结果;75%到底是什么?weka做了什么来获得75%的正确分类结果?谢谢!