此系列文章为笔者学习工作中的阶段性总结,难免有纰漏,如有不正之处,欢迎指正,大家共同成长。
分类(Classification)是机器学习中需要解决的主要问题之一,分类任务有诸多评价指标,在诸多的评估指标中, 大部分指标只能片面地反映模型的一部分性能。 如果不能合理地运用评估指标, 不仅不能发现模型本身的问题, 而且会得出错误的结论。
下面我们从基本概念入手,探讨如何根据实际场景选择合适的评价指标。便于理解,以下讨论主要基于二分类任务,多分类同样适用。
基本概念
混淆矩阵
首先了解下混淆矩阵。我们做二分类算法会输出预测值,当然预测值有对有错,对应着真实值。那么基于预测值和真实值两个属性我们可以组合四种状态,如下图所示。
其中:
预测值为正(Positive),并且真实值也为正(Positive),预测为真(True),True Positive (TP)。
预测值为负(Negative),但是真实值为正(Positive),预测失败(False),False Negative (FN)。
预测值为正(Positive),但是真实值为负(Negative),预测失败(False),False Positive (FP)。
预测值为负(Negative),并且真实值也为负(Negative),预测为真(True),True Negative (TN)。
在具体分类任务中,模型会对一批数据(测试或验证集数据)进行推理,并统计推理结果的TP、FN、FP、TN的数量。
准确率(Accuracy)
准确率是指分类正确的样本占总样本个数的比例。准确率是针对所有样本的统计量。
准确率是分类问题中最简单也是最直观的评价指标, 但存在明显的缺陷。 比如, 当负样本占99%时, 分类器把所有样本都预测为负样本也可以获得99%的准确率。 所以, 当不同类别的样本比例非常不均衡时, 占比大的类别往往成为影响准确率的最主要因素。
精确率(Precision)
精确率是指分类正确的正样本个数占分类器判定为正样本的样本个数的比例。精确率是对部分样本的统计量,侧重对分类器判定为正类的数据的统计。
召回率(Recall)
召回率是指分类正确的正样本个数占真正的正样本个数的比例。召回率也是对部分样本的统计量,侧重对真实的正类样本的统计。