【问题标题】:Averaging Multiple Random Forest Models in scikit-learn在 scikit-learn 中平均多个随机森林模型
【发布时间】:2018-06-05 10:16:52
【问题描述】:

我有一个非常大的数据集,想在数据集的分区上训练几个随机森林模型,然后对这些模型进行平均以得出我的最终分类器。由于随机森林是一种集成方法,因此这是一种直观合理的方法,但我不确定是否可以使用 scikit-learn 的随机森林分类器。有任何想法吗?

我也愿意使用另一个包中的随机森林分类器,只是不知道在哪里看。

【问题讨论】:

  • 为什么不在数据的分区上训练基础学习者(树),然后将它们平均起来得到一个随机森林?
  • 很好,这种方法实际上是等效的,因为多棵树是在同一个分区上训练的。你知道我可以用来构建这个的任何参考吗?

标签: python machine-learning scikit-learn random-forest


【解决方案1】:

这是我能想到的:

  1. 熊猫 + Scikit: 您可以自定义您自己的引导算法,从整个数据集中随机读取一个合理大小的样本,并在它们上拟合 scikit 树(如果您在每个节点处随机化特征将是完美的)。然后腌制每棵树,最后将它们平均出来,得到你的随机森林。

  2. Graphlab + SFrameTuri 有自己的大数据库(SFrame,类似于 Pandas)和机器学习库(graphlab,非常类似于 scikit)。环境非常优美。

  3. Blaze-Dask 对某些人来说可能会有些陡峭的学习曲线,但会是一个有效的解决方案。

  4. 您也可以使用内存映射 numpy 选项,但它会比前三个选项更麻烦,而且我从未这样做过,所以我将把这个选项留在这里。

总而言之,我会选择选项 2。

【讨论】:

  • 对于选项 1,知道如何平均腌制树吗?否则,一个非常有帮助的答案。
  • 您可以将所有树保存到同一个泡菜中,然后一次加载所有树。这个线程可以帮助你做到这一点:stackoverflow.com/questions/46874061/…。最重要的是,我只需编写一个简单的函数来预测每个未腌制的树。当我很快进行实际编码时,我会更新我的答案。
猜你喜欢
  • 2015-04-13
  • 2017-03-26
  • 2015-03-28
  • 2013-04-26
  • 2015-08-26
  • 2015-09-16
  • 2016-06-22
  • 2015-02-20
  • 2015-04-16
相关资源
最近更新 更多