当前位置: 首页 > news >正文

测试集指标统计

统计准确率和召回率。为了计算准确率和召回率,需要以下信息:

  1. 真阳性(True Positive, TP):正确预测为正类的样本数。
  2. 假阳性(False Positive, FP):错误预测为正类的样本数。
  3. 假阴性(False Negative, FN):错误预测为负类的样本数。
  4. 真阴性(True Negative, TN):正确预测为负类的样本数。

计算准确率:
准确率 = (真阳性 + 真阴性) / 总样本数。
计算召回率:
召回率 = 真阳性 / (真阳性 + 假阴性)。
计算精确率:
精确率 = 真阳性 / (真阳性 + 假阳性)。

精确率 (Precision):预测为正的样本中真实正的比例(TP/(TP+FP))
召回率 (Recall):真实正的样本中被正确预测的比例(TP/(TP+FN))
F1-Score:精确率和召回率的调和平均
Support:每个类别的实际样本数
混淆数:每个类别的FP+FN总和

假设数据集只有两类:正类(positive)和负类(negative)。可以根据这些信息来计算准确率和召回率。

代码如下

结果图片格式:positive_0001_cls_positive.jpg  >>  图片真实标签_0001_cls_模型预测结果.jpg

import os
import glob

# 图片路径
img_p = r"/Train-main\projects\eat\workdir\results20250227".replace("\\", "/")

# 获取所有图片
img_list = glob.glob(f"{img_p}/**/*.jpg", recursive=True) + glob.glob(f"{img_p}/**/*.png", recursive=True)

# 初始化计数器
true_positive = 0
false_positive = 0
false_negative = 0
true_negative = 0

# 遍历所有图片  positive_0001_cls_positive.jpg  >>  图片真实标签_0001_cls_模型预测结果.jpg
for i in img_list:
    img_str = os.path.basename(i)
    img_lab = img_str.split("_")[0]
    pred_lab = img_str.split("_")[3].split(".")[0]
    
    if img_lab == "positive":
        if pred_lab == "positive":
            true_positive += 1
        else:
            false_negative += 1
    else:  # img_lab == "negative"
        if pred_lab == "positive":
            false_positive += 1
        else:
            true_negative += 1

# 计算总样本数
img_all = len(img_list)

# 计算准确率
accuracy = (true_positive + true_negative) / img_all

# 计算召回率(针对正类)
recall = true_positive / (true_positive + false_negative) if (true_positive + false_negative) > 0 else 0

# 计算精确率(针对正类)
precision = true_positive / (true_positive + false_positive) if (true_positive + false_positive) > 0 else 0

# 输出结果
print(f"Total images: {img_all}")
print(f"True Positive: {true_positive}")
print(f"False Positive: {false_positive}")
print(f"False Negative: {false_negative}")
print(f"True Negative: {true_negative}")
print(f"Accuracy: {accuracy:.4f}")
print(f"Recall: {recall:.4f}")
print(f"Precision: {precision:.4f}")

详细解释

  1. 初始化计数器

    • true_positive:真阳性计数器。
    • false_positive:假阳性计数器。
    • false_negative:假阴性计数器。
    • true_negative:真阴性计数器。
  2. 遍历所有图片

    • 从图片文件名中提取真实标签 img_lab 和预测标签 pred_lab
    • 根据真实标签和预测标签更新计数器。
  3. 计算总样本数

    • img_all 是所有图片的数量。
  4. 计算准确率

    • 准确率 = (真阳性 + 真阴性) / 总样本数。
  5. 计算召回率

    • 召回率 = 真阳性 / (真阳性 + 假阴性)。
  6. 计算精确率

    • 精确率 = 真阳性 / (真阳性 + 假阳性)。
  7. 输出结果

    • 打印总样本数、真阳性、假阳性、假阴性、真阴性、准确率、召回率和精确率。

相关文章:

  • 类和对象——static修饰类的成员
  • 小红的质数数组(A组,B组)
  • C++错误Call to implicitly-deleted default constructor of ‘SerialPortConfig‘
  • 国密算法Sm2工具类--golang实现版
  • Windows逆向工程入门之MASM编程深度解析
  • Spring MVC视图解析器的定制与应用
  • 【强化学习笔记1】从强化学习的基本概念到近端策略优化(PPO)
  • Parquet 编码
  • SQL Server 中遇到的常见问题集
  • 2025学年安徽省职业院校技能大赛 “信息安全管理与评估”赛项 比赛样题任务书
  • docker-compose部署onlyoffice8.3.0并支持ssl,且支持通过nginx代理,关闭JWT配置
  • RabbitMQ系列(四)基本概念之Exchange
  • 线上服务器的文件下载到本地Windows电脑
  • hackmyvm-hero
  • Python学习第十八天之深度学习之Tensorboard
  • 网络安全和爬虫的关系
  • 网络协议 HTTP、HTTPS、HTTP/1.1、HTTP/2 对比分析
  • 算法——分治
  • Java从根上理解 ConcurrentHashMap:缓存机制与性能优化
  • 欧几里得算法
  • 关税战导致中国商品冲击周边市场?“对美出口减少并未导致对东盟出口激增”
  • 上影节开幕影片《酱园弄·悬案》,陈可辛执导,章子怡主演
  • “宝马女司机驾车拖行虐猫”引关注,海口警方介入调查
  • 十大券商看后市|A股指数有望进一步缓步推高,淡化短期波动
  • 一周观展|一批重量级考古博物馆开馆:从凌家滩看到孙吴大墓
  • 意德首脑会谈,梅洛尼警告欧盟绿色政策面临“工业荒漠化”