- 经常有同学目标检测评价指标含糊不清
- 这次带你通俗易懂了解该知识
强烈推荐的博客:
//☏:qq1309399183//
计算 precision(精确率)**和 recall(召回率)是评估分类模型性能常用的指标之一。以下是一个示例代码,展示如何计算 precision 和 recall。
举例说明
- 假设有一个二分类问题,我们使用一个模型对数据进行分类,并得到了预测结果和真实标签。
- 预测结果是模型对每个样本的预测结果(1代表正类,0代表负类),真实标签是每个样本的真实类别。
# 预测结果 predictions = [1, 0, 1, 1, 0, 0, 1, 1, 1, 0] # 真实标签 true_labels = [1, 1, 0, 1, 1, 0, 1, 0, 0, 0]
- 首先,我们需要计算 True Positive(TP)、False Positive(FP)和 False
Negative(FN)的数量。
- TP 是模型预测为正类且真实标签也为正类的样本数量,FP 是模型预测为正类但真实标签为负类的样本数量,FN是模型预测为负类但真实标签为正类的样本数量。
代码
TP = 0 FP = 0 FN = 0 for pred, true in zip(predictions, true_labels): if pred == 1 and true == 1: TP += 1 elif pred == 1 and true == 0: FP += 1 elif pred == 0 and true == 1: FN += 1
通过 TP、FP 和 FN 的数量,我们可以计算 precision 和 recall。
precision = TP / (TP + FP) recall = TP / (TP + FN) print("Precision:", precision) print("Recall:", recall)
在这个示例中,预测结果和真实标签的对比如下:
预测结果 | 真实标签 |
1 | 1 |
0 | 1 |
1 | 0 |
1 | 1 |
0 | 1 |
0 | 0 |
1 | 1 |
1 | 0 |
1 | 0 |
0 | 0 |
详细解释
根据定义
TP 是预测为正类且真实标签也为正类的样本数量,FP 是预测为正类但真实标签为负类的样本数量,FN是预测为负类但真实标签为正类的样本数量
True Positives (TP): 3
第1个样本:预测为1(正),实际为1(正)
第4个样本:预测为1(正),实际为1(正)
第7个样本:预测为1(正),实际为1(正)
False Positives (FP): 3
第3个样本:预测为1(正),实际为0(负)
第8个样本:预测为1(正),实际为0(负)
第9个样本:预测为1(正),实际为0(负)
False Negatives (FN): 2
第2个样本:预测为0(负),实际为1(正)
第5个样本:预测为0(负),实际为1(正)
Precision(精确率)和Recall(召回率)是用于评估二分类模型性能的两个指标,它们分别定义如下:
下面是使用给定的 TP、FP 和 FN 计算 Precision 和 Recall 的代码:
# Given values TP = 3 FP = 3 FN = 2 # Calculate Precision and Recall precision = TP / (TP + FP) recall = TP / (TP + FN) # Print the results print("Precision:", precision) print("Recall:", recall)
根据给定的 TP、FP 和 FN,计算的结果为:
- Precision(精确率): 3 / (3 + 3) = 0.5
- Recall(召回率): 3 / (3 + 2) = 0.6
这是基于给定数据计算的 Precision 和 Recall。