深圳Yolo 视觉
深圳
立即加入
词汇表

测试数据

探索测试数据在机器学习中的关键作用。学习如何使用无偏数据集评估 Ultralytics YOLO26 性能,以确保实际应用中的准确性。

测试数据 是一个更大数据集中的特定子集,严格保留用于评估 机器学习 (ML) 模型的最终性能。与早期学习阶段使用的数据不同,测试数据在开发周期结束之前对算法来说是完全“未见”的。这种隔离至关重要,因为它能对 计算机视觉 (CV) 模型或其他 AI 系统如何泛化到新的真实世界输入提供无偏评估。通过模拟生产环境,测试数据帮助开发人员验证他们的模型是否真正学习了底层模式,而不仅仅是记忆了训练样本。

测试数据在 ML 生命周期中的作用

在标准的机器学习工作流中,数据通常分为三个不同的类别,每个类别都有其独特的作用。理解这些划分之间的区别对于构建健壮的人工智能 (AI)系统至关重要。

  • 训练数据这是数据集中最大的一部分,用于训练模型。算法迭代调整其内部参数或权重,以最小化在此特定示例集上的误差。
  • 验证数据: 该子集在训练过程中经常用于调整超参数和指导架构决策。它作为一种中期检查,以防止过拟合,即模型在训练数据上表现良好但在新数据上失败的情况。
  • 测试数据: 这是模型的最终“考试”。它从不用于更新权重或调整设置。对测试数据的评估会产生明确的性能指标,例如 准确率召回率平均精度均值 (mAP),利益相关者会根据这些指标决定模型是否已准备好进行 模型部署

妥善管理这些划分通常由 Ultralytics Platform 等工具协助完成,该平台可以自动将上传的数据集组织到这些基本类别中,以确保严格的 模型评估

无偏评估的重要性

测试数据的主要价值在于其检测dataset bias和方差问题的能力。如果模型在训练数据上达到 99% 的准确率,但在测试数据上只有 60%,则表明高方差(过拟合)。相反,两者表现不佳则表明欠拟合。

使用指定的测试集符合 可复现性 和客观性的科学原则。如果没有一个纯净的测试集,开发者就有“为测试而训练”的风险,这会有效地将评估阶段的信息泄露回训练阶段——这种现象被称为 数据泄露。这会导致模型在面对 真实世界数据 时,其过于乐观的性能估计会崩溃。

实际应用

测试数据在所有采用 AI 的行业中都至关重要,以确保系统上线前的安全性和可靠性。

  • 自动驾驶:自动驾驶车辆的开发中,训练数据可能包含数百万英里在晴朗天气下行驶的高速公路里程。然而,测试数据必须包含罕见且具有挑战性的场景——例如大雪、突然出现的障碍物或令人困惑的交通标志——这些是汽车在训练期间从未明确“见过”的。这确保了object detection系统能够在不可预测的环境中安全响应。
  • 医疗诊断:在构建用于医学成像中肿瘤 detect的模型时,训练集可能来自特定医院的数据库。为了验证模型对通用用途的鲁棒性和安全性,测试数据理想情况下应包含来自不同医院、使用不同机器拍摄且代表多样化患者人群的扫描图像。这种外部验证证实了 AI 不会偏向特定设备类型或人群。

使用代码评估性能

使用 ultralytics 包中,您可以轻松评估模型在保留数据集上的性能。尽管 val 模式常用于训练期间的验证,它也可以配置为在您定义的特定测试 split 上运行 数据集 yaml 配置中定义的特定测试集上运行。.

以下是如何评估预训练的 YOLO26 模型以获取 mAP50-95 等指标:

from ultralytics import YOLO

# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")

# Evaluate the model's performance on the validation set
# (Note: In a strict testing workflow, you would point 'data'
# to a YAML that defines a specific 'test' split and use split='test')
metrics = model.val(data="coco8.yaml")

# Print a specific metric, e.g., mAP at 50-95% IoU
print(f"Mean Average Precision (mAP50-95): {metrics.box.map}")

这个过程生成全面的指标,允许开发者客观地比较不同的架构,例如YOLO26 与 YOLO11,并确保所选解决方案符合项目的既定目标。严格测试是确保符合高质量AI 安全标准的最终把关步骤。

让我们一起共建AI的未来!

开启您的机器学习未来之旅