问题描述
我正在尝试使用并行处理在R中运行for循环。我想在护林员模型上进行网格搜索,以测试模型中的不同组合,以查看在哪里可以最佳地调整模型。为了测试不同的调整方法,我需要对数据运行一个循环,代码如下:
# Creating simulations -------------------------------------------------
hyper_grid <- expand.grid(
num.trees = c(300),quant = c(0.94,0.95),mtry = c(5,4),nodSize = c(50,40),num_weeks_train = c(6,5),rmse = NA
);
For循环
foreach (j = seq_len(nrow(hyper_grid),.packages ='magrittr' )) %dopar% {
print(j)
# j = 1
fit = BVR_model_sim(
num_weeks_train = hyper_grid$num_weeks_train[j],data = df_base,quntile = hyper_grid$quant[j],start_week = 202001,end_week = 202016,ntrees = hyper_grid$num.trees[j],randMtry = hyper_grid$mtry[j],nodSize = hyper_grid$nodSize[j]
)
# hyper_grid$rmse[j] <- fit$prediction_error
sim_result <- rbind(sim_result,cbind(hyper_grid[j,],as.data.frame(fit$output)))
print(sim_result)
};
Error in seq_len(nrow(hyper_grid),.packages = "magrittr") :
2 arguments passed to 'seq_len' which requires 1
我的非并行循环运行得很好,但外观却很慢
for (j in seq_len(nrow(hyper_grid))) {
print(j)
# j = 1
fit = BVR_model_sim(
num_weeks_train = hyper_grid$num_weeks_train[j],as.data.frame(fit$output)))
print(sim_result)
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)