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

weka混淆矩阵与精度分析

戚研
2023-03-14

如何分析Weka中的混淆矩阵,以获得准确度?我们知道,由于数据集不平衡,精度不准确。混淆矩阵如何“确认”准确性?

示例:a)准确率96.1728%

   a   b   c   d   e   f   g   <-- classified as
 124   0   0   0   1   0   0 |   a = brickface
   0 110   0   0   0   0   0 |   b = sky
   1   0 119   0   2   0   0 |   c = foliage
   1   0   0 107   2   0   0 |   d = cement
   1   0  12   7 105   0   1 |   e = window
   0   0   0   0   0  94   0 |   f = path
   0   0   1   0   0   2 120 |   g = grass

b) 准确率:96.8%

a   b   c   d   e   f   g   <-- classified as
 202   0   0   0   3   0   0 |   a = brickface
   0 220   0   0   0   0   0 |   b = sky
   0   0 198   0  10   0   0 |   c = foliage
   0   0   1 202  16   1   0 |   d = cement
   2   0  11   2 189   0   0 |   e = window
   0   0   0   2   0 234   0 |   f = path
   0   0   0   0   0   0 207 |   g = grass

等...

共有3个答案

芮化
2023-03-14

准确度是正确预测总数的比例。计算如下:

Accuracy = (124+110+119+107+105+94+120)/(124+0+0+0+1+0+0+0+110+0+0+0+0+0+1+0+119+0+2+0+0+1+0+0+107+2+0+0+1+0+12+7+105+0+1+0+0+0+0+0+94+0+0+0+1+0+0+2+120)
Accuracy = 779/810 = 0.961728

同样地,

Accuracy = (202+220+198+202+189+234+207)/(202+0+0+0+3+0+0+0+220+0+0+0+0+0+0+0+198+0+10+0+0+0+0+1+202+16+1+0+2+0+11+2+189+0+0+0+0+0+2+0+234+0+0+0+0+0+0+0+207)
Accuracy = 1452/1500 = 0.968
曹光霁
2023-03-14
   a   b   c   d   e   f   g   <-- classified as
 124   0   0   0   1   0   0 |   a = brickface
...

这意味着有125个例子a(砖面)。124个例子被归类为a(正确),1个例子被归类为e(不正确)。

如果您认为您的数据不平衡,请使用AUC分数。它是不平衡数据集的存根。

吴腾
2023-03-14

通过将主对角线中的所有实例相加并除以实例总数(所有混淆矩阵的内容)来计算精度。例如,在a)中,您会得到124 110。。。120=779,实例总数(所有内容求和)为810,因此精度为09617=

您的数据集相当平衡(所有类的实例数大致相同)。您可以看到,当一行的总和远远大于其他行的总和时,数据集是不平衡的,因为行表示实际的类。例如:

a   b  <-- classified as
1000 20 | a = class1
10 10   | b = class2

在这种情况下,class1有1020个实例,而class2只有20个实例,因此问题是高度不平衡的。这将影响分类器的性能,因为学习算法通常试图最大化精度(或最小化错误),因此像规则之类的普通分类器,如任意X的规则,设置class=class1,将具有1020/1040=09807的精度。

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

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

  • 我正在对实际数据和来自分类器的预测数据进行多标签分类。实际数据包括三类(c1、c2和c3),同样,预测数据也包括三类(c1、c2和c3)。数据如下 在多标签分类中,文档可能属于多个类别。在上述数据中,1表示文档属于特定类,0表示文档不属于特定类。 第一行Actual\u数据表示文档属于c1类和c2类,不属于c3类。类似地,第一行predicted\u数据表示文档属于类别c1、c2和c3。 最初我使

  • 目前我们衡量分类器准确率的方式是使用以下公式:正确分类的记录数÷记录总数。 有时我们会需要一个更为详细的评价结果,这时就会用到一个称为混淆矩阵的可视化表格。 表格的行表示测试用例实际所属的类别,列则表示分类器的判断结果。 混淆矩阵可以帮助我们快速识别出分类器到底在哪些类别上发生了混淆,因此得名。 让我们看看运动员的示例,这个数据集中有300人,使用十折交叉验证,其混淆矩阵如下: 可以看到,100个

  • 我试图弄清楚如何使用神经网络为多标签分类任务生成混淆矩阵。我之前设法使用函数“交集”计算准确性,因为对此我不关心任何排序。 然而,为了计算混淆矩阵,我确实关心预测/标签的索引顺序。由于标签的值始终相同(