The definition of min_impurity_decrease in sklearn is
A node will be split if this split induces a decrease of the impurity greater than or equal to this value.
Using the Iris dataset, and putting min_impurity_decrease = 0.0
How the tree looks when min_impurity_decrease = 0.0
Putting min_impurity_decrease = 0.1, we will obtain this:
How the tree looks when min_impurity_decrease = 0.1
Looking at the green square where gini index (impurity) = 0.2041, why was it not split when we put min_impurity_decrease = 0.1 although the the gini index (impurity) left = 0.0 and the gini index (impurity) right = 0.375
Does this mean to prune all the children node where, when pruned, their parent node gini index will become less than 0.1 ? Becuase, if this is the case, then why did we not prune the second level node having gini = 0.487), which is bigger than 0.1 ?