不同R封装的PR AUC输出不同

时间:2019-06-28 13:59:23

标签: r caret auc precision-recall yardstick

当通过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。

0 个答案:

没有答案