我已经使用差异演化优化软件包(DEoptim)对lightgbm模型进行了超参数优化。当我在本地(win10,8核12G RAM)计算机上运行并行群集处理时,它工作正常。但是,当我在Google VM(Ubuntu 18.04 32核120G RAM)上部署代码时,代码似乎永远运行,而不是输出。
任何建议都值得赞赏!
library(lightgbm)
library(data.table)
library(dplyr)
library(DEoptim)
library(parallel)
train = fread('train.csv', header=T, sep=',')
dtrain = lgb.Dataset(as.matrix(train %>% select(-c(target, ID_code))),
label=train$target)
f_lgb = function(x){
params = list(objective="binary",
metric="AUC",
num_boost_round=200,
bagging_freq=5,
bagging_fraction=0.4,
boost_from_average=F,
feature_fraction=x[1],
learning_rate=x[2],
max_depth=x[3],
min_sum_hessian_in_leaf=x[4],
num_leaves=x[5],
boost_from_average=F
)
model = lgb.cv(params,
dtrain,
nfold=5,
verbose=-1,
early_stopping_rounds=100,
showsd = F,
num_threads = 8,
stratified=T)
return(-model$best_score)
}
cl = makeCluster(4)
clusterEvalQ(cl, library(lightgbm))
clusterExport(cl, 'dtrain')
out = DEoptim(f_lgb,
lower = c(0.05, 0.001, 2, 3, 10),
upper = c(0.3, 0.02, 6, 20, 50),
fnMap = function(x) c(x[1],
x[2],
round(x[3]),
round(x[4]),
round(x[5])),
control = DEoptim.control(itermax=10,
NP = 50,
CR = 0.9,
storepopfrom = 1,
cluster=cl
))