【发布时间】:2018-10-23 17:29:27
【问题描述】:
我的预测栏有垃圾邮件,不是垃圾邮件,而且无法定义。我使用了集成方法-堆叠方法来预测它。我能够获得大约 77% 的准确度我能够绘制 ROC 曲线,但我认为它不正确。
集成技术代码:
# Generate level-one dataset for training the ensemble metalearner
predDF <- data.frame(dataTest.pred, NB_Predictions, RF_Predictions,SVM_Predictions, spam = validation$spam, stringsAsFactors = F)
# Train the ensemble
# define training control
set.seed(1958)
# Train the ensemble
modelStack <- caret::train(spam ~ ., data = predDF, method = "rf")
这是我的 ROC 代码:
#ROC Curve
pre<-predict(modelStack, testPredLevelOne,type='prob')
# AUC measure
modelroc = mean(
c(as.numeric(multiclass.roc(testPredLevelOne$spam, pre[,1])$auc),
as.numeric(multiclass.roc(testPredLevelOne$spam, pre[,2])$auc),
as.numeric(multiclass.roc(testPredLevelOne$spam, pre[,3])$auc)
)
)
我认为 AUC 度量也不正确。
> modelroc
[1] 0.500903
这是我尝试绘制 ROC 曲线的另一种方法。我认为这也行不通。
#Method 2 ROC
predictions<-as.numeric(predict(modelStack, testPredLevelOne))
roc.multi<-multiclass.roc(testPredLevelOne$spam,predictions)
auc(roc.multi)
rs <- roc.multi[['rocs']]
plot.roc(rs[[1]])
sapply(2:length(rs),function(i) lines.roc(rs[[i]],col=i))
剧情如下:
有人可以帮我解决这个问题吗?非常感谢。
【问题讨论】:
-
我认为
auc的值符合情节。这绝对不是一个好模型。
标签: r machine-learning classification roc