白话理解: 准确率(Accuracy), 精确率(Precision), 召回率(Recall)
- - 数据库 - ITeye博客本文重点是在白话,不是数学上面的严格定义. 那首先要有一个业务场景,就好比上学,学习数据库,就要用到学生成绩. 在这,我们的业务场景就是对100个西瓜进行分类(已知生熟各半). 下面是针对上面场景,对各个术语的解释. 准确率(Accuracy): 对所有西瓜分类正确的比率.. 精确率(Precision): 挑出来的熟西瓜,有多少是正确的..
本文重点是在白话,不是数学上面的严格定义. 那首先要有一个业务场景,就好比上学,学习数据库,就要用到学生成绩. 在这,我们的业务场景就是对100个西瓜进行分类(已知生熟各半)
下面是针对上面场景,对各个术语的解释
准确率(Accuracy): 对所有西瓜分类正确的比率.
精确率(Precision): 挑出来的熟西瓜,有多少是正确的.
召回率(Recall) : 50个熟西瓜,有多少被分来到熟西瓜这个类别.
下面我们来分析各个术语有什么应用场景:
Accuracy: 这个是我们最常用的,但是这个指标有一个缺点,就是当数据分来不均匀的时候,就没办法用于业务了. 比如, 当生西瓜只有2个,熟西瓜有98个的时候. 只要判断所有的都是熟西瓜,准确率就是98%.但是这个模型其实是不合理的.
Precision: 这个指标就是为吃瓜群众准备的了, 比如100个西瓜里面,我只需要挑选出2个西瓜,并且都是熟西瓜,那么这个Precision就是100%. 其他的西瓜,就可以都判断为生西瓜.
Recall: 这个指标就是为瓜农准备的了, 瓜农肯定是想100%把所有的熟西瓜挑出来,送到市场上卖, 有多少熟西瓜被挑选出来了,就是用Recall这个指标来衡量了.
如果是黑心瓜农,直接把所有的西瓜,都当成熟西瓜,那么Recall就是100%了. 想想宁可错杀一千,不能错过一个.就是只注意了Recall.
如果是良心瓜农的话,会兼顾Precision. 也就是尽可能的排除生西瓜.
下面是三个不同角色对应的场景举例:
Precision | =2/(2+0) | 100.00% |
Recall | =2/(2+48) | 4.00% |
F1 | =2*1*0.04/(1+0.04) | 7.69% |
Precision | =50/(50+50) | 50.00% |
Recall | =50/(50+0) | 100.00% |
F1 | =2*0.5*1/(0.5+1) | 66.67% |
Precision | =48/(48+2) | 96.00% |
Recall | =48/(48+2) | 96.00% |
F1 | =2*0.96*0.96/(0.96+0.96) | 96.00% |
各种指标的数学定义公式: