在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
首先介绍一下几个基本概念:
然后用ROCR包画ROC曲线,但是ROCR包画图函数功能比较单一 # 设置工作空间 # 把“数据及程序”文件夹拷贝到F盘下,再用setwd设置工作空间setwd("F:/数据及程序/chapter6/示例程序") # 读取数据 testData <- read.csv("./data/testData.csv") # 读取模型,tree.model 和nnet.model分别是已建立的决策树和神经网络的模型 load("./tmp/tree.model.RData") load("./tmp/nnet.model.RData") library(ROCR) # 加载ROCR包 nnet.pred <- prediction(predict(nnet.model, testData), testData$class)#括号内是预测分类结果和实际分类结果 performance(nnet.pred ,'auc')@y.values #AUC值,ROC曲线下面积为AUC,用来评价分类器的综合性能,该数值取0-1之间,越大越好。 nnet.perf <- performance(nnet.pred, "tpr", "fpr")
或者nnet.perf <- performance(nnet.pred,'auc',"tpr","fpr")
plot(nnet.perf)# 画出CART决策的ROC曲线 tree.pred <- prediction(predict(tree.model, testData)[, 2], testData$class) tree.perf <- performance(tree.pred, "tpr", "fpr") plot(tree.perf) 接着利用pROC包画出ROC曲线,可以方便在一个图上比较两个分类器,实现两条ROC曲线画在同一个坐标轴内。 library(pROC) auc.polygon.col="skyblue", print.thres=TRUE) library(pROC) 数据使用包自带数据库 roc1 <- plot.roc(aSAH$outcome, aSAH$s100, main="Statistical comparison", percent=TRUE, col="1") ROC曲线是根据一系列不同的二分类方式(分界值或决定阈),以真正率(灵敏度)为纵坐标,假正率(1-特异度)为横坐标绘制的曲线。 testobj<- roc.test(roc1,roc2) text(50, 50, labels=paste("p-value =", format.pval(testobj$p.value)), adj=c(0, .5))legend("bottomright", legend=c("S100B", "NDKA"), col=c("1", "2"), lwd=2)
|
请发表评论