在使用自助样本构建随机森林中的每一棵树时,对于每个终端节点,我们从p个变量中随机选择m个变量来找到最佳分割点(p是你数据中的总特征数)。我的问题(针对RandomForestRegressor)是:
1) max_features对应的是什么(是m还是p还是其他)?
2) m个变量是从max_features个变量中随机选择的吗(m的值是什么)?
3) 如果max_features对应的是m,那么为什么在回归中我要将其设置为p(默认值)?这种设置下的随机性在哪里(即,它与bagging有什么不同)?
谢谢。
回答:
直接来自文档:
[
max_features
] 是分割节点时考虑的特征随机子集的大小。
所以max_features
就是你所说的m。当max_features="auto"
时,m = p,树中不进行特征子集选择,因此“随机森林”实际上是普通回归树的bagging集合。文档继续说,
经验上好的默认值是回归问题中的
max_features=n_features
,分类任务中的max_features=sqrt(n_features)
通过不同地设置max_features
,你将得到一个“真正的”随机森林。