scikit learn中的RandomForestClassifier与ExtraTreesClassifier比较

104
有人能解释一下scikit-learn中RandomForestClassifier和ExtraTreesClassifier之间的区别吗?我花了很多时间阅读这篇论文: P. Geurts,D. Ernst。和L. Wehenkel,“Extremely randomized trees”,机器学习,63(1),3-42,2006年。看起来这是ET的差异:
1)在选择分割变量时,从整个训练集中抽取样本,而不是从训练集的引导样本中抽取样本。
2)在每个分裂点上,完全随机地从样本的值范围中选择分裂。
这两个因素的结果是有更多的“叶子”。

7
我对“extratreeclassifier”(极端随机森林分类器)如此感兴趣的原因是,我在一个特定问题上使用ET获得了更好的结果。我的特征向量很大,有超过200个变量,而且这些变量非常嘈杂。标准的RDF分类器效果很差,但ET却能获得F1得分高达90%以上的结果。这些类别不平衡,正类样本相对较少,负类样本较多。 - denson
请参阅此更近期的答案:https://stats.stackexchange.com/questions/175523/difference-between-random-forest-and-extremely-randomized-trees - Archie
3个回答

64

是的,这两个结论都是正确的,虽然scikit-learn中的Random Forest实现可以启用或禁用bootstrap重抽样。

实践中,RF比ET更紧凑。从计算角度来看,ET通常更便宜,但可能会变得更大。ET有时可以比RF更好地进行泛化,但如果没有尝试过两种方法并通过交叉验证网格搜索调整n_estimators、max_features和min_samples_split,很难猜测何时发生这种情况。


26

ExtraTrees分类器总是在部分特征上测试随机分裂(与RandomForest相比,它会在部分特征上测试所有可能的分裂)


14
我很惊讶这个评论字字珠玑地回答了一个Coursera测验题。 - Bob
是的,@Bob。我觉得这个答案非常有用,所以我在这里发布了它,它可以帮助其他人理解极端随机森林和随机森林之间的区别。 - Muhammad Umar Amanat
4
同样来自同一门课程,这个答案很有帮助! - killezio
是的,@skeller88,这门课程非常棒。你也应该看看这个链接:https://www.coursera.org/learn/competitive-data-science?specialization=aml - Muhammad Umar Amanat

0
随机森林和极端随机森林(通常称为extra trees)之间的主要区别在于,对于正在考虑的每个特征,而不是计算局部最优的特征/分裂组合(对于随机森林),选择一个随机值以进行分裂(对于extra trees)。以下是了解它们更详细的差异的好资源:随机森林 vs extra tree。

3
我认为你想要粘贴一个链接。 - Tomasz Gandor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接