2017-08-30 91 views
0

我用mice创建一些多重插补数据集:对于α和拉姆达同时重复的λ和α交叉验证与glmnet/glmnetUtils

library(glmnetUtils) 
library(mice) 

nhanes <- mice::nhanes 
imp <- mice(nhanes) 
com <- complete(imp, "long") 

使用glmnetUtils,有可能交叉验证:

nhanes$hyp <- factor(nhanes$hyp) 
fit <- cva.glmnet(hyp ~ ., data = nhanes, alpha = seq(0, 1, 0.05), family = "binomial") 

问题:

  • 如何使用glmnetUtils运行重复交叉验证?
  • 我该如何平行化过程?我真正的训练数据集有71,200个观测值,大约需要4个小时才能完成一次交叉验证。

回答

0

要做并行计算,你只需要按照glmnetUtils手册。 就你而言,你可以做类似下面的事情。

numCores = detectCores(logical = FALSE) 
c1<-makeCluster(numCores) 
fit <- cva.glmnet(hyp ~ ., data = nhanes, alpha = seq(0, 1, 0.05), family = "binomial",outerParallel=c1)