秒懂Precision精确率、Recall召回率-附代码和案例

简介: 秒懂Precision精确率、Recall召回率-附代码和案例
  • 经常有同学目标检测评价指标含糊不清
  • 这次带你通俗易懂了解该知识

强烈推荐的博客:

更多有用知识,请点我

//☏: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。

相关文章
|
机器学习/深度学习 算法 搜索推荐
精确率(Precision)和召回率(Recall)
精确率(Precision)和召回率(Recall)是用于评估分类模型性能的指标。它们通常用于二分类问题,例如判断一个样本是正例(Positive)还是负例(Negative)。
8753 0
|
11月前
|
JavaScript Shell API
阿里云百炼 API 调用教程:准备 API-Key、配置环境变量和调用 API 流程
在使用阿里云百炼平台的大模型能力时,API 调用是核心环节 —— 无论是开发 AI 应用、测试模型效果,还是搭建智能服务,都需要通过 API 将大模型能力集成到自己的系统中。不过对很多开发者来说,从准备密钥到实际调用的流程可能存在疑问,比如 “API-Key 怎么获取”“环境变量配置有什么用”“不同语言怎么写调用代码”。本文结合最新的实操细节,用通俗的语言把整个流程拆解开,从账号准备到多语言调用,每一步都附具体操作和代码示例,帮大家快速上手。
22870 113
|
7月前
|
存储 人工智能 监控
AI测试有没有一套标准流程?
AI测试不是简单验证模型输出,而是围绕业务目标、数据样本、模型效果、系统链路、风险边界、线上监控与版本回归构建的新型质量保障体系。它突破传统确定性测试范式,强调评估+验证+治理三位一体,推动测试从“功能正确”迈向“业务可用、稳定可控、持续可交付”。
|
机器学习/深度学习 数据可视化 PyTorch
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
深度学习之如何使用Grad-CAM绘制自己的特征提取图-(Pytorch代码,详细注释)神经网络可视化-绘制自己的热力图
|
人工智能 安全 测试技术
本周 AI Benchmark 方向论文推荐
由北京大学和微软亚洲研究院的魏李等人提出的 FEA-Bench,是一个专为评估大型语言模型(LLMs)在代码库级别进行增量开发能力的基准测试。它从 83 个 GitHub 仓库中收集了 1,401 个任务实例,专注于新功能的实现。研究表明,即使是先进的 LLMs 在此任务中的表现仍远低于预期,揭示了仓库级代码开发的重大挑战。
1133 0
|
机器学习/深度学习 资源调度 计算机视觉
YOLOv11改进入门篇 | 手把手讲解改进模块如何实现高效涨点,以SimAM注意力模块为例
YOLOv11改进入门篇 | 手把手讲解改进模块如何实现高效涨点,以SimAM注意力模块为例
1641 1
YOLOv11改进入门篇 | 手把手讲解改进模块如何实现高效涨点,以SimAM注意力模块为例
|
存储 Java 应用服务中间件
Java规则引擎Drools急速入门
Java规则引擎Drools急速入门
12261 0
Java规则引擎Drools急速入门

热门文章

最新文章