用于非二进制因变量R快AUC功能(R fast AUC function for non-binar

2019-09-17 11:19发布

我试图计算AUC为肥胖型的数据集,并无法找到一个既处理不在值只是0或1的合理快速的作品。

到目前为止,我已经试过了ROCR包,但它只能处理0和1的和pROC包会给我一个答案,但可能需要5-10分钟来计算1万行。

作为一个说明我所有的值落在0 - 1之间,但不一定是1或0。

编辑: - 1的答案和预测都是0之间下降。

有什么建议么?

EDIT2:

ROCR可以应付这样的情况:

Ex.1
actual   prediction
  1         0
  1         1
  0         1
  0         1 
  1         0

或者是这样的:

Ex.2
actual   prediction
  1         .25
  1         .1
  0         .9
  0         .01
  1         .88

但不是的情况是这样的:

Ex.3
actual   prediction
  .2         .25
  .6         .1
  .98        .9
  .05        .01
  .72        .88

pROC可以对付例3,但它需要一个很长的时间来计算。 我希望有像例3的情况下更快的实现。

Answer 1:

到目前为止,我已经试过了ROCR包,但它只能处理0和1

你说的是参考类成员或预测类成员? 后者可以在ROCR是0和1之间,看看它的示例性数据设置ROCR.simple

如果你的参考是在[0,1],你可以看看(免责声明:我的)包softclassval。 你必须从敏感性和特异性计算构建ROC / AUC,虽然。 所以,除非你想优化的算法(如ROCR开发者所做的那样),它可能会需要很长时间,太。 在这种情况下,你还必须考虑究竟敏感性和特异性应该是说,因为这是不明确的,在(0,1)的参考成员。

澄清的问题后更新

你需要知道分组的参考或实际在一起失去信息。 例如,如果你有实际= 0.5,预测= 0.8,那是什么意思? 假设这些值是真正实际= 5/10和预测= 5/10。 通过总结10次试验分为两个数字,你失去了相同的 5出10是否意味着与否的信息。 没有这一点,实际= 5/10和预测= 8/10是30%和70%的正确识别之间的任何一致的!

在此处,灵敏度被讨论(即正确识别例如点击目标的)的图示:

你可以找到整个海报和两个PRESENTAIONS在讨论这类问题softclassval.r-forge.r-project.org ,部分“关于softclassval”。

去与这些想法,平均的加权变是绝对的,均方,均方根误差等可以被使用。

然而,所有这些不同的方式来表达模型的相同的性能特性(例如灵敏度=实际的点击事件的%正确认可)并具有不同的含义,并且当它们与在明确的参考和预测的情况下的通常的计算重合,它们将与不明确的引用/分基准类别成员不同的反应。

还要注意,如使用在连续的值[0,1]两个参考/实际和预测,整个测试将被冷凝成在ROC的一个点(不是线!)或特异性灵敏度曲线图。

底线:数据的分组让你在这里闹事。 所以,如果你能以某种方式得到的单次点击的信息,去得到它!



Answer 2:

您可以使用其他错误措施评估方法的性能? (例如,平均绝对误差,均方根误差)?

这篇文章也可以帮助你,但如果你有观测值和预测值不同数量的类别,那么你可能会遇到一些问题。

https://stat.ethz.ch/pipermail/r-help/2008-September/172537.html



文章来源: R fast AUC function for non-binary dependent variable
标签: r roc