如果理解正确,当计算随机森林估计量时,通常会应用自举,这意味着仅使用来自样本(i)的数据构建树(i),并选择替换。我想知道sklearn RandomForestRegressor使用的样本大小是多少。
我唯一看到的就是关闭:
bootstrap : boolean, optional (default=True)
Whether bootstrap samples are used when building trees.
但是没有办法指定样本大小的大小或比例,也没有告诉我默认的样本大小。
我觉得应该有办法至少知道默认的样本大小是什么,我缺少什么?
答案 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_features
和bootstrap_features
来选择一部分功能。
答案 1 :(得分:4)
bootstrap的样本大小始终是样本数。
您没有遗漏任何内容,RandomForestClassifier
{{1}}上提出了同样的问题:
引导样本大小始终与输入样本大小相同。如果您愿意,可能会非常欢迎更新文档的拉取请求。
答案 2 :(得分:3)
在scikit-learn的0.22版本中,添加了max_samples
选项,可按照您要求的内容here进行类文档的编写。