我使用ROCR包来绘制彩色roc曲线。曲线本身没有任何问题,看起来很好很好,但调色板显示截止点大于1,这是不正确的,因为这些是概率,应该在0到1的范围内。我检查了我的数据集几次,但它似乎没问题,我的数据集没有任何问题。
以下是代码以及预测值及其相应的标签。here is the plotted roc curve for my classification
我最初的猜测是ROCR包中有一个错误,但我不完全确定。任何帮助解决它将不胜感激。
library(ROCR)
labels <-c(1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)
scores<-c(1,1,1,0.8,1,1,1,0.95,1,1,1,1,1,0,0,0,0,0,0,0.97,0,0,0,0,0,0,0,0,0,0,0,0.206,0)
pred<-prediction(scores,labels)
perf<-performance(pred,"tpr","fpr")
plot(perf,colorize=TRUE)
答案 0 :(得分:0)
似乎您在ROCR
中发现了由第一个cutoff
Inf
引起的错误,这反过来导致alpha.values
的第一个条目成为Inf
}以及:
> attributes(pred)$cutoffs[[1]]
[1] Inf 1.000 0.970 0.950 0.800 0.206 0.000
> attributes(perf)$alpha.values[[1]]
[1] Inf 1.000 0.970 0.950 0.800 0.206 0.000
到目前为止,这不会是一个问题,但似乎alpha.values
用于着色,这可能会导致这种奇怪的行为。将第一个条目设置为1
而不是Inf
可以解决此问题,可以将其用作此问题的快速解决方法:
> attributes(perf)$alpha.values[[1]][1] <- 1
> attributes(perf)$alpha.values[[1]]
[1] 1.000 1.000 0.970 0.950 0.800 0.206 0.000
> plot(perf,colorize=TRUE)