如何分析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等等。
发布于 2013-11-19 20:02:49
计算精度的方法是将主对角线上的所有实例相加,再除以实例总数(所有混淆矩阵的内容)。例如,在a中,您得到了124 + 110 + ... + 120 = 779,而实例的总数(所有内容之和)都是810,所以准确性是0,9617 => 96,17%。
您的数据集是相当平衡的(所有类都有大约相同数量的实例)。您可以看到,当一行的和比其他行的假设大得多时,数据集是不平衡的,因为行代表实际的类。例如:
a b <-- classified as
1000 20 | a = class1
10 10 | b = class2在这种情况下,class1有1020个实例,而class2只有20个,因此问题非常不平衡。这将影响分类器的性能,因为学习算法通常试图最大限度地提高分类器的精度(或最小化误差),因此像规则for any X, set class = class1这样的普通分类器将具有1020/1040 = 0,9807的精度。
发布于 2013-11-20 02:14:50
a b c d e f g <-- classified as
124 0 0 0 1 0 0 | a = brickface
...这意味着有125个例子a(砖头)。其中a (正确)12 4例,e(不正确)1例。
如果您认为您的数据不平衡,请使用AUC评分。它是不平衡数据集的存根。
https://stackoverflow.com/questions/20061400
复制相似问题