我現在的問題:我用caret
包生成分類預測模型和我的意思來驗證我的模型與具體的指標(AUC ROC)。 AUC度量可用於訓練集(內部驗證)訓練模型,但不能預測(外部驗證)。曲線下面的pROC區域是否不正確?
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
結論:
結果:AUC(internal validation) != AUC(external validation)
而我用相同的數據(訓練集)來檢查我的依靠外部驗證標準。在最好的情況下,我應該能夠獲得0.83的最大值。然而,這似乎很奇怪,我認爲AUC(internal validation) < AUC(external validation).
我也沒辦法解決這個謎(8 /懷疑)。歡迎所有協助。
我建議建立一些數據表格摘要,獲得一對夫婦的說明你的問題地塊,再不敢在這裏發佈了這個問題,但在堆棧交換稱爲「交叉驗證」。那些人專門研究這類問題。雖然也有很多人在這裏閒逛,但你還沒有給我們太多的東西繼續下去。 –
到底有多不同?由於訓練集中的AUC將比「高概率」測試集高,但這並不意味着它不會發生。現在,如果它的實際情況不同,那麼可能會出現一些時髦的事情。 – mbiron
差值= 0.08(〜10%)。我試過'pROC','ROCR'和'puSummary'(這裏介紹的功能(https://github.com/benmack/oneClass/blob/master/R/puSummary.R))。所有給我相同的結果(AUC = 0.9057) –