Gab*_*iel 7 python machine-learning scikit-learn
如果我们选择bootstrap = False,RandomForestClassifier()会做什么?
根据此链接中的定义
bootstrap:boolean,optional(default = True)构建树时是否使用bootstrap样本.
问这个因为我想对时间序列使用随机森林方法,所以训练一个大小为(tn)的滚动窗口并预测日期(t + k),并想知道如果我们选择True或是否会发生这种情况假:
1)如果Bootstrap = True,那么当训练样本可以是任何一天和任何数量的功能.因此,例如可以从具有随机选择的特征的每天(t-15),白天(t-19)和白天(t-35)获得样本,然后预测日期的输出(t + 1).
2)如果Bootstrap = False,它将使用所有样本和从日期(tn)到t的所有特征进行训练,那么它实际上将遵守日期顺序(意味着它将使用t-35,t-34,t -33 ......等到t-1).然后将预测日期的输出(t + 1).
如果这是Bootstrap的工作方式,我会倾向于使用Boostrap = False,好像不会有点奇怪(想想金融系列)只是忽略连续几天的回报并从第t-39天跳到t-19并且然后到第t-15天预测第t + 1天.我们会错过那些日子之间的所有信息.
那么...这就是Bootstrap的工作方式吗?
您似乎将观察的引导与特征的采样混为一谈.统计学习简介为随机森林提供了非常好的介绍.
随机森林的好处来自于通过对观测和特征进行采样来创建各种各样的树木.Bootstrap = False告诉它在有或没有替换的情况下对观察结果进行抽样- 它应该在它是假的时候进行采样,而不是替换.
您可以通过设置max_features功能的共享或只是整数来告诉它要采样的功能的共享范围(这通常是为了找到最佳参数而调整的).
当你构建每棵树时,你不会每天都有这样的事情 - 这就是RF价值的来源.每棵树都是一个非常糟糕的预测器,但是当你将数百或数千棵树的预测平均在一起时,你(可能)会得到一个好的模型.
我没有评论的声誉.所以我会在这里发表我的意见.scikit-learn文档说子样本大小始终与原始输入样本大小相同,但如果bootstrap = True(默认值),则使用替换绘制样本.因此,如果bootstrap = FALSE,我认为每个子样本与原始输入样本一样.
| 归档时间: |
|
| 查看次数: |
5886 次 |
| 最近记录: |