F1-Score
了解 F1 分数如何平衡精确率和召回率,以评估机器学习模型。了解如何优化 Ultralytics YOLO26 的性能,从而获得更高的准确率。
F1 分数是机器学习中的一项关键性能指标,它将精确率和召回率结合为单一的调和平均值。它特别适用于评估数据集不平衡,或误报和漏报成本不同的分类模型。与简单的准确率不同,如果某一类别在数据集中占据主导地位,准确率可能会产生误导;F1 分数则能更均衡地反映模型正确识别相关实例并尽量减少错误的能力。通过惩罚极端值,只有在精确率和召回率都达到合理水平时才能取得较高分数,因此 F1 分数已成为从医疗诊断到信息检索等领域的常用指标。
F1 分数在机器学习中的重要性#
在许多现实场景中,仅知道预测正确的比例(准确率)是不够的。例如,在异常检测中,正常情况远多于异常情况。一个对每个输入都预测为“正常”的模型可能达到 99% 的准确率,但对于检测实际问题毫无用处。F1 分数通过平衡两个相互制约的指标来解决这一问题:
- 精确率:用于衡量正类预测的质量。它回答了这样一个问题:“在模型标记为正类的所有实例中,有多少实际上是正类?”
- 召回率:用于衡量正类预测的覆盖程度。它回答了这样一个问题:“在所有实际为正类的实例中,模型正确识别出了多少?”
由于两者之间通常存在权衡——提高精确率往往会降低召回率,反之亦然——F1 分数作为统一指标,有助于找到最佳平衡点。在使用超参数优化调优模型时,这对于确保模型在各种条件下都具备稳健性能至关重要。
实际应用#
F1 分数的实用价值遍及多个错误成本高昂的行业。
- 医疗诊断:在医疗保健领域的 AI中,尤其是在肿瘤检测等任务中,漏报(未检测到肿瘤)可能危及生命,而误报(将良性组织标记为异常)则会造成不必要的焦虑。F1 分数可帮助研究人员优化 YOLO26 等模型,确保系统足够敏感,能够发现疾病,同时又不会让医生被误报淹没。
- 信息检索和搜索:搜索引擎和文档分类系统使用 F1 分数来评估相关性。用户希望看到所有相关文档(高召回率),但不希望在不相关的结果中费力筛选(高精确率)。较高的 F1 分数表明搜索引擎能够有效检索正确的信息,同时避免结果杂乱。
- 垃圾邮件过滤:电子邮件服务使用文本分类来筛分垃圾邮件。系统必须捕获垃圾邮件(召回率),但关键是不能将重要的工作邮件标记为垃圾邮件(精确率)。F1 分数是此类过滤器的主要基准。
使用 Ultralytics 计算 F1 分数#
现代计算机视觉框架简化了这些指标的计算。在训练目标检测模型时,F1 分数会在验证阶段自动计算。Ultralytics Platform会通过实时图表展示这些指标,让用户查看 F1 分数随不同置信度阈值变化的曲线。
以下是使用 Python API 访问验证指标(包括 F1 分数的组成部分)的方法:
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Validate the model on a dataset (metrics are computed automatically)
# This returns a validator object containing precision, recall, and mAP
metrics = model.val(data="coco8.yaml")
# Print the Mean Average Precision (mAP50-95), which correlates with F1 performance
print(f"mAP50-95: {metrics.box.map}")
# Access precision and recall arrays to manually inspect the balance
print(f"Precision: {metrics.box.p}")
print(f"Recall: {metrics.box.r}")F1 分数与相关指标的比较#
了解 F1 分数与其他评估标准之间的差异,对于为项目选择合适的工具至关重要。
- 与准确率的区别:准确率将所有错误一视同仁。对于不平衡数据集,F1 分数更具优势,因为它关注正类(感兴趣的少数类)的性能。
- 与 mAP 的关系:平均精度均值 (mAP)是跨所有置信度阈值比较目标检测模型的标准。然而,F1 分数通常用于确定部署时的最佳置信度阈值。你可以选择 F1 曲线达到峰值时的阈值来部署应用。
- 混淆矩阵:混淆矩阵提供了计算 F1 分数所依据的原始计数(真正例、假正例等)。矩阵能够提供细粒度的详细信息,而 F1 分数则提供单一的汇总统计值,便于快速比较。
- ROC-AUC:曲线下面积 (AUC)用于衡量模型在所有阈值下的区分能力。当类别分布高度倾斜时(例如欺诈检测中欺诈行为十分罕见),通常更倾向于使用 F1 分数而不是 ROC-AUC。
提升你的 F1 分数#
如果你的模型 F1 分数较低,可以采用多种策略来改善。数据增强可以增加正类样本的多样性,帮助模型更好地泛化。利用稳健基础模型进行迁移学习,可以让网络利用预先学习的特征。此外,在推理过程中调整置信度阈值,可以手动改变精确率与召回率之间的平衡,从而针对特定用例最大化 F1 分数。









