我有一个csv文件(tab deliminated),其中包含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文件有问题吗?
答案 0 :(得分:1)
我的猜测是您的数组索引设置不正确。如果你读入那个CSV文件,你应该期待一个data.frame(想想矩阵或2D数组,取决于你的背景),有两列和5,000多行。
因此,您当前对p[1]
或p[2]
的来电并不是特别有意义。您可能希望访问该data.frame的第一个和第二个列,您可以使用第一列的p[,1]
语法和第二列的p[,2]
语法。
然而,您遇到的具体错误是抱怨您使用的“真相”变量不是二进制。您的文件似乎设置为输出为1和0,因此一旦您正确访问阵列,此错误可能会消失。但是如果您将来遇到这种情况,请务必在使用之前将您的真相数据二进制化。例如:
p[,2] <- p[,2] != 0
如果值为零,则将值设置为FALSE
;对于列中的每个非零单元格,将值设置为TRUE
。