随机森林修剪

时间:2015-07-24 12:54:12

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

我有随机森林回归者。它非常重,1.6 GBytes,在预测值时工作时间很长。

我想修剪它来打火机。据我所知,决策树和森林没有实施修剪。我不能自己实现它,因为树代码是用C编写的,我不知道。

有谁知道解决方案?

2 个答案:

答案 0 :(得分:2)

树木的大小可以为您提供解决方案。尝试限制森林中树木的大小(最大叶子节点,最大深度,最小样本分割...)。

答案 1 :(得分:0)

您可以尝试整体修剪。这归结为从您的随机森林中移除一些构成它的决策树。

如果随机移除树木,预期的结果是集成的性能会随着移除树木的数量而逐渐恶化。但是,您可以做一些更聪明的事情,例如移除那些预测与集成其余部分的预测高度相关的树,从而显着修改整个集成的结果。

或者,您可以训练一个线性分类器,该分类器使用单个集成的输出作为输入,并在训练中包含某种 l1 惩罚以对分类器实施稀疏权重。值为 0 或非常小的权重将暗示哪些树可以从集成中移除,而对准确性的影响很小。