Precision、Recall、F计算:举例

本文通过实例解释了 Precision、Recall 和 F1 值的计算,介绍了如何根据标签和预测结果来确定这些指标。在假设的标签集a、b、c、d、e中,通过具体数据展示了混淆矩阵的构成,帮助读者深入理解这些概念。
摘要由CSDN通过智能技术生成

假设标签:a,b,c,d,e


对于标签a:正=a,负=其他(b,c,d,e)
TP:实际=正,预测=正(true positives)
(预测=a 且 实际=a 的个数;a被判定为a
FP:实际=负,预测=正
(预测=a 情况下,实际=b, c, d, e 的个数;其他被判定为a
FN:实际=正,预测=负(false negatives)
(实际=a 情况下,预测=b, c, d, e 的个数;a被判定为其他))
TN:实际=负,预测=负
其他被判定为其他,且正确,如b判定为b)



有14个数据需要预测

序号1234567891011121314
实际 y_realbbbbbcc ccd ddee
预测 y_predb bbaaccddd ede d
计算:
数量abcdesum
TP032218
FP200316
FN022116
TN
注:
  1. PN(a)= b判定为b + c判定为c +…= 8(除了a)
  2. ? FN(a) + TP(a) = 实际a的个数 (y_real)
    ? TN(a) + FP(a) =实际其他的个数 (y_real),除了a
    ? FN(a) + TP(a) + TN(a) + FP(a)= 数据总个数 = 14

Precision = TP / (TP + FP) = 8/(8+6)
Recall = TP / (TP + FN) = 8/(8+6)
F1 = 2*(P*R)/(P+R) = …



扩展:
tensorflow 中的混淆矩阵:confusion_matrix,矩阵cm

实际 \ 预测 (数量)abcde
a00000
b23000
c00220
d00021
e00011
注:
  1. cm[0][0] : 实际=a,预测=a的个数
  2. cm表格中的总数 = 数据个数 = 14
  3. TP = 对角线之和
    FP = 第一列(除了[a][a])之和+ 第二列(除了[b][b])之和+… = 2+0+0+3+1=6
    FN = 第一行(除了[a][a])之和+第二行(除了[b][b])之和+… = 0+2+2+1+1=6

https://www.cnblogs.com/techengin/p/8962024.html

#coding:utf-8
from sklearn.metrics import confusion_matrix
import numpy

# 0,1,2,3,4
# a,b,c,d,e
# b	b	b	b	b	    c	c	c	c	d	     d	d	e	e
y_true = [1,1,1,1,1, 2,2,2,2,3, 3,3,4,4]

# b	b	b	a	a	   c	c	d	d	d	     e	d	e	d
y_pred = [1,1,1,0,0, 2,2,3,3,3, 4,3,4,3]
cm = confusion_matrix(y_true, y_pred,labels=[0,1,2,3,4])
print(cm)
# print(type(cm)) # <class 'numpy.ndarray'>

# if cm = 2*2,即二分类
# TP = cm[0][0]
# FP = cm[0][1]
# FN = cm[1][0]
# TN = cm[1][1]
# tn, fp, fn, tp = cm.ravel()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值