使用R的ROCR图

时间:2012-12-21 20:05:41

标签: r csv roc

我有一个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文件有问题吗?

1 个答案:

答案 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