Можно ли вставить строку без дискриминации на графике ROC, используя ggroc? - PullRequest
0 голосов
/ 08 января 2019

Я создал график ROC с несколькими кривыми ROC, используя ggroc на основе pROC. Как я могу вставить строку без дискриминации?

Мне бы хотелось, чтобы на моем графике была линия без различия от 0,0 до 1,1, чтобы я мог лучше визуально оценить свои ROC-кривые.

Я попытался использовать функцию plot () для моего объекта ggplot, и я безуспешно пытался использовать + geom_abline () и функцию lines ().

library(pROC)

#Creating curves and labeling)
ROC_curves <- ggroc(list(log=ROC_log, tree=ROC_tree, xgbt=ROC_xgbt), legacy.axes=TRUE)

ROC_curves2 <- ROC_curves + xlab("FPR") + ylab("TPR")
#but this part doesn't Work: 
+ qplot(1,1) + geom_abline(intercept=0, slope=1)

Я также пытался сделать: сюжет (ROC_curves2, личность = ИСТИНА)

Мне бы хотелось, чтобы на моем графике линия без дискриминации проходила от 0,0 до 1,1.

При добавлении qplot (1,1) + geom_abline () я получаю «Ошибка: не знаю, как добавить o к графику». При использовании plot () график возвращается, но без линии.

1 Ответ

0 голосов
/ 08 января 2019

ROC_curves уже возвращает график ggplot. Добавление нового графика с qplot невозможно и не нужно, просто добавьте geom_abline напрямую:

ROC_curves + xlab("FPR") + ylab("TPR") + 
    geom_abline(intercept = 0, slope = 1,
                color = "darkgrey", linetype = "dashed")

Аблина выходит за пределы кривой ROC. Чтобы избежать этого, вы можете использовать geom_segment вместо:

ROC_curves + xlab("FPR") + ylab("TPR") + 
    geom_segment(aes(x = 0, xend = 1, y = 0, yend = 1),
                 color="darkgrey", linetype="dashed")

Также обратите внимание, что если вы не используете legacy.axes=TRUE, вам нужно иметь intercept = 1, чтобы линия пересекала линию 0 в правом верхнем углу.

... + geom_segment(aes(x = 0, xend = 1, y = 0, yend = 1)) # legacy.axes = TRUE
... + geom_segment(aes(x = 1, xend = 0, y = 0, yend = 1)) # legacy.axes = FALSE
...