[{"createTime":1735734952000,"id":1,"img":"hwy_ms_500_252.jpeg","link":"https://activity.huaweicloud.com/cps.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=V1g3MDY4NTY=&utm_medium=cps&utm_campaign=201905","name":"华为云秒杀","status":9,"txt":"华为云38元秒杀","type":1,"updateTime":1735747411000,"userId":3},{"createTime":1736173885000,"id":2,"img":"txy_480_300.png","link":"https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=edb15096bfff75effaaa8c8bb66138bd&from=console","name":"腾讯云秒杀","status":9,"txt":"腾讯云限量秒杀","type":1,"updateTime":1736173885000,"userId":3},{"createTime":1736177492000,"id":3,"img":"aly_251_140.png","link":"https://www.aliyun.com/minisite/goods?userCode=pwp8kmv3","memo":"","name":"阿里云","status":9,"txt":"阿里云2折起","type":1,"updateTime":1736177492000,"userId":3},{"createTime":1735660800000,"id":4,"img":"vultr_560_300.png","link":"https://www.vultr.com/?ref=9603742-8H","name":"Vultr","status":9,"txt":"Vultr送$100","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":5,"img":"jdy_663_320.jpg","link":"https://3.cn/2ay1-e5t","name":"京东云","status":9,"txt":"京东云特惠专区","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":6,"img":"new_ads.png","link":"https://www.iodraw.com/ads","name":"发布广告","status":9,"txt":"发布广告","type":1,"updateTime":1735660800000,"userId":3},{"createTime":1735660800000,"id":7,"img":"yun_910_50.png","link":"https://activity.huaweicloud.com/discount_area_v5/index.html?fromacct=261f35b6-af54-4511-a2ca-910fa15905d1&utm_source=aXhpYW95YW5nOA===&utm_medium=cps&utm_campaign=201905","name":"底部","status":9,"txt":"高性能云服务器2折起","type":2,"updateTime":1735660800000,"userId":3}]
<>查准率、查全率与 F1 值
混淆矩阵
⾸先定义混淆矩阵 (Confusion matrix):
其中:
• TP (True Positive):表⽰将正样本预测为正例的数⽬。即真实结果为 1,预测结果也为 1。
• TN (True Negative):表⽰将负样本预测为负例的数⽬。即真实结果为 0,预测结果也为 0。
• FP (False Positive):表⽰将负样本预测为正例的数⽬。即真实结果为 0,预测结果为 1。
• FN (False Negative):表⽰将正样本预测为负例的数⽬。即真实结果为 1,预测结果为 0
通过混淆矩阵,我们可以获得错误率和准确性的数学定义:
查准率和查全率的定义与关联
现在我们定义查准率和查全率:
• 查准率 (Precision):也叫精度,简记为 P 或 PPV,表⽰预测为正例的样本中 ( TP + FP ) 有多少是真正的正样本 ( TP )。
•查全率 (Recall):也叫召回率,简记为 R 或 TPR,表⽰在实际真正的正样本中 ( TP + FN ),预测为正例的样本数 ( TP )
所占的⽐例。
查准率表⽰宁愿漏掉,不可错杀。在识别垃圾邮件中偏向这种思路,因为我们不希望正常邮件 (对应为负样本,通常将占多数的类别视为负类)
被误杀,这样会造成严重的困扰。
查全率表⽰宁愿错杀,不可漏掉。在⾦融风控领域偏向这种思路,我们希望系统能够筛选出所有有风险的⾏为或⽤户
(对应为正样本),然后交给⼈⼯鉴别,漏掉⼀个可能造成灾难性后果。
F1 值
⽽很多时候,我们实际上只希望有⼀个单⼀的指标来判断,⽽不是在两个指标之间进⾏权衡。F1 值是 “查准率和查全率” 的调和平均值,它是⼀个⼴为接受的指标:
但是,F1 值会在查准率和查全率上给予同等的权重。在某些情况下,你可能想偏重⼀个,因此我们获得了更⼀般的 Fβ 值:
其中 β ⽤于调整权重,当 β = 1 时两者权重相同,即为 F1 值。如果认为查准率更重要,则减⼩ β;若认为查全率更重要,则增⼤ β。
PR 曲线
但如果你确实想讨论查准率/查全率的关系时,PR 曲线 (Precision-Recall Curve) 可以提供帮助。PR 曲线是针对不同阈值的查准率 P
( y 轴) 和查全率 R ( x 轴) 的图。算法对样本进⾏分类时都会有置信度,即表⽰该样本是正例的概率,⽐如 99% 的概率认为样本 A 是正例,或者
15% 的概率认为样本 B 是正例。通过选择合适的阈值 (⽐如 50%),就对样本进⾏划分,概率⼤于阈值 (50%) 的就认为是正例,⼩于阈值 (50%)
的就是负例。
因此,我们考虑选择不同的阈值,并计算不同阈值情况下的查准率和查全率又是如何。具体做法是通过置信度对所有样本进⾏排序,再逐个样本的
选择阈值
(以该样本的置信度作为阈值),在该样本之前的都视作正例,该样本之后的都视作负例。将每⼀个样本分别作为划分阈值,并计算对应的查准率和查全率,就可以绘制 PR
曲线。