F分数是一类用于评价机器学习分类器和信息检索系统的指标,将精确率与召回率合为一个数值。最常见的形式是 F1,即二者的调和平均数,赋予两者相同的权重。更一般的 Fβ 分数则可调整对两者的侧重。分数通常介于0和1之间,数值越高,表示精确率与召回率的综合表现越好;也可以用百分比表示。(nlp.stanford.edu)
定义与计算
在二分类中,将其中一类指定为正类。混淆矩阵区分真正例(TP)、假正例(FP)、假负例(FN)和真负例(TN)。精确率是预测为正类的样本中实际为正类的比例,召回率则是实际正类样本中被检出的比例:
F1将这两个量结合起来:
以样本数量表示的公式清楚地表明,真负例不会直接影响该分数。(scikit-learn.org)
例如,假设一个文档检索系统从含有80篇相关文档的文档集中返回了50篇文档,其中40篇是相关的。那么,TP = 40、FP = 10、FN = 40。精确率为0.80,召回率为0.50,代入公式可得 。这一示例计算遵循基于集合的检索评价定义。(nlp.stanford.edu)
与算术平均数不同,调和平均数对较低的分量十分敏感:很高的精确率无法完全弥补很低的召回率,反之亦然。当两者均为正数时,F1介于两者之间,且不超过它们的算术平均数。当不存在假正例或假负例,并且至少有一个真正例时,F1等于1。(nlp.stanford.edu)
Fβ系列
对于正参数 ,
β大于1时侧重召回率,小于1时侧重精确率。因此,与F1相比,F2更重视漏检的正例,而F0.5更重视假正例。在相应的量有定义的情况下,当 趋近于零时,该表达式趋近于精确率;当 无限增大时,则趋近于召回率。公式中参数的平方很重要:在以样本数量表示的分母中,F2赋予FN的系数是FP的四倍。(scikit-learn.org)
选择β是在指定评价时的侧重点,并不是在设定一种通用的、衡量不同错误之间经济或实际代价的比例。Fβ仍然是精确率与召回率的归一化组合,而非对特定应用效用的直接度量。(arxiv.org)
多分类与多标签分类中的平均方式
在多分类中,可以将每个类别与其余所有类别相对照进行评价。在多标签分类中,每个标签都对应一个独立的二分类问题。不同的汇总方式会得到不同的总体分数。(scikit-learn.org)
- 微平均:先汇总所有标签的TP、FP和FN,再计算分数。
- 宏平均:先计算各标签的F分数,再取不加权的算术平均值。
- 按支持度加权平均:以各标签实际正例的数量作为权重,对各标签的分数求加权平均。
- 样本平均:用于多标签任务,根据每个样本的预测标签集合与实际标签集合计算分数,再对所有样本求平均。(scikit-learn.org)
微平均F1受高频类别的影响更大,而宏平均F1赋予每个类别相同的权重。对于常规的单标签多分类任务,如果纳入全部类别,微平均F1就等于准确率:每次错误预测都会在各类别的统计中贡献一个假正例和一个假负例。这一等式通常不适用于多标签任务,也不适用于仅评价部分选定类别的情况。(nlp.stanford.edu)
宏平均F1通常指各类别F1分数的平均值。它一般不等于宏平均精确率与宏平均召回率的调和平均值。这两种计算方式都曾被冠以同一名称,因此在比较结果时,明确具体公式十分重要。(arxiv.org)
阈值与评价设计
包括逻辑回归在内的许多模型,在输出类别标签之前,会先生成概率估计值或决策分数。决策阈值将这一输出转换为正类或负类预测。即使底层模型不变,改变阈值也会改变混淆矩阵,从而改变F分数。默认阈值不一定能使F1最大化。(scikit-learn.org)
阈值选择可以视为在验证集上或通过交叉验证对目标函数进行数学优化。如果使用同一批观测数据来拟合模型和调整阈值,可能导致过拟合。独立的测试集可用于选择完成后的评价。(scikit-learn.org)
局限性与报告规范
即使准确率很高,F1仍能揭示模型未能检出少数正类的情况。例如,当正例占数据的1%时,将所有样本都预测为负类可达到99%的准确率,但正类的F1为零。不过,由于忽略了真负例,F1无法描述分类性能的所有方面。(nlp.stanford.edu)
F分数评价的是离散预测,而不是概率估计的质量。在检索中,它评价的是无序的结果集合,不会区分同一集合内部的不同排序。精确率—召回率曲线则描述在不同结果截取阈值下的表现。(scikit-learn.org)
如果 ,以样本数量计算的分数就没有定义。软件可能用零、一或缺失值替代;计算平均值时,也可能排除缺失值。因此,为使报告结果能够被正确解读,应注明β、正类或纳入评价的标签、平均方式、阈值,以及未定义情况的处理方法。(scikit-learn.org)