2016-07-24 11 views
0

這個問題是基於:循環無法正常運轉的預期R,而調整xgboost參數

xgboost in R: how does xgb.cv pass the optimal parameters into xgb.train

我試圖循環類似,不同的參數:

for (iter in 1:100){ 

param <- list(objective = "binary:logistic", 
       eval_metric = "auc", 
       max_depth = sample(2:6,1), 
       eta = runif(.01,.1,.05), 
       gamma = runif(.01,.05,.1), 
       subsample = runif(.9,.8,.7), 
       colsample_bytree = runif(.8,.9,.5), 
       min_child_weight = sample(30:100,1), 
       max_delta_step = sample(1:10,1) 
) 

但拋出錯誤,因爲參數在第一次迭代時取值如下:

max_depth : int 6 
eta : num(0) 
gamma: num(0) 
subsample : num(0) 
colsample_bytree : num(0) 
min_child_weight: int 63 
max_delta_step: int 2 

什麼可能導致此行爲?

回答

0

好像我得到了runif函數錯誤。

這似乎是工作:

param <- list(objective = "binary:logistic", 
       eval_metric = "auc", 
       max_depth = sample(2:6,1), 
       eta = runif(1,.01,.05), 
       gamma = runif(1,.01,.1), 
       subsample = runif(1,0.6,0.9), 
       colsample_bytree = runif(1,.5,1), 
       min_child_weight = sample(30:100,1), 
       max_delta_step = sample(1:10,1)