视频搜索系统的 F1 分数是通过将精确率(precision)和召回率(recall)结合成一个单一指标来计算的,它平衡了两者之间的权衡。精确率衡量检索到的相关视频的比例(真阳性 / (真阳性 + 假阳性)),而召回率衡量成功检索到的相关视频的比例(真阳性 / (真阳性 + 假阴性))。F1 分数是这两个值的调和平均数:F1 = 2 * (精确率 * 召回率) / (精确率 + 召回率)。这会惩罚极端的不平衡——例如,一个精确率很高但召回率很低(反之亦然)的系统的 F1 分数会低于两者数值都适中的系统。
在实践中,视频搜索系统通常会在特定的截断位置(例如,前 10 个结果)评估 F1 分数。例如,如果一个查询在数据集中有 5 个相关视频,并且系统返回的 10 个结果中有 3 个是正确的匹配,则精确率为 3/10 (30%),召回率为 3/5 (60%)。此时的 F1 分数将是 (2 * 0.3 * 0.6) / (0.3 + 0.6) = 0.4 (40%)。这种方法假设二元相关性判断(一个视频要么相关,要么不相关),并且需要地面真相标注。对于排序结果,一些实现使用多个查询的加权平均值,或者根据每个查询相关项数量的不同进行调整,以避免指标失真。
主要考虑因素包括是全局计算 F1(跨所有查询)还是按查询计算,以及如何处理部分匹配(例如,视频中的时间段)。对于时间性任务,例如检测视频中的特定事件,F1 可能会结合重叠阈值(例如,交并比)来确定真阳性。开发者还应决定是优先考虑严格的精确匹配(在检索中常见)还是允许近似相关性,这会影响假阳性/假阴性的计数方式。评估期间通常使用 scikit-learn 的 `classification_report` 或自定义脚本等工具来自动化这些计算。