Раскрашенная кривая ROC со значениями отсечки больше единицы в пакете ROCR

Я использовал пакет ROCR для построения раскрашенной кривой ROC. Сама кривая не имеет никаких проблем и выглядит красиво и хорошо, но палитра показывает, что точки отсечки больше 1, что неверно, так как это вероятности и должны быть в диапазоне от 0 до 1. Я проверил свой набор данных несколько раз, но он Кажется, все в порядке, и с моим набором данных все в порядке.

Вот код вместе со значениями прогнозов и соответствующими им метками.

Мое первоначальное предположение состоит в том, что в пакете 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)

person Rahman    schedule 31.05.2016    source источник


Ответы (1)


Кажется, вы нашли ошибку в 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)

РПЦ

person geekoverdose    schedule 31.05.2016
comment
Привет гиковская передозировка. Спасибо, это верно. Сейчас это кажется разумным :) - person Rahman; 31.05.2016