首页 > 解决方案 > 堆叠模型上的 ROCR 曲线

问题描述

我正在做一个堆叠模型,我想使用 ROCR 库找到它的 ROC 曲线和 RAUC(曲线区域下的接收器),但不幸的是,roc 曲线显示了一个奇怪的图形这是到目前为止的代码

 library(caretEnsemble)
control <- trainControl(method="repeatedcv", number=10, repeats=3, savePredictions=TRUE, 
classProbs=TRUE,preProc=c("center","scale"))
algorithmList <- c( 'rpart', 'knn', 'nb')
set.seed(seed)
models <- caretList(Revenue~., data=training, trControl=control, methodList=algorithmList)
results <- resamples(models)
summary(results)
dotplot(results)
bwplot(results)

这将导致

Models: rpart, nb, knn 
Number of resamples: 30 

Accuracy 
           Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
rpart 0.7714286 0.8539916 0.8873016 0.8803097 0.9142857 0.9714286    0
nb    0.7777778 0.8865079 0.9142857 0.9137333 0.9428571 1.0000000    0
knn   0.7647059 0.8055556 0.8431373 0.8450825 0.8857143 0.9166667    0

Kappa 
           Min.   1st Qu.    Median      Mean   3rd Qu.      Max. NA's
rpart 0.4776119 0.6618591 0.7490016 0.7345538 0.8127266 0.9378330    0
nb    0.5485893 0.7595388 0.8059150 0.8126149 0.8779422 1.0000000    0
knn   0.3928571 0.5363648 0.6353245 0.6327338 0.7329892 0.8098592    0

将模型与最佳相关性结合起来

set.seed(seed)
stack.glm <- caretStack(models, method="knn", metric="Accuracy", trControl=stackControl)
print(stack.glm)

计算 ROC 曲线

library(ROCR)
lda.model <- predict(stack.glm,newdata = testing,type = 'prob')
lda.pre <- prediction(as.numeric(lda.model),as.numeric( testing$Revenue))
evl1 <- performance(lda.pre,"acc")
plot(evl1)

在此处输入图像描述

标签: r

解决方案


推荐阅读