Scikit-learn: améliorations suggérées par min_weight_fraction_leaf

Créé le 28 juin 2016  ·  3Commentaires  ·  Source: scikit-learn/scikit-learn

La description

J'ai utilisé le paramètre min_weight_fraction_leaf de DecisionTreeClassifier et RandomForestClassifier de manière incorrecte et je pense qu'il est probable que d'autres personnes fassent la même chose que moi.

Par exemple, la documentation pour min_weight_fraction_leaf dans DecisionTreeClassifier dit

La fraction pondérée minimale des échantillons d'entrée requis pour être au niveau d'un nœud feuille.

Je ne savais vraiment pas ce que les documents entendaient par «fraction pondérée des échantillons d'entrée». Au départ, je pensais que c'était une pondération basée sur la taille des classes ou les valeurs données par class_weight . Je pense qu'un léger changement dans la description des paramètres pourrait dissiper cette confusion. Peut-être quelque chose comme

La fraction pondérée minimale des échantillons d'entrée devant être au niveau d'un nœud feuille où les poids sont déterminés par sample_weight dans la méthode fit ().

De plus, il semble que min_weight_fraction_leaf ne s'applique que si sample_weight est fourni dans l'appel fit() . Si sample_weight n'est pas fourni dans l'appel à fit() , min_weight_fraction_leaf est ignoré en silence. Ici, je pense que min_weight_fraction_leaf devrait toujours s'appliquer sous l'hypothèse que tous les échantillons sont également pondérés OU un avertissement devrait être donné que min_weight_fraction_leaf ne sera pas utilisé car sample_weight n'a pas été fourni.

Versions

Darwin-15.5.0-x86_64-i386-64bit
Python 3.5.1 | Continuum Analytics, Inc. | (par défaut, 7 décembre 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

J'adorerais également apporter les modifications que j'ai suggérées (si elles sont jugées dignes), mais j'ai peu d'expérience en contribuant aux bibliothèques open-source. Il faudrait peut-être un peu de main dans la main si quelqu'un serait prêt à m'aider.

Bug

Commentaire le plus utile

Je pense que si min_weight_fraction_leaf est défini et qu'aucun sample_weights n'est fourni, cela devrait générer une erreur ou supposer des poids uniformes. Dans ce cas, c'est un peu redondant avec min_samples_leaf mais je pense que supposer des poids uniformes serait toujours mieux.

Tous les 3 commentaires

Veuillez soumettre un PR

Le 29 juin 2016 à 06:09, Ben [email protected] a écrit:

La description

J'ai utilisé le paramètre min_weight_fraction_leaf de
DecisionTreeClassifier et RandomForestClassifier incorrectement et je pense
il est probable que d'autres personnes fassent la même chose que moi.

Par exemple, la documentation de min_weight_fraction_leaf dans
DecisionTreeClassifier
http://scikit-learn.org/stable/modules/generated/sklearn.tree.DecisionTreeClassifier.html
dit

La fraction pondérée minimale des échantillons d'entrée requise pour être à un
noeud feuille.

Je ne savais vraiment pas ce que la documentation entendait par "fraction pondérée de
les échantillons d'entrée ". Au départ, je pensais que c'était une pondération basée sur le
taille des classes ou des valeurs données par class_weight. Je pense un léger
une modification de la description des paramètres pourrait dissiper cette confusion. Peut-être
quelque chose comme

La fraction pondérée minimale des échantillons d'entrée requise pour être à un
nœud feuille où les poids sont déterminés par sample_weight dans la méthode fit ().

De plus, il semble que min_weight_fraction_leaf ne s'applique que si
sample_weight est fourni dans l'appel fit (). Si sample_weight n'est pas
fourni dans l'appel à fit (), min_weight_fraction_leaf est silencieusement
ignoré. Ici, je pense que min_weight_fraction_leaf devrait toujours s'appliquer sous
l'hypothèse que tous les échantillons ont la même pondération OU un avertissement doit être
étant donné que min_weight_fraction_leaf ne sera pas utilisé car sample_weight
n'a pas été fourni.
Versions

Darwin-15.5.0-x86_64-i386-64bit
Python 3.5.1 | Continuum Analytics, Inc. | (par défaut, 7 décembre 2015, 11:24:55)
[GCC 4.2.1 (Apple Inc. build 5577)]
NumPy 1.11.0
SciPy 0.17.1
Scikit-Learn 0.17.1

-
Vous recevez ceci parce que vous êtes abonné à ce fil de discussion.
Répondez directement à cet e-mail, affichez-le sur GitHub
https://github.com/scikit-learn/scikit-learn/issues/6945 , ou désactivez le
fil
https://github.com/notifications/unsubscribe/AAEz6xE2BmEJHo6hGgTWoigsPutoD4_nks5qQX9zgaJpZM4JAe96
.

Je pense que si min_weight_fraction_leaf est défini et qu'aucun sample_weights n'est fourni, cela devrait générer une erreur ou supposer des poids uniformes. Dans ce cas, c'est un peu redondant avec min_samples_leaf mais je pense que supposer des poids uniformes serait toujours mieux.

Je pense que c'est similaire à min_samples_leaf . Au lieu d'exiger un nombre absolu d'échantillons dans chaque nœud feuille, min_weight_fraction_leaf offre la possibilité d'exiger une fraction d'échantillons (ou poids) dans chaque feuille. Le fait que le modèle utilise des poids pour les échantillons dépend de la class_weight .

Cette page vous a été utile?
0 / 5 - 0 notes