ROC的全称是“受试者工作特征”(Receiver Operating Characteristic)曲线,ROC是一个用于度量分类中的非均衡性的工具,ROC曲线及AUC常被用来评价一个二值分类器的优劣。 ROC曲线是以真阳性率(灵敏度)为纵坐标,假阳性率(1-特异度)为横坐标绘制的。
下图给出了混淆矩阵的相关定义:
一般我们用R包pROC来绘制ROC曲线,但是调整参数是一个很麻烦的事情,下面给出一个我调好的ROC曲线绘制参数,供参考:
library(pROC)
# plot ROC
x1<-plot.roc(A.train,predA.train,
smooth=F,
lwd=2,
ylim=c(0,1),
xlim=c(1,0),
legacy.axes=T,
main="",
col="red",
xaxs="i",
yaxs="i",
font=2,
font.lab=2)
x2<-plot.roc(B.train,predB.train,
smooth=F,
add=T,
lwd=2,
ylim=c(0,1),
xlim=c(1,0),
legacy.axes=T,
main="",
col="seagreen3",
xaxs="i",
yaxs="i",
font=2,
font.lab=2)
x3<-plot.roc(C.train, predC.train,
smooth=F,
add=T,
lwd=2,
ylim=c(0,1),
xlim=c(1,0),
legacy.axes=T,
main="",
col="black",
xaxs="i",
yaxs="i",
font=2,
font.lab=2)
abline(h = 1:1, v = 1:1, col = "black")
# add figure legend
legend.name <- c(paste("A:AUC",sprintf("%.2f",x1[["auc"]])),
paste("B:AUC",sprintf("%.2f",x2[["auc"]])),
paste("C:AUC",sprintf("%.2f",x3[["auc"]])))
legend("bottomright",
legend=legend.name,
lwd = 2,
col = c("red","blue", "black"),
bty="n")
结果: