RandomForestClassifier 与 BaggingClassifier 不同

Posted

技术标签:

【中文标题】RandomForestClassifier 与 BaggingClassifier 不同【英文标题】:RandomForestClassifier differ from BaggingClassifier 【发布时间】:2015-03-29 17:33:38 【问题描述】:

baseestimator=RandomForestClassifier 中使用BaggingClassifierRandomForestClassifiersklearn 中的RandomForestClassifier 有何不同?

【问题讨论】:

我想你的意思是 BaggingClassifierbase_estimator=DecisionTreeClassifier 对吧? with base_estimator=RandomForestClassifer(),我们不能用吗? 你可以,但我不明白这一点。 【参考方案1】:

RandomForestClassifierBaggingClassifier 一样通过 bagging 从外部引入随机性(相对于单个树拟合)。

但是,它通过对候选拆分的特征列表进行二次采样,在树构造过程的深处也注入了随机性:在每次新拆分时都会考虑一组新的随机特征。这种随机性是通过RandomForestClassifiermax_features 参数控制的,在BaggingClassifier(base_estimator=DecisionTreeClassifier()) 中没有等效参数。

【讨论】:

但是 BaggingClassifier 也有参数 max_features?那它有什么不同呢?对于 n_estimators=500 BaggingClassifier 不起作用,但在 RandomForestClassifier 中它起作用了,所以我想知道是什么导致了这两种情况下如此大的时间和内存差异。 BaggingClassifier 的特征采样是每棵树做一次特征采样操作。 RandomForestClassifier 的特征采样是在树中每个分割/节点进行一次独立的特征采样。 谢谢,解开一些疑惑,这是一个值得探索和理解的大领域! :)

以上是关于RandomForestClassifier 与 BaggingClassifier 不同的主要内容,如果未能解决你的问题,请参考以下文章

scikit RandomForestClassifier - 实际结果与预测分数不匹配

为啥 Weka RandomForest 给我的结果与 Scikit RandomForestClassifier 不同?

scikit-learn RandomForestClassifier 概率预测与多数投票

使用 RandomForestClassifier.decision_path,我如何判断分类器用于做出决策的样本?

scikit-learn RandomForestClassifier - 如何解释树输出?

sklearn库学习----随机森林(RandomForestClassifier,RandomForestRegressor)