gpt4 book ai didi

python - sklearn min_impurity_decrease 解释

转载 作者:行者123 更新时间:2023-12-03 22:10:26 26 4
gpt4 key购买 nike

sklearn中min_impurity_decrease的定义是

A node will be split if this split induces a decrease of the impurity greater than or equal to this value.



使用 Iris 数据集,并设置 min_impurity_decrease = 0.0

How the tree looks when min_impurity_decrease = 0.0

设置 min_impurity_decrease = 0.1,我们将得到:

How the tree looks when min_impurity_decrease = 0.1

看绿色方块,其中基尼指数(杂质)= 0.2041,为什么当我们把min_impurity_decrease = 0.1时它没有 split ,尽管基尼指数(杂质)左= 0.0,基尼指数(杂质)右= 0.375

这是否意味着修剪所有子节点,在修剪时,它们的父节点
节点基尼指数会变成小于 0.1 吗?
因为,如果是这种情况,那么为什么我们不修剪具有大于 0.1 的 gini = 0.487) 的第二级节点?

最佳答案

史蒂夫,这个回复迟到了,但在这里发布以防其他人遇到这个问题并想了解更多关于最小杂质减少的信息。
可以找到最小杂质减少函数公式here .
公式定义为:

N_t / N * (impurity - N_t_R / N_t * right_impurity
- N_t_L / N_t * left_impurity)
其中N是样本总数,N_t是当前节点的样本数,N_t_L是左 child 的样本数,N_t_R是右 child 的样本数。
N、N_t、N_t_R 和 N_t_L 都是指加权和,如果通过了 sample_weight。
因此,在您的示例中:
N_t = 26
N = 90
N_t_R = 4
N_t_L = 22
impurity = 0.2041
right impurity = 0.375
left impurity = 0
我计算出的杂质减少量为 0.04,这不符合您指定的阈值 0.1。所以本质上,这个公式考虑了父节点占总树的多少(N_t/N)以及从子节点减少的加权杂质。如果最终的杂质减少量小于最小杂质减少量参数,则不会执行拆分。

关于python - sklearn min_impurity_decrease 解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54812230/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com