探索F1-score在机器学习中的重要性!了解它如何平衡精确率和召回率,以实现最佳模型评估。
F1 分数是机器学习(ML)中的一个重要性能指标。 机器学习 (ML)中的一个重要性能指标。 分类模型的准确性。与计算预测正确率的简单准确率不同,F1 分数结合了其他两个重要指标--准确率和预测正确率。 F1 分数将其他两个重要指标--精确度和 召回率--合二为一。它被定义为 精确度和召回率的调和平均值。这使得 F1 分数特别适用于评估在不平衡数据集上训练的模型。 不平衡数据集上训练的模型,在这种数据集上,一个类别中的样本数量明显多于其他类别。在这种情况下 在这种情况下,一个模型可能仅仅通过预测多数类就能达到很高的准确率,而无法识别出少数类,而少数类往往是人们更感兴趣的。 在这种情况下,模型可能仅仅通过预测多数类就能达到很高的准确率,而无法识别少数类,而少数类往往更令人感兴趣。
要理解 F1 分数,就必须掌握其各组成部分之间的关系。精度衡量的是 正向预测的质量(最大限度地减少误报),而召回率则衡量识别出的真正向预测的数量(最大限度地减少误报 识别的真阳性数量(尽量减少假阴性)。通常情况下,提高其中一个指标会导致另一个指标的降低,这种现象被称为 "误报率"。 这种现象被称为 精度-召回权衡。F1 分数通过对极端值的惩罚提供了一种平衡的观点。其最佳值为 1(精确度和召回率均为满分),最差值为 0。 这种平衡对于开发稳健的预测建模系统至关重要。 预测建模系统来说是至关重要的。 检测和误报都会带来重大损失。
在错误成本较高或数据分布偏斜的情况下,F1 分数是不可或缺的。
对于计算机视觉(CV)任务,如 物体检测等计算机视觉(CV)任务中,F1 分数有助于确定 模型在特定置信度阈值下定义边界和对物体进行分类的能力。在训练诸如 Ultralytics YOLO11等模型时,验证过程会计算 精度、召回率和 F1 分数,以帮助工程师选择最佳模型权重。
下面的Python 代码演示了如何验证预训练的YOLO11 模型并访问性能指标。
from ultralytics import YOLO
# Load a pretrained YOLO11 model
model = YOLO("yolo11n.pt")
# Run validation on a dataset like COCO8
# The .val() method computes metrics including Precision, Recall, and mAP
metrics = model.val(data="coco8.yaml")
# Print the mean results
# While F1 is computed internally for curves, mAP is the primary summary metric
print(f"Mean Average Precision (mAP50-95): {metrics.box.map}")
print(f"Precision: {metrics.box.mp}")
print(f"Recall: {metrics.box.mr}")
选择正确的指标取决于人工智能项目的具体目标。
提高 F1 分数通常需要对模型和数据进行反复改进。