141 votes

Comment sont déterminées les importances des caractéristiques dans RandomForestClassifier ?

J'ai une tâche de classification avec une série chronologique comme entrée de données, où chaque attribut (n=23) représente un point spécifique dans le temps. Outre le résultat absolu de la classification, je voudrais savoir quels attributs/dates contribuent au résultat dans quelle mesure. C'est pourquoi j'utilise la fonction feature_importances_ ce qui fonctionne bien pour moi.

Cependant, j'aimerais savoir comment ils sont calculés et quelle mesure/algorithme est utilisé. Malheureusement, je n'ai trouvé aucune documentation à ce sujet.

14 votes

Woah trois core devs sur un fil SO. Cela doit être une sorte de record ^^

3voto

Makan Points 467

Pour ceux qui cherchent une référence à la documentation de scikit-learn sur ce sujet ou une référence à la réponse de @GillesLouppe :

Dans RandomForestClassifier, estimators_ est une liste de DecisionTreeClassifier (tel que mentionné dans l'en-tête de l'UE). documentation ). Afin de calculer le feature_importances_ pour le RandomForestClassifier, en le code source de scikit-learn il fait la moyenne de tous les estimateurs (tous les DecisionTreeClassifer's) feature_importances_ dans l'ensemble.

Dans l'affaire DecisionTreeClassifer documentation Il est mentionné que "l'importance d'une caractéristique est calculée comme la réduction totale (normalisée) du critère apporté par cette caractéristique. Elle est également connue sous le nom d'importance de Gini [1]."

Ici est un lien direct pour plus d'informations sur l'importance des variables et de Gini, comme le fournit la référence de scikit-learn ci-dessous.

[1] L. Breiman, et A. Cutler, "Random Forests", http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm

0voto

blackhole Points 33

Importance des caractéristiques dans Random Forest

  • La forêt aléatoire utilise de nombreux arbres, ce qui réduit la variance.
  • La forêt aléatoire permet d'explorer beaucoup plus de combinaisons de caractéristiques ainsi que
  • Les arbres de décision donnent une importance variable et celle-ci est plus importante s'il y a réduction de l'impureté (réduction de l'impureté Gini).
  • Chaque arbre a un ordre d'importance différent

    Voici ce qui se passe en arrière-plan !

  • On prend un attribut et on le vérifie dans tous les arbres où il est présent et on prend les valeurs moyennes de la variation de l'homogénéité sur cet attribut split. Cette valeur moyenne de changement d'homogénéité nous donne l'importance de la caractéristique de l'attribut. enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X