我有一个由20个特征和大约300,000个观测值组成的数据集。我正在使用插入符号来训练带有doParallel和四个核心的模型。对于我尝试的方法(rf,nnet,adabag,svmPoly),即使对我的数据进行10%的训练也需要超过8小时。我正在重新采样3次,我的tuneLength是5.我能做些什么来加速这个令人痛苦的缓慢过程吗?有人建议使用底层库可以将我的过程加速到10倍,但在我走这条路之前,我想确保没有其他选择。
答案 0 :(得分:17)
phiver
击中了头部的钉子,但是,对于这种情况,有一些事情需要建议:
最高
答案 1 :(得分:15)
在比较底层模型和使用插入符号时,人们忘记的是插入符号有很多额外的东西。
以你的随机森林为例。所以bootstrap,3号和tuneLength 5。 所以你重新采样3次,并且由于tuneLength,你试图为mtry找到一个好的值。总共运行15个随机森林并比较这些森林以获得最终模型的最佳森林,而如果使用基本随机森林模型则只需1个森林。
此外,您在4核心上并行运行并且随机森林需要所有可用的观察结果,因此您的所有训练观察结果将是内存中的4次。可能没有多少记忆用于训练模型。
我的建议是开始按比例缩小以查看是否可以加快速度,例如将引导数设置为1并将长度调整回默认值3.甚至将traincontrol方法设置为“none”,只是为了得到一个关于模型在最小设置上的速度以及没有重新采样的想法。
答案 2 :(得分:1)
@phiver和@topepo的精彩投入。我将尝试总结并添加一些我从一些SO帖子中收集到的更多信息,这些信息是我为类似问题所做的: