一、混淆矩阵
caret
包,构建混淆矩阵
confusionMatrix(预测结果类标签,真实结果类标签)
#这里要求函数的两个参数为因子变量
二、ROC曲线
ROC曲线:接收者操作特征曲线,显示了给定模型的真正例率(TPR)和假正例率(FPR)之间的权衡。
垂直轴表示TPR:sensitivity
水平轴表示FPR:1-specificity
R语言实现需要使用
ROCR
包和gplots
包
label<-c(1,1,-1,1,1,-1,-1,-1,1,-1) #1——P;-1——N
score<-c(0.9,0.8,0.7,0.6,0.55,0.54,0.53,0.51,0.50,0.40)
library(ROCR)
#得到tp,fp,tn,fn对应的数目
pred<-prediction(score,label)
#计算曲线下面积
AUC<-performance(pred,"auc")
AUCValue<-AUC@y.values[[1]]
#得到tpr和fpr,画ROC曲线
perf<-performance(pred,"tpr","fpr")
plot(perf,col="blue")
#在原来的图上继续画ROC曲线
dat<-c(rep(1,20),rep(-1,20))
labelr<-dat[sample(40)]
scorer<-runif(40,0,1)
predr<-prediction(scorer,labelr)
perfr<-performance(predr,"tpr","fpr")
plot(perfr,add=TRUE, col="green")
#曲线下面积
AUCr<-performance(predr,"auc")
AUCValuer<-AUCr@y.values[[1]]