Je passais par la classe sklearn DecisionTreeClassifier .
En regardant les paramètres de la classe, nous avons deux paramètres min_samples_split et min_samples_leaf . L'idée de base derrière eux semble similaire, vous spécifiez un nombre minimum d'échantillons requis pour décider qu'un nœud doit être feuille ou divisé plus loin.
Pourquoi avons-nous besoin de deux paramètres lorsque l'un implique l'autre?. Y a-t-il une raison ou un scénario qui les distingue?.
De la documentation:
La principale différence entre les deux est que
min_samples_leaf
garantit un nombre minimum d'échantillons dans une feuille, tandis quemin_samples_split
peut créer de petites feuilles arbitraires, bien quemin_samples_split
est plus courant dans la littérature.
Pour comprendre cette documentation, je pense que vous devriez faire la distinction entre un feuille (également appelé nœud externe) et un nœud interne . Un nœud interne aura d'autres divisions (également appelées enfants), tandis qu'une feuille est par définition un nœud sans enfants (sans autres divisions).
min_samples_split
spécifie le nombre minimum d'échantillons requis pour diviser un nœud interne , tandis que min_samples_leaf
spécifie le nombre minimum d'échantillons requis pour être sur un nœud feuille .
Par exemple, si min_samples_split = 5
, et il y a 7 échantillons sur un noeud interne, alors la division est autorisée. Mais disons que le fractionnement donne deux feuilles, une avec 1 échantillon et une autre avec 6 échantillons. Si min_samples_leaf = 2
, le fractionnement ne sera pas autorisé (même si le nœud interne a 7 échantillons) car l'une des feuilles résultantes aura moins que le nombre minimal d'échantillons requis pour être au niveau d'un nœud feuille.
Comme la documentation mentionnée ci-dessus le mentionne, min_samples_leaf
garantit un nombre minimum d'échantillons dans chaque feuille, quelle que soit la valeur de min_samples_split
.