分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)

时间:2024-04-13 12:09:58

在运用机器学习或深度学习进行数据分类时,通常会用一些性能的指标来度量分类的效果。在这里我们介绍最常用的几种分类的性能度量指标(准确率、精确度、召回率、F1值、Kappa系数)。

对于二分类问题,我们的原始数据是被分为两类的(设他们分别是正、反类或0、1类),而在经过分类器分类之后,每一个数据样本都会被分类器认定为某一类(正(positive)或反(negative)),这也就是分类结果,最终判断其分类结果正确与否(true和false)。所以我们有一些符号设定:

把原数据集中为正类,分类后仍为正类的样本集合记为TP(true positive);
把原数据集中为正类,但分类后为反类的样本集合记为FN(false negative);
把原数据集中为反类,但分类后为正类的样本集合记为FP(false positive);
把原数据集中为反类,分类后仍为反类的样本集合记为TN(true negative);

如下表可以发现:T和F代表最终的分类结果是否正确;P和N代表分类的结果是正类或反类。
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)

接下来,我们根据上面的基础总结几个分类性能评估指标:

准确率(accuracy)

准确即正确的,所以公式是所有的分类正确的样本数(正类预测为正类、反类预测为反类)除以总得样本数。
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)

精确度(precision)

精确度也叫查准率,即研究区域为预测为正类的样本,表示的是在研究区域内,预测正确的样本所占比例。
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)

召回率(recall)

召回率也叫查全率。其研究区域为原始类别为正类的所有样本。表示的是在该研究区域内,预测正确的样本所占的比例。
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)
这这里,可以将精确度和召回率对比记忆。查准率,“准”是指预测的准确性,所以研究区域为预测为正类的样本。而查全率,“全”是指原始样本的完整性,所以研究区域为原始类别为正类的样本。

查准率和查全率是一对矛盾的度量。一般情况下,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。

F1值

F1值为算数平均数除以几何平均数,且越大越好,将Precision和Recall的上述公式带入会发现,当F1值小时,True Positive相对增加,而false相对减少,即Precision和Recall都相对增加,即F1对Precision和Recall都进行了加权。
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)

整理化简得:

分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)

Kappa系数

许多人会将Kappa系数和上述的度量指标搞混淆。Kappa系数用于一致性检验,也可以用于衡量分类精度,kappa系数的计算是基于混淆矩阵的。Kappa系数是一种比例,代表着分类与完全随机的分类产生错误减少的比例。

kappa系数是一种衡量分类精度的指标。它是通过把所有地表真实分类中的像元总数(N)乘以混淆矩阵对角线(Xkk)的和,再减去某一类地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果,再除以总像元数的平方减去某一类地表真实像元总数与该类中被分类像元总数之积对所有类别求和的结果所得到的 。——引自百度百科
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)
Po是每一类正确分类的样本数量之和除以总样本数。也就是上述的准确率(accuracy)。
假设每一类的真实样本个数分别为a1,a2,……,ac;
而预测出来的每一类的样本个数分别为b1,b2,……,bc
总样本数为n,
则有:
分类的性能度量(准确率、精确度、召回率、F1值、Kappa系数)
kappa计算结果为-1~ 1,但通常kappa是落在 0~ 1 间,可分为五组来表示不同级别的一致性:

0.0~ 0.20极低的一致性(slight);
0.21~ 0.40一般的一致性(fair);
0.41~ 0.60 中等的一致性(moderate);
0.61~ 0.80 高度的一致性(substantial);
0.81~1几乎完全一致(almost perfect)。