介绍
Kappa 统计量(或值)是将观察到的准确度与预期准确度(随机机会)进行比较的指标。kappa 统计量不仅用于评估单个分类器,还用于评估分类器之间。此外,它还考虑了随机机会(与随机分类器一致),这通常意味着它比简单地使用准确度作为衡量标准更容易产生误导(80%的观察准确度与 75%的预期准确度相比要少得多)与50%的预期准确度相比)。观测精度和预期精度的计算是理解 kappa 统计量不可或缺的一部分,并且最容易通过使用混淆矩阵来说明。让我们从Cats和Dogs的简单二元分类中的简单混淆矩阵开始:
计算
Cats Dogs
Cats| 10 | 7 |
Dogs| 5 | 8 |
假设模型是使用有监督机器学习对标记数据构建的。并非总是如此。kappa 统计量通常用作衡量两个人类评估者之间的可靠性。无论如何,列对应于一个“评估者”,而行对应于另一个“评估者”。在有监督的机器学习中,一个“评估者”反映了从标记数据中获得的ground truth(每个待分类实例的实际值),另一个“评估者”是用于执行分类的机器学习分类器。最终,计算 kappa 统计量的哪个并不重要,但为了清楚起见'分类。
从混淆矩阵中我们可以看到总共有30 个实例(10 + 7 + 5 + 8 = 30)。根据第一列,15被标记为猫(10 + 5 = 15),根据第二列,15被标记为狗(7 + 8 = 15)。我们还可以看到,该模型将17 个实例分类为Cats (10 + 7 = 17),将13 个实例分类为Dogs (5 + 8 = 13)。
Observed Accuracy只是在整个混淆矩阵中被正确分类的实例数,即通过ground truth标记为Cats然后被机器学习分类器分类为Cats或通过ground truth标记为Dogs的实例数和然后被机器学习分类器分类为Dogs。为了计算Observed Accuracy,我们只需添加机器学习分类器与基本事实一致的实例数标签,然后除以实例总数。对于这个混淆矩阵,这将是0.6 ((10 + 8) / 30 = 0.6)。
在我们得到 kappa 统计量的方程之前,还需要一个值:Expected Accuracy。该值被定义为任何随机分类器基于混淆矩阵预期达到的准确度。预期准确度与每个类别(猫和狗)的实例数量以及机器学习分类器与基本事实标签一致的实例数量直接相关。要计算我们的混淆矩阵的预期准确度,首先将Cats的边际频率乘以一个“评分者”的边际频率猫为第二个“评估者”,除以实例总数。某个“评分者”对某个类别的边际频率只是“评分者”表示的所有实例的总和。在我们的例子中,15 (10 + 5 = 15) 个实例根据ground truth被标记为猫,17 (10 + 7 = 17) 个实例被机器学习分类器分类为猫。这导致值为8.5 (15 * 17 / 30 = 8.5)。然后对第二个班级也这样做(如果有超过 2 个班级,可以为每个附加班级重复)。15(7 + 8 = 15) 个实例根据ground truth被标记为Dogs,13 个(8 + 5 = 13) 个实例被机器学习分类器分类为Dogs。这导致值为6.5 (15 * 13 / 30 = 6.5)。最后一步是将所有这些值相加,最后再次除以实例总数,得到0.5 ((8.5 + 6.5) / 30 = 0.5)的预期准确度。在我们的示例中,预期准确度结果为 50%,当任一“评估者”在二元分类中以相同频率对每个类别进行分类时(两只猫根据我们的混淆矩阵中的真实标签,Dogs包含15 个实例)。
然后可以使用观察到的准确度( 0.60 ) 和预期准确度( 0.50 ) 以及以下公式计算 kappa 统计量:
Kappa = (observed accuracy - expected accuracy)/(1 - expected accuracy)
因此,在我们的例子中,kappa 统计量等于:(0.60 - 0.50)/(1 - 0.50) = 0.20。
作为另一个例子,这里是一个不太平衡的混淆矩阵和相应的计算:
Cats Dogs
Cats| 22 | 9 |
Dogs| 7 | 13 |
基本事实:猫 (29)、狗 (22)
机器学习分类器:猫 (31)、狗 (20)
总计:(51)
观察到的准确度:((22 + 13) / 51) = 0.69
预期准确度:((29 * 31 / 51) + (22 * 20 / 51)) / 51 = 0.51
卡帕:(0.69 - 0.51) / (1 - 0.51) = 0.37
本质上,kappa 统计量是机器学习分类器分类的实例与标记为ground truth的数据的匹配程度的度量,控制随机分类器的准确度,如预期准确度所测量的那样。这个 kappa 统计量不仅可以揭示分类器本身的执行方式,而且一个模型的 kappa 统计量可以直接与用于同一分类任务的任何其他模型的 kappa 统计量相比较。
解释
kappa 统计量没有标准化的解释。根据维基百科(引用他们的论文),Landis 和 Koch 认为 0-0.20 是轻微的,0.21-0.40 是公平的,0.41-0.60 是中等的,0.61-0.80 是实质性的,0.81-1 几乎是完美的。Fleiss 认为 kappas > 0.75 为优秀,0.40-0.75 为一般至好,<0.40 为差。需要注意的是,这两种尺度都有些随意。在解释 kappa 统计量时,至少应考虑两个进一步的考虑因素。首先,如果可能,应始终将 kappa 统计量与伴随的混淆矩阵进行比较,以获得最准确的解释。考虑以下混淆矩阵:
Cats Dogs
Cats| 60 | 125 |
Dogs| 5 | 5000|
kappa 统计量为 0.47,远高于 Landis 和 Koch 的中度阈值和 Fleiss 的一般阈值。但是,请注意分类Cats的命中率。不到三分之一的猫实际上被归类为猫;其余的都归类为Dogs。如果我们更关心对Cats进行正确分类(例如,我们对Cats过敏但对Dogs不过敏,并且我们关心的只是不屈服于过敏,而不是最大限度地增加我们接纳的动物数量),那么分类器的分类kappa 但更好的分类Cats可能更理想。
其次,可接受的 kappa 统计值因上下文而异。例如,在许多行为容易观察到的评分者间可靠性研究中,kappa 统计值低于 0.70 可能被认为是低的。然而,在使用机器学习探索诸如白日梦等认知状态等不可观察现象的研究中,kappa 统计值高于 0.40 可能被认为是例外。
所以,在回答你关于 0.40 kappa 的问题时,这取决于。如果不出意外,这意味着分类器的分类率是预期准确率和 100% 准确率之间的 2/5。如果预期准确率为 80%,这意味着分类器执行 40%(因为 kappa 为 0.4)到 20%(因为这是 80% 和 100% 之间的距离)高于 80%(因为这是 kappa 为 0,或者随机机会),或 88%。因此,在这种情况下,kappa 每增加 0.10 表示分类准确度增加 2%。如果准确度改为 50%,则 kappa 为 0.4 意味着分类器执行的准确度为 50%(50% 和 100% 之间的距离)的 40%(kappa 为 0.4)大于 50%(因为这是kappa 为 0,或随机机会),或 70%。同样,在这种情况下,这意味着 kappa 增加 0。
在不同类别分布的数据集上构建和评估的分类器可以通过 kappa 统计量(而不是仅使用准确度)更可靠地进行比较,因为这种缩放与预期准确度相关。它可以更好地指示分类器如何在所有实例中执行,因为如果类分布同样偏斜,则简单的准确性可能会偏斜。如前所述,80% 的准确度比 75% 的预期准确度更令人印象深刻,预期准确度为 50%。上面详述的预期精度容易受到倾斜类分布的影响,因此通过通过 kappa 统计量控制预期精度,我们可以更轻松地比较不同类别分布的模型。
这就是我所拥有的一切。如果有人注意到任何遗漏、不正确或仍有任何不清楚的地方,请告诉我,以便我改进答案。
我发现有帮助的参考资料:
包括对 kappa 的简洁描述:http:
//standardwisdom.com/softwarejournal/2011/12/confusion-matrix-another-single-value-metric-kappa-statistic/
包括计算预期精度的描述:
http: //epiville.ccnmtl.columbia.edu/popup/how_to_calculate_kappa.html