我有一些训练数据,我将其随机分成两部分:
- 70% -> train_train
- 30% -> train_cv(用于交叉验证)
我使用train_train拟合glm(glmnet)模型,然后使用train_cv进行交叉验证。
我的问题是,对于train_train和train_cv的不同随机分割会导致不同的交叉验证结果(使用曲线下面积“AUC”评估):
AUC = 0.6381583 第一次
AUC = 0.6164524 第二次
有没有办法在不重复代码的情况下运行多个交叉验证?
我有一些训练数据,我将其随机分成两部分:
我使用train_train拟合glm(glmnet)模型,然后使用train_cv进行交叉验证。
我的问题是,对于train_train和train_cv的不同随机分割会导致不同的交叉验证结果(使用曲线下面积“AUC”评估):
AUC = 0.6381583 第一次
AUC = 0.6164524 第二次
有没有办法在不重复代码的情况下运行多个交叉验证?
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")
cvFit
还需要参数K
(交叉验证折数)和R
(使用不同随机分割进行交叉验证的次数)。