0

我正在尝试计算AUC一个大型数据集,并且无法找到一个既能处理不仅仅是 0 或 1 的值又能合理快速地工作的数据集。

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

请注意,我的所有值都介于 0 - 1 之间,但不一定是 1 或 0。

编辑:答案和预测都在 0 - 1 之间。

有什么建议么?

编辑2:

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可以处理Ex.3,但计算时间很长。我希望对于像 Ex.3 这样的情况有更快的实现。

4

2 回答 2

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 个测试汇总为两个数字,您会失去关于 10 个测试中相同的5 个是否有意义的信息。没有这个,实际 = 5/10 和预测 = 8/10 与 30 % 到 70 % 的正确识别率一致!

这是讨论敏感性的示例(即正确识别,例如点击):

柔软而

您可以在softclassval.r-forge.r-project.org的“关于 softclassval”部分找到讨论此类问题的完整海报和两个演示文稿。

继续这些想法,也可以使用平均绝对值、均方、均方根等误差的加权版本。

然而,所有这些表达模型相同性能特征的不同方式(例如,灵敏度 = 对实际点击事件的正确识别率)确实具有不同的含义,尽管它们与明确的参考和预测情况下的通常计算一致,他们会对不明确的引用/部分引用类成员做出不同的反应。

另请注意,当您将 [0, 1] 中的连续值用于参考/实际和预测时,整个测试将被压缩为 ROC 或特异性敏感性图中的一个点(而不是一条线!)。

底线:数据的分组给你带来了麻烦。因此,如果您能以某种方式通过单击获取信息,那就去获取吧!

于 2012-05-23T18:25:05.890 回答
1

您可以使用其他误差度量来评估方法性能吗?(例如平均绝对误差、均方根误差)?

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

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

于 2012-05-24T11:43:47.047 回答