如何用R中的并行计算来估算运行ML代码的时间?

时间:2016-06-10 21:38:57

标签: r parallel-processing r-caret

我是并行计算和R中的ML的新手。所以,我发现当程序在运行超过15分钟后无法完成时会感到担心,因为我不知道我应该在多长时间内获得并行计算的机器学习程序采取或如何计算程序运行所需的时间。

以下是我尝试过的ML和并行计算的代码,它在20分钟后无法完成。任何人都可以建议一种方法来计算我应该等待多长时间等待在以下代码上运行带有14列的200000行数据?或者我的代码有问题吗?

library(doMC)
registerDoMC(cores = 2)
set.seed(7)

fit.svmRadial <- train(gap~., data=trainingDataML, method="svmRadial", metric="RMSE",
    trControl=trainControl)
# summarize fit
print(fit.svmRadial)


library(parallel)
detectCores() # output: 4 cores

Mac信息是 enter image description here

1 个答案:

答案 0 :(得分:1)

我没有在Macbook上并行化计算的经验,但我可能会提供一些建议,因为我通常运行需要数小时或数天完成的ML算法。

1。 15分钟不长

对于200,000行数据,15分钟根本不长!让它在夜间或在后台执行时执行。

2。子集输入数据并估计完整运行时间

正如本建议我将训练数据从200,000行分配到2000,并跟踪计算所需的时间。我个人使用此代码输出计算时间。

sys.time = proc.time()
code...
print(proc.time() - sys.time);remove(sys.time)

对于多种尺寸的训练数据(至少3个,因为它不是线性的!)执行此操作,您可以推断为完整的200,000行。如何选择子集大小没有硬性规定,所以要谨慎并从小处开始 - 为了获得更好的预测,没有必要花一个小时来运行一半的子集!