提高插入符号模型训练速度(R)

Ale*_*vid 12 performance r machine-learning r-caret

我有一个由20个特征和大约300,000个观测值组成的数据集.我正在使用插入符号来训练带有doParallel和四个核心的模型.对于我尝试的方法(rf,nnet,adabag,svmPoly),即使对我的数据进行10%的训练也需要8个多小时.我正在重新采样3次,我的tuneLength是5.我能做些什么来加速这个令人痛苦的缓慢过程?有人建议使用底层库可以加快我的过程10倍,但在我走下去之前我想确保没有其他选择.

top*_*epo 17

phiver 击中头部的钉子,但是,对于这种情况,有一些事情要建议:

  • 确保使用并行处理不会耗尽系统内存.使用X worker 时,您在内存中制作X额外的数据副本.
  • 如果课程不平衡,额外的抽样可以提供帮助.下采样可能有助于提高性能并缩短时间.
  • 使用不同的库.游侠而不是randomForest,xgboostC5.0而不是gbm.你应该意识到,集合方法适合大量的组成模型,并且必然需要一段时间才能适应.
  • 该软件包具有赛车型算法,可在更短的时间内调整参数
  • github上的开发版本具有随机搜索方法,用于具有大量调整参数的模型.

马克斯


phi*_*ver 15

人们在比较底层模型和使用插入符号时忘记的是,插入符号有很多额外的东西在继续.

以你的随机森林为例.所以bootstrap,number 3和tuneLength 5.所以你重新采样3次,并且因为tuneLength你试图为mtry找到一个好的值.总共运行15个随机森林并比较这些森林以获得最终模型的最佳森林,而如果使用基本随机森林模型则只需1个森林.

此外,您在4核上并行运行,随机森林需要所有可用的观测,因此您的所有训练观察结果将是内存的4倍.可能没有多少记忆用于训练模型.

我的建议是开始按比例缩小以查看是否可以加快速度,例如将引导数设置为1并将长度调整回默认值3.甚至将traincontrol方法设置为"none",只是为了了解如何快速模型是在最小设置和没有重新采样.