Scikit learn 理解随机分类器中的max_特征参数

Scikit learn 理解随机分类器中的max_特征参数,scikit-learn,random-forest,decision-tree,ensembles,Scikit Learn,Random Forest,Decision Tree,Ensembles,我正在分析RandomForestClasifier,需要一些帮助 max_features参数给出了随机林中拆分的最大特征数,通常定义为sqrt(n_特征)。如果m是n的sqrt,则DT形成的组合数为nCm。如果nCm小于n_估计量(随机林中的决策树数),该怎么办 示例:对于n=7,max\u features为3,因此nCm为35,这意味着决策树的35个独特特征组合。现在,对于n_估计量=100,剩下的65棵树是否具有重复的特征组合?如果是这样的话,树木之间的关联不会在答案中引入偏差吗 ma

我正在分析RandomForestClasifier,需要一些帮助

max_features
参数给出了随机林中拆分的最大特征数,通常定义为
sqrt(n_特征)
。如果m是n的sqrt,则DT形成的组合数为nCm。如果nCm小于n_估计量(随机林中的决策树数),该怎么办

示例:对于n=7,
max\u features
为3,因此nCm为35,这意味着决策树的35个独特特征组合。现在,对于
n_估计量
=100,剩下的65棵树是否具有重复的特征组合?如果是这样的话,树木之间的关联不会在答案中引入偏差吗

  • max_features
    parameters设置每次拆分时要使用的最大特征数。因此,如果有p个节点

  • max_samples
    强制对来自X的数据点进行采样。默认情况下,它采样的大小与X的大小相同

  • 从文件:

    max_samplesint或float,默认值=无

    如果bootstrap为真,则表示从X中提取的样本数,以训练每个基估计量

    如果没有(默认),则绘制X.shape[0]样本

    因此,可以形成的树的独特组合是
    p!*nCm*(n+n-1)!/(n!(n-1)!)

    对于你的例子,让我们考虑在每个树中有10个节点,在X.

    中有10个样本。
    10! * 7C3 * (19!/ 10! * 9!)
    = 11732745024000.0
    

    因此,对于一个合理大小的数据集不会有任何偏差。

    那么,我们不是在开始时就为随机林中的每个估计器定义了一个子集吗?是否考虑了所有估计器的所有特征,然后在每个节点随机选择进行分割?是的,在每个节点随机选择。从文档:如果INT,那么在每个分裂中考虑Max特征特征。如果Bootstrap是真的和Max样本,读更多,没有,它将没有样本= x.Frime[0 ],所以在这一点上与引导错误是有区别的。(n!(n-1)!)在唯一数量的树中。谢谢