我正在尝试在kaggle的xgboost
内核中对R
进行交叉验证。为此,我需要使用for循环。但是以下代码给出了这一点:
解析错误(text = x,srcfile = src):: 2:0:输入意外结束
如果代码中缺少某些内容,请有人帮助我。如果没有,还有其他解决方法吗?我是编码领域的新手:)
亲切的问候。
for(iter in 1:100){
param <- list(objective = "binary:logistic",eval_metric = "auc",num_class = 12,max_depth = sample(6:10, 1),eta = runif(1, .01, .3),gamma = runif(1, 0.0, 0.2), subsample = runif(1, .6, .9),colsample_bytree = runif(1, .5, .8), min_child_weight = sample(1:40, 1),max_delta_step = sample(1:10, 1))
cv.nround = 1000
cv.nfold = 5
seed.number<-sample.int(10000,1)
set.seed(seed.number)
mdcv <- xgb.cv(data=dtrain, params = param, nthread=6, nfold=cv.nfold, nrounds=cv.nround,verbose = F, early_stopping_rounds=8, maximize=TRUE)
max_auc = max(mdcv[,test.auc.mean])
max_auc_index = which.max(mdcv[,test.auc.mean])
if(max_auc > best_auc)
{best_auc = max_auc
best_auc_index = max_auc_index
best_seednumber = seed.number
best_param = param}}