随机森林回归中的样本量

时间:2015-07-08 21:40:56

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

如果理解正确,当计算随机森林估计量时,通常会应用自举,这意味着仅使用来自样本(i)的数据构建树(i),并选择替换。我想知道sklearn RandomForestRegressor使用的样本大小是多少。

我唯一看到的就是关闭:

bootstrap : boolean, optional (default=True)
    Whether bootstrap samples are used when building trees.

但是没有办法指定样本大小的大小或比例,也没有告诉我默认的样本大小。

我觉得应该有办法至少知道默认的样本大小是什么,我缺少什么?

3 个答案:

答案 0 :(得分:7)

呃,我同意你的看法,我们无法在RandomForestRegressor算法中指定子样本/引导程序大小,这很奇怪。也许潜在的解决方法是使用BaggingRegressor代替。 http://scikit-learn.org/stable/modules/generated/sklearn.ensemble.BaggingRegressor.html#sklearn.ensemble.BaggingRegressor

RandomForestRegressor只是BaggingRegressor的一个特例(使用bootstraps来减少一组低偏差高方差估计量的方差)。在RandomForestRegressor中,基本估算工具被强制为DeceisionTree,而在BaggingRegressor中,您可以自由选择base_estimator。更重要的是,您可以设置自定义的子样本大小,例如max_samples=0.5将绘制大小等于整个训练集一半的随机子样本。此外,您可以通过设置max_featuresbootstrap_features来选择一部分功能。

答案 1 :(得分:4)

bootstrap的样本大小始终是样本数。

您没有遗漏任何内容,RandomForestClassifier {{1}}上提出了同样的问题:

  

引导样本大小始终与输入样本大小相同。如果您愿意,可能会非常欢迎更新文档的拉取请求。

答案 2 :(得分:3)

在scikit-learn的0.22版本中,添加了max_samples选项,可按照您要求的内容here进行类文档的编写。