如何在 R 中估算 运行 具有并行计算的 ML 代码的时间?

How to approximate the time for running a ML code with parallel computing in R?

我是 R 中的并行计算和 ML 的新手。因此,当程序在 运行 超过 15 分钟后无法完成时,我感到很担心,因为我不知道我应该期待多长时间Machine 学习程序在并行计算上会花费或如何计算程序需要的时间运行。

以下是我试过的关于ML和并行计算的代码,20分钟后无法完成。任何人都可以建议一种方法来确定我应该等待多长时间 运行ning 200000 行数据,其中包含以下代码的 14 列?还是我的代码有问题?

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 信息是

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

1。 15分钟不算长

20万行数据,15分钟一点都不长!让它在夜间执行或在您做其他工作时在后台执行。

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

正如 Ben 所建议的那样,我会将训练数据从 200,000 行划分为 2000 行,并跟踪计算所需的时间。我个人使用这段代码来输出计算时间。

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

对多种大小的训练数据执行此操作(至少 3 种,因为它不是线性的!),您可以外推到完整的 200,000 行。对于如何 select 子集大小没有硬性规定,因此要谨慎并从小处着手 - 等待一个小时到 运行 一半子集只是为了获得更好的预测是没有意义的!