当通过2个不同的R
包:yardstick
和{{1}进行计算时,我正在使用的数据集为精确召回曲线下的面积(PRAUC)的计算找到不同的数值。 }}。
恐怕我无法用合成数据来重现这种不匹配,而只能用我的数据集来重现(这也很奇怪)
为了使此结果可重现,我分享了模型的预测输出,您可以在此处https://drive.google.com/open?id=1LuCcEw-RNRcdz6cg0X5bIEblatxH4Rdz下载(不用担心,这是一个很小的csv)。
csv包含一个具有4列的数据框:
caret
处于yes
类的概率估计
yes
= 1-no
yes
实际的班级标签
obs
预测的班级标签(阈值为.5)
此处遵循代码以生成PRAUC的2个值
pred
由于计算面积(对曲线进行插值)时的近似值,我可以理解一些差异,但这似乎太高了。
我什至尝试了第三个软件包require(data.table)
require(yardstick)
require(caret)
pr <- fread('pred_sample.csv')
# transform to factors
# put the positive class in the first level
pr[, obs := factor(obs, levels = c('yes', 'no'))]
pr[, pred := factor(pred, levels = c('yes', 'no'))] # this is actually not needed
# compute yardstick PRAUC
pr_auc(pr, obs, yes) # 0.315
# compute caret PRAUC
prSummary(pr, lev = c('yes', 'no')) # 0.2373
,结果仍然不同,即大约0.26。