4

我有 sklearn 随机森林回归器。它非常重,1.6 GB,并且在预测值时工作很长时间。

我想修剪它以使其更轻。据我所知,对决策树和森林没有实施修剪。我自己无法实现它,因为树代码是用 C 编写的,我不知道。

有谁知道解决方案?

4

2 回答 2

3

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

于 2015-07-24T13:10:20.283 回答
0

你可以试试ensemble pruning。这归结为从您的随机森林中删除一些构成它的决策树。

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

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

于 2021-02-18T22:35:02.153 回答