这里有一些令人困惑的事情。我认为你所描述的更多的是标准的训练/测试分割,交叉验证通常用于不同的方面。所以你已经拿出了30%的数据进行测试,这是很好的,你可以用它来找出你的训练集估计的AUC是多么乐观。但是,当然,估算取决于你如何进行火车/测试分割,并且知道这个测试性能有多大变化是一件好事。您可以使用多次交叉验证来实现此目的。
交叉验证从只使用一个不渗透性组稍微 - 5次交叉验证,例如,包括以下步骤操作:
随机
- 分裂完整数据集分为五个相等大小的部分。
- 对于i = 1到5,将模型拟合到除第i部分之外的所有数据。
- 从适合度评估AUC。
- 平均五个AUC结果。
该过程可以重复多次以估计超出样本估计的均值和方差。
R软件包cvTools允许您执行此操作。例如,
library(ROCR)
library(cvTools)
calc_AUC <- function(pred, act) {
u<-prediction(pred, act)
return(performance(u, "auc")@y.values[[1]])
}
cvFit(m, data = train, y = train$response,
cost = calc_AUC, predictArgs = "response")
将使用AUC作为性能指标执行模型m的5倍交叉验证。 cvFit
也需要参数K
(交叉验证折叠的次数)和R
(用不同随机分割执行交叉验证的次数)。
有关交叉验证的更多信息,请参阅http://en.wikipedia.org/wiki/Cross-validation_(statistics)。
对于我自己,我问这个问题和你一样多,但难道你不能只是平均AUCs? (作为一个问题而不仅仅是一个答案) – Vincent
所以你会随机分裂你的数据两次,并想知道为什么你会得到不同的结果? – rawr