1. 前言
温故而知新,在这开一篇基础的模型评价指标,前面会讲述基本概念和计算,后面讲一下除了二分类外,如何应用到多分类
2. 精确率-Precision、召回率Recall
先来讲一下精确率(Precision)和准确率(Recall),首先要明确一点,精确率不等于准确率(Accuracy),两者是不同的,后面也会讲到准确率。在信息检索里,精确率和召回率也被称为查准率、查全率
首先熟悉4个定义:
TP (True Positive): 正确被预测为正样本--即原来是正样本
FN (False Negative): 错误预测为负样本--即原来是正样本
TN (True Negative): 正确识别为负样本 --即原来是负样本
FP (False Postive): 错误识别为正样本--即原来是负样本
刚接触我很容易混淆,英文和其字面意思都好理解,但有时候就是分不清或者得脑子没反应的那么快。。
下面以个简单的例子实践一下:
假如我们正在做猫狗的二分类识别任务,假设狗是正样本,猫是负样本,
数据里共有100张图片,狗为65张,猫为35张,而我们的预测结果:
识别成狗的有75张,正确识别的55张,识别成猫的25张,正确的15张,那么关系表就如下
精确率,是针对我们预测结果而言的,它表示的是预测为正的样本中有多少是真正的正样本:
也就是说识别成狗的样本里,正确的比例,例子里就等于55/(55+20) 73%
召回率,是针对我们原来的样本而言的,它表示的是原来样本中的正例有多少被预测正确了,也即 真实准确的正预测在原来样本的正例中所占的百分比:
也就是说,狗的召回率等于55/(55+10) 85%
准确率,对于给定的数据,分类正确的样本数占总样本数的比例,可用于多分类,这个也是最好理解的
整个二分类的准确率=(55+15)/100 = 70%
值得注意的一点是,我们一般不会只衡量其中一个值,因为这样对于很多情况是不太合理的,下面以个极端的例子说明一下,假设:
Precision = 45/(45+0) = 100%,Recall = 45/(45+20) = 69%
显然,虽然精确率达到了100%,但召回率降低了很多
基于不同的场景,我们要根据情况选择合适的指标,例如灾难现象的监测,地震、海啸等,有时候1000次监测,能成功正确检测到一次已经算达到目的了。
- F1-score
很多时候,模型不只关心其中某个指标,因此需要平衡精确率和召回率,因此就有了F1-score,F1值是精确率和召回率的调和均值
那么,对于例子1,F1值= 0.78
例子2,F1值=0.82
下面这张曲面图可以清晰看到,精确率、召回率和F1的数值关系
下一篇会简单介绍ROC和AUC,更后面会阐述对于多分类的评价指标