对精确率(P)、召回率(R)、F1值的理解以及对应的实现

对精确率、召回率、F1值的理解

算法理解

在机器学习中,P、R和F1值在各种评测中很常见,那么到底什么是P、R、F1值呢,怎么理解呢,困扰了很多人,下面给我对P、R、F1值的理解,

 

首先,我们先看一个表:

  模型预测为正例 模型预测为负例
真的正例 TP FN
真的负例 FP TN

然后根据上面的表,再看一下下面的公式,后面会给出详细的例子,供大家理解:

 

 $$P=\frac{TP}{TP+FP}  $$

精确率P的理解是:所有预测出来的正例中有多少是真的正例。

 

 $$R=\frac{TP}{TP+FN}  $$

 召回率R的理解是:所有正例模型能发现多少个。

 

 $$F1=\frac{2*P*R}{P+R}  $$

F1值是权衡P与R之后的结果,综合评判的指标。

 

好,为了方便大家理解,咱们举个例子,来说明每个指标的含义。

假如我们有10个西瓜,其中9个是好的,一个是坏的,目标是找到好的西瓜,我们的模型预测结果是5个是好的,5个是坏的,

真实样本对应的标签为:[1,1,1,1,1,1,1,1,1,0]

预测的样本对应的标签为:[1,1,1,1,1,0,0,0,0,0]

那么将对应的P、R、F1值应该怎么计算,代入公式中进行计算,结果为:

  模型预测为正例 模型预测为负例
真的正例 5 4
真的负例 0 1

 

$$P=\frac{5}{5+0} =1.0 $$

$$R=\frac{5}{5+4} =0.55 $$

$$F1=\frac{2*P*R}{P+R} =0.71 $$

 

 

 

结果验证

可以使用sklearn库来进行验证我们的计算

 

 

posted @ 2024-07-22 11:16  TW-NLP  阅读(201)  评论(0编辑  收藏  举报