Python sklearn DecisionTreeClassifier中min_samples_split和min_samples_leaf之间的差异

Python sklearn DecisionTreeClassifier中min_samples_split和min_samples_leaf之间的差异,python,scikit-learn,Python,Scikit Learn,我正在上sklearn课 查看类的参数,我们有两个参数min\u samples\u split和min\u samples\u leaf。它们背后的基本思想看起来很相似,您需要指定一个最小数量的样本来决定一个节点是叶节点还是进一步拆分 为什么我们需要两个参数,而其中一个意味着另一个?。是否有任何原因或情景区分它们 来自文档: 两者之间的主要区别在于min\u samples\u leaf保证一片叶子中的样本数最少,而min\u samples\u split可以创建任意的小叶子,尽管min\u

我正在上sklearn课

查看类的参数,我们有两个参数min\u samples\u splitmin\u samples\u leaf。它们背后的基本思想看起来很相似,您需要指定一个最小数量的样本来决定一个节点是叶节点还是进一步拆分


为什么我们需要两个参数,而其中一个意味着另一个?。是否有任何原因或情景区分它们

来自文档:

两者之间的主要区别在于
min\u samples\u leaf
保证一片叶子中的样本数最少,而
min\u samples\u split
可以创建任意的小叶子,尽管
min\u samples\u split
在文献中更常见

为了掌握这篇文档,我认为您应该区分(也称为外部节点)和内部节点。内部节点将有进一步的拆分(也称为子节点),而根据定义,叶节点是没有任何子节点(没有任何进一步拆分)的节点

min\u samples\u split
指定分割内部节点所需的最小样本数,而
min\u samples\u leaf
指定叶节点所需的最小样本数

例如,如果
min\u samples\u split=5
,并且一个内部节点上有7个样本,则允许拆分。但是假设分割结果是两片叶子,一片有1个样本,另一片有6个样本。如果
min\u samples\u leaf=2
,则不允许拆分(即使内部节点有7个样本),因为生成的一个叶将少于叶节点所需的最小样本数


正如上面引用的文档所提到的,
min\u samples\u leaf
保证每个叶中的样本数最少,无论决策树中
min\u samples\u split
的值是多少,都可以设置许多规则来配置树的结束方式。大致上,有更多面向“设计”的规则,如最大深度。最大深度更像是当你建造一座房子时,建筑师会问你需要多少层


其他一些规则是“防御”规则。我们通常称之为停止规则。min_samples_leaf和min_samples_split属于此类型。已经提供的所有解释都说得很好。我的分:当树被建造时,规则相互作用。例如,min_samples_leaf=100,您很可能最终得到一个树,其中所有的终端节点都远远大于100,因为其他规则已经阻止了树的扩展

两个参数都会产生相似的结果,不同的是观点

min\u samples\u split参数将计算节点中的样本数,如果样本数小于最小值,则将避免分割,节点将为叶

min\u samples\u leaf参数在生成节点之前进行检查,也就是说,如果可能的拆分导致子节点具有较少的样本,则将避免拆分(因为尚未达到子节点作为叶的最小样本数),并且节点将被叶替换


在所有情况下,当一个叶中有多个类的样本时,根据在训练中到达它的样本,最有可能出现最后一个类。

min\u sample\u split告诉上面分割内部节点所需的最小样本数。如果取一个整数值,那么将MimiSimulsSyS分裂作为最小的NO.如果浮点,那么它显示百分比。默认情况下,它采用“2”值


min_sample_leaf是叶节点上所需的最小样本数。如果取一个整数值,那么将-min - Simple作为最大值,如果它是浮点,则显示百分比。默认情况下,它取“1”值。

@Abhishek,谢谢链接。Alex和链接都帮助我理解了它。这里还有一个关于它的大讨论,包括图表谢谢@Alex。我现在明白了。min_samples_split不保证叶节点中有min_samples_leaf,但min_samples_leaf会保证。但是在使用RandomForestClassifier的二元分类的情况下,如果叶节点有1个以上的样本(数据点),比方说两个,如何做出决定,它们属于哪个类?0级还是1级?他们是2,我们不能说是1班还是2班。或者我错了?@zelleb根据定义,如果样本最终位于叶节点,则它们被归类为具有相同的类。拥有min_samples_leaf==2的动机是什么?