我正在运行glmnet,赞成在16核机器上进行套索回归。我有一些800K行,大约2K列,采用稀疏矩阵格式,应该训练以预测第一列中的概率。
这个过程变得非常缓慢。我想知道,有没有办法加快速度 或者通过在nfolds上并行化,或者如果我可以选择较少数量的行而不影响精度。可能吗?如果是这样,会有什么更好的?
答案 0 :(得分:1)
使用并行化可以加快进程,如上面的注释链接executing glmnet in parallel in R中所述,通过在cv.glmnet()函数中设置parallel = TRUE选项来完成,一旦指定了这样的核心数:
library(doParallel)
registerDoParallel(5)
m <- cv.glmnet(x, y, family="binomial", alpha=0.7, type.measure="auc",
grouped=FALSE, standardize=FALSE, parallel=TRUE)
根据测试集上的AUC值,减少行数更多是判断调用。如果它高于阈值,并且减少行不会影响这一点,那么这肯定是一个好主意。