我当前的问题:我使用 caret
包来生成分类预测模型,我的意思是使用特定指标(AUC ROC)验证我的模型。 AUC指标可用于训练模型和训练集(内部验证),但不能预测(外部验证)。
1。内部验证:
Fit <- train(X, Y$levels, method= "svmRadial", trControl = fitControl, tuneLength = 20, metric = "ROC")
结果:
sigma C ROC Sens Spec ROCSD SensSD SpecSD
0.0068 2.00 0.83 0.82 0.57 0.149 0.166 0.270
2。外部验证:
为了访问外部验证AUC,我尝试预测我的训练集,并使用pROC
直接计算此指标。
predictions <- as.vector(predict(Fit$finalModel, newdata = X))
data <- data.frame(pred=as.numeric(predictions),obs=as.numeric(Y$levels))
pROC::roc(data$pred, data$obs)
结果:
Area under the curve: 0.9057
第3。结论:
结果:AUC(internal validation) != AUC(external validation)
而我使用相同的数据(训练集)来检查我的ROC外部验证标准。在最好的情况下,我应该能够获得0.83的最大值。但是,AUC(internal validation) < AUC(external validation).
我不知道解决这个谜(8- /持怀疑态度)。欢迎所有的帮助。