了解RandomForestRegressor中的max_features参数

时间:2014-05-29 17:52:56

标签: scikit-learn

在使用自举样本构建随机森林中的每棵树时,对于每个终端节点,我们从p变量中随机选择m个变量以找到最佳分割(p是数据中特征的总数)。我的问题(对于RandomForestRegressor)是:

1)max_features对应什么(m或p或其他东西)?

2)从max_features变量中随机选择m个变量(m的值是多少)?

3)如果max_features对应于m,那么为什么我要将它设置为p等于回归(默认值)?这种设置的随机性在哪里(即它与装袋有什么不同)?

感谢。

3 个答案:

答案 0 :(得分:10)

直接来自documentation

  

[max_features]是分割节点时要考虑的随机要素子集的大小。

所以max_features就是你所说的 m 。当max_features="auto" m = p 并且树中没有执行要素子集选择时,"随机林"实际上是普通回归树的袋装组合。文档继续说

  

回归问题的经验良好默认值为max_features=n_features,分类任务为max_features=sqrt(n_features)

通过不同地设置max_features,您将得到一个真实的"随机森林。

答案 1 :(得分:1)

@ lynnyi,max_features是在每个分割级别而不是整个决策树构造上考虑的功能数量。更清楚的是,在构建每个决策树期间,RF仍将使用所有功能(n_features),但它仅考虑用于节点拆分的“ max_features”个功能。并且从整个特征中随机选择“ max_features”特征。您可以通过从具有max_features = 1的RF绘制一个决策树来确认这一点,然后检查该树的所有节点以计算涉及的特征数。

答案 2 :(得分:0)

max_features 基本上是随机选择的特征数量,分裂时没有替换。假设您有 10 个独立的列或特征,那么 max_features=5 将在每次拆分时随机选择 5 个特征而无需替换。