AI摘桃记:精准率(P-Precision)、召回率(R-Recall)、F1-Score之争
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
手打不易,如果转摘,请注明出处!
本文链接:
https://zhangxiaofan.blog.csdn.net/article/details/151451237
文末有一张图,简洁明了,告诉我们应该怎么通俗易懂的理解:
精确率(P-Precision)、召回率(R-Recall)、F1-Score
目录
先放图
背景
任务
过程
计算
1. 精确率 (Precision) - “摘得准不准”
2. 召回率 (Recall) - “摘得全不全”
3. F1值 (F1-Score) - “综合表现好不好”
图解
总结
先放图
背景
你有一颗桃树,树上结了10个桃子。其中6个是又大又甜的好桃子(正样本),4个是烂掉的坏桃子(负样本)
任务
用一个智能体(AI机器人)去把好桃子都摘下来,自己吃。
过程
机器人扫描了一圈,认为有5个桃子是好的,并摘了下来(它预测的正样本)。但这5个里面:
-
4个确实是好桃子(预测正确,True Positive, TP)
-
1个其实是坏桃子(预测错了,False Positive, FP)
同时,桃树上还剩下2个好桃子没被摘(漏网之鱼,False Negative, FN),以及3个坏桃子没被摘(预测正确,True Negative, TN)。
实际是好桃子 (6个) | 实际是坏桃子 (4个) | |
---|---|---|
被摘(预测为好)(5个) | TP = 4 (摘对了) | FP =1 (错摘了) |
没摘(预测为坏)(5个) | FN = 2 (漏摘了) | TN = 3 (避开了) |
计算
计算三个指标:
1. 精确率 (Precision) - “摘得准不准”
定义: 在所有被摘下来的桃子中,有多少是真正的好桃子。
公式: Precision = TP / (TP + FP)
计算: P = 4 / (4 + 1) = 4 / 5 = 0.8
解读: 机器人摘回来的桃子里,80%都是好桃子。这说明它下手很精确。
2. 召回率 (Recall) - “摘得全不全”
定义: 在所有真正的好桃子中,有多少被成功摘了回来。
公式: Recall = TP / (TP + FN)
计算: R = 4 / (4 + 2) = 4 / 6 ≈ 0.67
解读: 桃树上总共6个好桃子,机器人只摘回了4个,召回率只有67%。这说明它的覆盖率很差,有几个好桃子都漏掉了。
3. F1值 (F1-Score) - “综合表现好不好”
定义: 精确率和召回率的调和平均数。它综合考量了“精准度”和“覆盖率”。
公式: F1 = 2 * (Precision * Recall) / (Precision + Recall)
计算: F1 = 2 * (0.8*0.67) / (0.8 + 0.67) ≈ 0.73
解读: 这个机器人的F1值不高,因为它虽然摘得很准(P=80%),但漏摘的好几个好的桃子(R=67%),综合表现并不理想。
图解
10个样本:第1个表格表示实际样本,第2个表格表示机器人预测结果
总结
- 精确率:选的样本中,真正正确的有多少?——精度
- 召回率:所有正确的样本中,我预测对/选对了多少?——召回
- F1:既要选对,又要选全——综合指标