我理解 F1-measure 是精确率和召回率的调和平均值。但是什么值定义了 F1 度量的好坏呢?我似乎找不到任何参考文献(谷歌或学术)来回答我的问题。
考虑
sklearn.dummy.DummyClassifier(strategy='uniform')
,这是一个进行随机猜测的分类器(又名坏分类器)。我们可以将 DummyClassifier 视为要击败的基准,现在让我们看看它的 f1 分数。
在二元分类问题中,具有平衡数据集:总共 6198 个样本,3099 个样本标记为
0
,3099 个样本标记为 1
,两个类的 f1-score 均为 0.5
,加权平均值为 0.5
:
第二个例子,使用
DummyClassifier(strategy='constant')
,即每次猜测相同的标签,每次都猜测标签1
,在这种情况下,f1-scores的平均值是0.33
,而标签0
的f1是0.00
:
我认为这些 f1 分数很糟糕,考虑到平衡数据集。
PS。使用
sklearn.metrics.classification_report
生成摘要
您没有找到任何关于 f1 测量范围的参考,因为没有任何范围。 F1 度量是精度和召回率的组合矩阵。
假设您有两种算法,一种具有更高的精度和更低的召回率。通过这种观察,您无法判断哪种算法更好,除非您的目标是最大化精度。
因此,考虑到如何在两种算法中选择更好的算法(一个具有更高的召回率,另一个具有更高的精度)的模糊性,我们使用 f1-measure 在其中选择更好的算法。
f1-measure 是一个相对术语,这就是为什么没有绝对范围来定义你的算法有多好。