在使用自举样本构建随机森林中的每棵树时,对于每个终端节点,我们从p变量中随机选择m个变量以找到最佳分割(p是数据中特征的总数)。我的问题(对于RandomForestRegressor)是:
1)max_features对应什么(m或p或其他东西)?
2)从max_features变量中随机选择m个变量(m的值是多少)?
3)如果max_features对应于m,那么为什么我要将它设置为p等于回归(默认值)?这种设置的随机性在哪里(即它与装袋有什么不同)?
感谢。
答案 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 个特征而无需替换。