【发布时间】:2014-10-28 00:18:39
【问题描述】:
我在 16 核机器上运行 glmnet,支持 lasso 回归。我有大约 800K 行和大约 2K 列的稀疏矩阵格式,应该训练它们来预测第一列中的概率。
这个过程变得非常缓慢。我想知道,有没有办法加快速度 通过并行化 nfolds 或者如果我可以选择较少数量的行而不影响准确性。可能吗?如果是这样,什么会更好?
【问题讨论】:
标签: r parallel-processing machine-learning sample
我在 16 核机器上运行 glmnet,支持 lasso 回归。我有大约 800K 行和大约 2K 列的稀疏矩阵格式,应该训练它们来预测第一列中的概率。
这个过程变得非常缓慢。我想知道,有没有办法加快速度 通过并行化 nfolds 或者如果我可以选择较少数量的行而不影响准确性。可能吗?如果是这样,什么会更好?
【问题讨论】:
标签: r parallel-processing machine-learning sample
这个过程可以通过使用并行化来加速,正如上面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 值的判断调用。如果它高于阈值,并且减少行数不会影响这一点,那么这当然是一个好主意。
【讨论】: