简单英语的科恩卡帕

机器算法验证 分类 数据挖掘 科恩斯-卡帕
2022-01-19 12:16:22

我正在阅读一本数据挖掘书籍,其中提到了将 Kappa 统计量作为评估分类器预测性能的一种手段。但是,我就是无法理解这一点。我还检查了维基百科,但也没有用:https ://en.wikipedia.org/wiki/Cohen's_kappa 。

Cohen 的 kappa 如何帮助评估分类器的预测性能?它说明了什么?

我知道 100% kappa 意味着分类器与随机分类器完全一致,但我不明白这对评估分类器的性能有何帮助?

40% kappa 是什么意思?这是否意味着 40% 的时间,分类器与随机分类器一致?如果是这样,这告诉我或帮助我评估分类器是什么?

4个回答

介绍

Kappa 统计量(或值)是将观察到的准确度预期准确度(随机机会)进行比较的指标。kappa 统计量不仅用于评估单个分类器,还用于评估分类器之间。此外,它还考虑了随机机会(与随机分类器一致),这通常意味着它比简单地使用准确度作为衡量标准更容易产生误导(80%的观察准确度与 75%的预期准确度相比要少得多)与50%的预期准确度相比)。观测精度预期精度的计算是理解 kappa 统计量不可或缺的一部分,并且最容易通过使用混淆矩阵来说明。让我们从CatsDogs的简单二元分类中的简单混淆矩阵开始

计算

     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被标记为Dogs13 个(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

rbx 有一个很好的答案。但是,它有点冗长。这是我对 Kappa 指标的总结和直觉。


Kappa 是衡量分类器性能的重要指标,尤其是在不平衡数据集上

例如,在信用卡欺诈检测中,响应变量的边际分布是高度偏态的,使用准确性作为衡量标准将没有用处。换句话说,对于给定的欺诈检测示例,99.9% 的交易将是非欺诈交易。我们可以有一个简单的分类器,它总是对每笔交易说非欺诈,我们仍然会有 99.9% 的准确率。

另一方面,Kappa 将通过考虑响应变量的边际分布来“解决”这个问题。使用 Kappa,上述平凡分类器将具有非常小的 Kappa。

用简单的英语来说,它衡量的是分类器比用目标分布猜测好多少。

Cohen 的 kappa 值强取决于几​​个因素,例如,使用的类别或代码的数量会影响 kappa1以及每个代码将被填充的概率。

“例如,给定 85% 准确率的等概率代码和观察者:

value of kappa   number of codes
0.49             2
0.60             3 
0.66             5 
0.69             10"

现在,如果我们没有等概率代码但有不同的“基本费率”怎么办?

对于两个代码,来自Bruckner 等人的 kappa 图。看起来像在此处输入图像描述

...尽管如此(...继续维基百科引用),文献中出现了幅度指南。也许第一个是兰迪斯和科赫,他们描述了价值观

 <0 as indicating no agreement
 0.00–0.20 as slight, 
 0.21–0.40 as fair, 
 0.41–0.60 as moderate, 
 0.61–0.80 as substantial, and 
 0.81–1 as almost perfect agreement. 

然而,这套准则绝不是普遍接受的;兰迪斯和科赫没有提供任何证据来支持它,而是基于个人观点。已经注意到,这些指南可能弊大于利。Fleiss 的同样武断的指导方针将 kappas 描述为

>0.75 as excellent, 
 0.40 to 0.75 as fair to good, and 
<0.40 as poor."

(结束维基百科引用)

对于 FalliObs Windows 程序的(很难找到)升级,以说明 Bakeman 等人最初提供的代码数量。跟随ComKappa3 的链接程序描述涉及可以估计 kappa 的标准误差,允许针对零分布测试获得的 kappa 的显着性(Bakeman & Gottman, 1997; Fleiss, Cohen, & Everitt, 1969)。有关其他 kappa 度量的进一步阅读,请参阅行为流分析12

另请参阅使用 Cohen 的 kappa 统计量来评估类似问题的二元分类器。

1 贝克曼,R.;;克拉,五。麦克阿瑟,D。BF 罗宾逊 (1997)。“用易犯错误的观察者检测顺序模式并确定它们的可靠性”。心理学方法。2:357–370。doi:10.1037/1082-989X.2.4.357

2 Robinson BF, Bakeman R. ComKappa:用于计算 kappa 和相关统计数据的 Windows 95 程序。行为研究方法。1998;30:731-2。

回答你的问题(用简单的英语:-)):

Kappa 如何帮助评估分类器的预测性能?它说明了什么?!!

您应该将 kappa 视为 2 个人之间一致性的衡量标准,以便结果可以解释为:

Poor agreement = 0.20 or less
Fair agreement = 0.20 to 0.40
Moderate agreement = 0.40 to 0.60
Good agreement = 0.60 to 0.80
Very good agreement = 0.80 to 1.00