Python min_sample_split和min_sample_leaf在RandomForestClassifier中的作用是什么?

Python min_sample_split和min_sample_leaf在RandomForestClassifier中的作用是什么?,python,scikit-learn,Python,Scikit Learn,我正在进行拟合,遇到了两个参数:min\u sample\u split和min\u sample\u leaf 我是否需要同时设置min\u sample\u split和min\u sample\u leaf 我想我只需要其中一个,因为一个实际上是另一个的一半。我的理解正确吗 因此基本上minu-sample-u-split是分割所需的最小样本数量。例如,如果min\u sample\u split=6且节点中有4个样本,则不会发生分割(无论熵如何) 另一方面,min\u sample\u

我正在进行拟合,遇到了两个参数:
min\u sample\u split
min\u sample\u leaf

我是否需要同时设置
min\u sample\u split
min\u sample\u leaf


我想我只需要其中一个,因为一个实际上是另一个的一半。我的理解正确吗

因此基本上
minu-sample-u-split
是分割所需的最小样本数量。例如,如果
min\u sample\u split=6
且节点中有4个样本,则不会发生分割(无论熵如何)

另一方面,
min\u sample\u leaf
基本上是叶节点所需的最小样本数。假设
min\u sample\u leaf=3
并且在包含5个样本的节点可以分别拆分为大小为2和3的两个叶节点之后,将不会发生拆分,因为最小叶大小为3

你可以看一看和,以便进一步阅读


更新:RandomForest和GradientBoostClassifier行为的差异很大程度上归因于它们训练自己的方式(梯度增强是顺序分类器的集合),您可以阅读更多关于它的内容来理解梯度增强的内部工作

@kashif:感谢澄清。所以min_sample_split和min_sample_leaf是互补的。我在RandomForestClassifier上做了一些测试,发现将min_sample_叶片大小保持在min_sample_split的50%以下不会影响结果。然而,可能出于某种原因(我不知道),GradientBoostingClassifier的情况并非如此,在这种情况下,改变min_sample_叶子大小,即使它低于min_sample_split的50%,也会影响结果。您可能很高兴知道,
min_samples_叶子
正在使用。@Stev:谢谢澄清。通过您建议的链接,我了解到在每个结果节点中的叶节点数量不相等时,可能会发生拆分,其大小基本上由min_sample_叶大小控制。你能解释一下这背后的原因吗?如果我理解正确的话,可能是因为底层算法的决策方法。
标准
参数(或杂质函数)针对所有候选拆分进行评估。可能的情况是,最佳分割(杂质减少量最大的那一个)只会导致一片叶子中有一个样品,而其余的样品则在另一片叶子中。您可能不希望出现这种情况,可能是为了避免过度拟合,因此您可能希望通过设置
min\u samples\u leaf
在此时终止到树。但是,SKLearn中的
min\u samples\u leaf
看起来并没有终止树,而是查看下一个最佳分割。