0

我有一个 csv 文件(制表符分隔),其中包含 2 列,看起来像这样

5   0
6   0
9   0
8   1
"+5000 lines similar lines"

我正在尝试使用 ROCR 创建 ROC 图。

这是我到目前为止所尝试的:

p<-read.csv(file="forROC.csv", head=TRUE, sep="\t")
pred<-prediction(p[1],p[2])

第二行给了我一个错误:Error in prediction(p[1], p[2]) : Number of classes is not equal to 2. ROCR currently supports only evaluation of binary classification tasks.

我不确定错误是什么。我的 CSV 文件有问题吗?

4

1 回答 1

1

我的猜测是您的数组索引设置不正确。如果您阅读该 CSV 文件,您应该会看到一个包含两列和 5,000 多行的 data.frame(想想矩阵或二维数组,具体取决于您的背景)。

因此,您当前对p[1]orp[2]的调用并没有特别的意义。您可能想要访问该 data.frame 的第一列和第二,您可以使用p[,1]for the first column 和p[,2]for the second 的语法来执行此操作。

但是,您遇到的具体错误是抱怨您使用的“真相”变量不是二进制的。您的文件似乎设置为输出 1 和 0,因此一旦您正确访问数组,此错误可能会消失。但是如果以后遇到这种情况,请务必在使用之前对真实数据进行二值化处理。例如:

p[,2] <- p[,2] != 0

将值设置为FALSE如果它是零,并且TRUE对于列中的每个非零单元格。

于 2012-12-21T20:12:50.927 回答