Comment interpréter la diminution moyenne de l'exactitude et la diminution moyenne de GINI dans les modèles de forêt aléatoire


34

J'ai du mal à comprendre comment interpréter la sortie d'importance variable du paquet Random Forest. La diminution moyenne de la précision est généralement décrite comme "la diminution de la précision du modèle due à la permutation des valeurs dans chaque fonction".

S'agit-il d'une déclaration concernant la fonctionnalité dans son ensemble ou de valeurs spécifiques dans la fonctionnalité? Dans les deux cas, la diminution moyenne de la précision correspond-elle au nombre ou à la proportion d'observations mal classées en supprimant la caractéristique (ou les valeurs de la caractéristique) en question du modèle?

Disons que nous avons le modèle suivant:

require(randomForest)
data(iris)
set.seed(1)
dat <- iris
dat$Species <- factor(ifelse(dat$Species=='virginica','virginica','other'))
model.rf <- randomForest(Species~., dat, ntree=25,
importance=TRUE, nodesize=5)
model.rf
varImpPlot(model.rf)

Call:
 randomForest(formula = Species ~ ., data = dat, ntree = 25,
 proximity = TRUE, importance = TRUE, nodesize = 5)

Type of random forest: classification
Number of trees: 25
No. of variables tried at each split: 2

        OOB estimate of  error rate: 3.33%
Confusion matrix:
          other virginica class.error
other        97         3        0.03
virginica     2        48        0.04

entrez la description de l'image ici

Dans ce modèle, le taux de production hors bande est plutôt faible (environ 5%). Cependant, la diminution moyenne de la précision pour le prédicteur (Petal.Length) avec la valeur la plus élevée dans cette mesure n’est que d’environ 8.

Cela signifie-t-il que la suppression de Petal.Length du modèle n'entraînerait qu'une mauvaise classification supplémentaire d'environ 8 observations en moyenne?

Comment la diminution moyenne de l'exactitude pour Petal.Length pourrait-elle être si faible, car elle est la plus élevée de cette mesure, et les autres variables ont donc des valeurs encore plus basses pour cette mesure?


essayez dat <- iris [, c (2: 3,5)] et devrait obtenir des valeurs de VI plus élevées
Soren Havelund Welling

Réponses:


26

" S'agit-il d'une déclaration concernant la fonctionnalité dans son ensemble ou de valeurs spécifiques dans la fonctionnalité? "

  • L'importance de la variable "globale" est la diminution moyenne de la précision par rapport à toutes les prévisions validées par cross-validation hors sac, lorsqu'une variable donnée est permutée après l'entraînement, mais avant la prévision. "Global" est implicite. L’importance variable locale est la diminution moyenne de la précision de chaque prédiction validée et croisée validée hors du sac. L’importance de la variable globale est la plus populaire, car il s’agit d’un nombre unique par variable, plus facile à comprendre et plus robuste car il est moyenné sur toutes les prédictions.

" Dans les deux cas, la diminution moyenne de la précision correspond-elle au nombre ou à la proportion d'observations mal classées en supprimant la caractéristique (ou les valeurs de la caractéristique) en question du modèle? "

  1. forêt de train
  2. mesure la précision du CV hors du sac → OOB_acc_base
  3. permute variable i
  4. mesurez la précision du CV hors du sac → OOB_acc_perm_i
  5. VI_i = - (OOB_acc_perm_i - OOB_acc_base)

- " Cela signifie-t-il que la suppression de Petal.Length du modèle n'entraînerait qu'une erreur de classification supplémentaire d'environ 8 observations en moyenne? "

  • Oui. Petal.length et Petal.width ont à eux seuls une séparation linéaire presque parfaite. Ainsi, les variables partagent des informations redondantes et une seule permutation n’obstrue pas le modèle.

" Comment la diminution moyenne de l'exactitude pour Petal.Length pourrait-elle être si faible, puisqu'elle est la plus élevée de cette mesure, et que les autres variables ont donc des valeurs encore plus basses pour cette mesure? "

  • Lorsqu'un modèle robuste / régularisé est formé sur des variables redondantes, il résiste assez bien aux permutations de variables uniques.

Utilisez principalement l’importance des variables principalement pour classer l’utilité de vos variables. Une interprétation claire des valeurs absolues d’importance variable est difficile à réussir.

GINI: L’importance GINI mesure le gain moyen de pureté par fractionnements d’une variable donnée. Si la variable est utile, elle a tendance à scinder des nœuds étiquetés mixtes en nœuds purs à une seule classe. La division par une variable permutée n'a tendance à augmenter ni à diminuer la pureté des noeuds. Permuter une variable utile a tendance à donner une diminution relativement importante du gain de gini moyen. L’importance de GINI est étroitement liée à la fonction de décision locale, que la forêt aléatoire utilise pour sélectionner la meilleure scission disponible. Par conséquent, le calcul ne prend pas beaucoup de temps supplémentaire. Par contre, le gain moyen dans les divisions locales n’est pas nécessairement ce qu’il est le plus utile de mesurer, contrairement à l’évolution de la performance globale du modèle. L’importance de Gini est globalement inférieure à l’importance variable (basée sur la permutation) car elle est relativement plus biaisée, plus instable et tend à répondre à une question plus indirecte.


Pour l' interprétation de l' importance des variables au - delà de classement simple, consultez: "sélection variable bivarié problème de classification" -Vivian W. Ng et Leo Breiman digitalassets.lib.berkeley.edu/sdtr/ucb/text/692.pdf
Soren Havelund Welling

Merci beaucoup pour ta réponse! J'ai vu certains endroits décrire la diminution moyenne de la précision comme l'augmentation du taux d'erreur hors bande (donc un pourcentage). La formule que vous avez publiée semble également suggérer un taux d'erreur: (OOB_acc_perm_i - OOB_acc_base). Mais vous êtes sûr que la diminution moyenne de la précision fait référence au nombre d'observations mal classées?
FlacoT

1
Rappelez-vous le moins à l'avant, car l'importance variable est une diminution. Je n'étais pas trop spécifique avec les unités, celles-ci pourraient être exprimées en% ou en pur rapport / proportions, peu importe. Mais oui en tant que précision = 1-error_rate, VI_i = error_rate_perm_i - error_rate_base. Pour la régression, l’unité d’importance variable de la permutation est généralement la diminution de la variance expliquée et l’unité d’importance du gini est la diminution moyenne du gain mean_square_error. "Mais vous êtes certain que la diminution moyenne de la précision fait référence au nombre d'observations mal classées? " -Non, la précision est une fraction, pas un compte.
Commentaires

10

Voici la description de la diminution moyenne de la précision (MDA) du manuel d’aide de randomForest:

La première mesure est calculée à partir des données OOB permutantes: pour chaque arbre, l'erreur de prédiction sur la partie des données hors sac est enregistrée (taux d'erreur pour la classification, MSE pour la régression). Ensuite, la même chose est faite après avoir permuté chaque variable prédictive. La différence entre les deux est ensuite moyennée sur tous les arbres et normalisée par l'écart type des différences. Si l'écart type des différences est égal à 0 pour une variable, la division n'est pas effectuée (mais la moyenne est presque toujours égale à 0 dans ce cas).

Selon la description, la "précision" dans la MDA fait en réalité référence à la précision de modèles à un seul arbre , indépendamment du fait que nous nous préoccupons davantage du taux d'erreur de la forêt . Alors,

"Cela signifie-t-il que la suppression de Petal.Length du modèle n'entraînerait qu'une erreur de classification supplémentaire d'environ 8 observations en moyenne?"

  • Moyenne (diminution de la précision des arbres)StandardDéviation (Diminution de la précision des arbres)
  • Moyenne (diminution de la précision des arbres)

H0:Nœuds construits par prédicteur je est inutile dans tous les arbres
H1:Nœuds construits par prédicteur je est utile

A titre d'observation, la procédure MDA décrite par Soren est différente de la mise en œuvre du paquet randomForest. C'est plus proche de ce que nous souhaitons d'un MDA: la diminution de la précision de l'ensemble du modèle forestier. Cependant, le modèle sera probablement ajusté différemment sans Petal.Length et s'appuiera davantage sur d'autres prédicteurs. Ainsi, le MDA de Soren serait trop pessimiste.


Deux questions de suivi: 1. Avez-vous une idée si d’autres packages utilisent le MDA plus intuitif décrit par @Soren? 2. Si l'interprétation de MDA dans RandomForest est une statistique de test, existe-t-il une règle de base sur ce qu'une statistique de test suffisamment grande pour rejeter H0? Est-ce que MDA suit une distribution connue?
FlacoT

1. Désolé, je n'ai essayé aucun autre forfait. 2. Il s’agit simplement d’une statistique de test. Ni la distribution n'est accessible (pour autant que je sache, peu de gens se sont penchés là-dessus) ni le test lui-même n'a de sens - je ne pense pas que le test conclue à rien de la FOREST, qui est notre intérêt actuel.
Jianyu

4

Un récent article (blog) [ https://explained.ai/rf-importance/index.html] d'une équipe de l'Université de San Francisco montre que les stratégies d'importance par défaut dans R (randomForest) et Python (scikit) ne sont pas fiables. dans de nombreux scénarios de données. En particulier, les métriques de diminution moyenne de l'importance des impuretés sont biaisées lorsque les variables prédictives potentielles varient dans leur échelle de mesure ou leur nombre de catégories.

Les articles et le billet de blog montrent comment les variables de cardinalité continue et élevée sont préférées dans la diminution moyenne du classement d'importance des impuretés, même si elles sont également non informatives par rapport aux variables comportant moins de catégories. Les auteurs suggèrent d’utiliser l’importance de la permutation au lieu de la valeur par défaut dans ces cas. Si les variables prédictives de votre modèle sont hautement corrélées, une importance de permutation conditionnelle est suggérée.

L’impureté est biaisée puisqu’à chaque fois qu’un point de rupture est sélectionné dans une variable, chaque niveau de la variable est testé pour trouver le meilleur point de rupture. Les variables de cardinalité continue ou élevée auront beaucoup plus de points de partage, ce qui entraîne le problème du «test multiple». Autrement dit, il y a une probabilité plus élevée que, par chance, cette variable prédit bien le résultat, car les variables, pour lesquelles plus de fractionnements sont essayés, apparaîtront plus souvent dans l'arbre.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.