百科问答小站 logo
百科问答小站 font logo



如何看待浙江大学ACL 2021论文实验数据存在问题? 第1页

  

user avatar   yuz9yuz 网友的相关建议: 
      

单说F1不在P和R之间的情况,还是有可能的:

因为写文章 report performance 一般会跑多次取平均,但是这个平均是每个cell里面的数值分别做算术平均。其他答案说的Macro-F1会出现类似情况也是一样的道理。

不过,这种情况下只有可能F1比P和R都小,并不能做到F1比P和R都大。事实上,假定跑了 次实验,Precision分别是 ,Recall分别是 ,F1分别是 ;最终report的平均分别是 ,那么


user avatar   huo-hua-de-41 网友的相关建议: 
      

@TniL 说F1应该偏向P和R里偏小的。但F1在P和R之间还是可以辩解的,因为你不知道具体分布,error bar只是体现最小值到最大值的一个范围。完全可以辩解说,做了十次实验,九次都在最大值附近,只有一次在最小值。所以F1偏大。

真正的问题在于,F1不在P和R之间的情况,这绝对是不可能的,因为F-measure都是R和P的调和平均。除非作者定义的F1计算方法不是大家公认的F1。右上角的这片数据肯定是有问题的。


@Colorful 提到:“不针对这个问题,之前看sklearn介绍的时候加权平均F1貌似会出现不在R和P之间的情况”

下面解释这个问题。我们有 3 个类(猫、鱼、母鸡)和分类器对应的混淆矩阵:

我们先计算每类Precision和Recall。以下是我们三个类别的Precision和Recall

然后计算每个类别的F1 分数。例如,猫的 F1 分数是:

F1 -score(猫)= 2 × (30.8% × 66.7%) / (30.8% + 66.7%) = 42.1%

Sklearn里的Macro-F1

Macro-F1在sklearn里的计算方法就是计算每个类的F1-score的算数平均值:

Macro-F1 = (42.1% + 30.8% + 66.7%) / 3 = 46.5%

以类似的方式,我们还可以计算宏观平均精度宏观平均召回率:

Macro-Precision = (31% + 67% + 67%) / 3 = 54.7%

Macro-Recall = (67% + 20% + 67%) / 3 = 51.1%

这种情况下,F1-score的确不在精确度和召回率之间,因为已经这个时候的F1分数已经不是精确度和召回率的调和平均数了。

Sklearn里的Weighted-F1

对Macro-F1进行平均时,我们给每个类赋予相同的权重。而在weighted-F1中,我们通过该类的样本数对每个类的 F1-score 加权。在我们的例子中,我们总共有 25 个样本:6 个猫、10 个鱼和 9 个母鸡。因此,weighted-F1 分数计算如下:

weighted-F1= (6 × 42.1% + 10 × 30.8% + 9 × 66.7%) / 25 = 46.4%

同样,我们可以计算weighted-Precision和weighted-Recall:

weighted-Precision=(6 × 30.8% + 10 × 66.7% + 9 × 66.7%)/25 = 58.1%

weighted-Recall = (6 × 66.7% + 10 × 20.0% + 9 × 66.7%) / 25 = 48.0%

同样的,weighted-F1也不在weighted-Precision和weighted-Recall之间。这也就是为什么sklearn会在文档里提到:

This alters ‘macro’ to account for label imbalance; it can result in an F-score that is not between precision and recall.

但这并不等于原本表格里的数据就有可能是正确的,实际上我们都看到了weighted-F1和Macro-F1不在Precision和Recall之间,但都小于Precision和weighted-Recall,而不会大于。对于这点 @YuZ9YuZ 已经在他的回答中给出了证明:

两个 Macro-F1 的故事

显然,计算Macro-F1还可以有一种方式,即先计算Macro-Precision和Macro-Recall,然后再求他们的调和平均数,我用星号 ( *)表示这种计算方法

Macro-F1*= 2 × (54.7% × 51.1%) / (54.7% + 51.1%) = 52.8%

我们可以看到,Macro-F1 和 Macro-F1* 的值非常不同:46.5% 与 52.8%。

那个那个F1分数才是正确的呢?

在论文A systematic analysis of performance measures for classification tasks里(这篇论文有4000+的引用,我觉得还是比较权威的),作者Sokolova对 Macro-F1的定义如下:

可以看出,Sokolova 论文选择计算 Macro-F1* 而不是 Macro-F1。

相反,在文献“A re-examination of text categorization methods ”里(这篇论文也是4000+的引用),提到的参考文献15是1996 年发表的论文“Training algorithms for linear text classifiers”,其中作者明确指出“Macro-F1是所有类的 F1 的平均值”。

if history is written by the victors, then — like it or not

无论如何,通常大多数不加深思的sklearn使用者,都会直接调用里面的方法。对所有类F1求平均值的Macro-F1计算方法终将成为历史的胜利者,而Macro-F1*将泯然历史。


user avatar   tylin98 网友的相关建议: 
      

看数值确实有些可疑。根据均值不等式,调和平均(F value)不会大于算术平均值,一般偏向P和R更小的那个。


user avatar    网友的相关建议: 
      

【抖机灵】

1902年,英日同盟建立,日本民众欢呼雀跃,因为日本从此被纳入了帝国主义列强的利益分配系统,开始成为列强的第一步。

2001年,中国加入了WTO,中国民众欢呼雀跃,因为中国被纳入了资本主义国际贸易利益分配系统,开始成为超级经济体的第一步。

然后二十世纪80年代,日本最喜欢看的,就是采访一堆白人,然后看他们如何夸日本,并且在酒吧雇佣白人陪酒女来现实面子。

二十一世纪一零年代,中国人开始喜欢,看一堆在中国的白人做节目,然后看他们如何夸中国,并请了一堆白人来做广告。

历史都是一种循环,十几年走了日本七十年的过程,也算不错了嘛。东亚中日韩三个民族,虽然彼此互相嫌弃,但骨子里真是一个模子里刻出来的。不可否认,世界上有许多对于日本/中国 ,感兴趣有好感的欧美人。只不过,许多我们看到的,已经被做成生意了。




  

相关话题

  你见过最狠的SCI评论是什么? 
  如何看待浙大努某犯强奸罪,被判处有期徒刑一年零六个月,缓刑一年零六个月,学校研究决定“留校察看”? 
  实验室的硬件条件好坏对你的科研有多大影响? 
  国内的学术氛围到底怎么样? 
  科研论文如何想到不错的 idea? 
  老师让研究生读论文,论文内容又看不懂,那么到底要从论文中学习什么? 
  为了得到一个实验数据你用的时间最长的有多长? 
  邱香果被控制,与美国种族主义抬头有关系吗?是否需要警惕美国变成二战前的德国? 
  多所「双一流」高校启用 T 级期刊分区作为参考,这对于国内学术成果评价体系会产生怎样的影响? 
  如何看待「海归」人员再「归海」的现象? 

前一个讨论
为什么有些高级程序员宁愿在国内 35 岁被辞退,也不愿意去国外工作?
下一个讨论
如何看待Meta(恺明)最新论文ViTDet:只用ViT做backbone(不使用FPN)的检测模型?





© 2024-11-24 - tinynew.org. All Rights Reserved.
© 2024-11-24 - tinynew.org. 保留所有权利