ShomyLiu / pytorch-relation-extraction

distant supervised relation extraction models: PCNN MIL (Zeng 2015), PCNN+ATT(Lin 2016). 关系抽取
498 stars 118 forks source link

关于recall的计算 #29

Closed ShellingFord221 closed 5 years ago

ShellingFord221 commented 5 years ago

在eval_metric()函数中,你的recall值是这样计算的: recall = tp * 1.0 / positive_num,其中positive_num是实际标签非NA的bag个数。 但是recall的定义是 recall = tp / (tp + fn),fn指的是预测为NA、实际为非NA,而tp指的是预测为非NA,实际为非NA,但标签预测正确的,也就是说,tp + fn 的值会比positive_num小一些,这样用你的方式计算出的recall值会比按照定义的方式计算出的值小一些。 想问下这个地方是怎么回事呢?谢谢!

ShellingFord221 commented 5 years ago

这个地方看了PCNN的原始代码,发现也是除以了positive_num,希望能够说明一下~谢谢~

ShomyLiu commented 5 years ago

一般情况,recall就是召回,看看能覆盖多少正样例(非NA). 所以直接/positive num 也是没问题。 严格来说,你说的计算方法是对的,你可以测试下,这俩值的差距我记得不大。

最近比较忙,回复不太及时,见谅,后续会一一回复issue。

ShellingFord221 commented 5 years ago

好的~谢谢~~

ShellingFord221 commented 5 years ago

你好,想问下假如一个sample的标签是5,但是我预测的是3(假定0是NA类),那么这个sample是FP还是FN呢?谢谢!