Forêt aléatoire: et si je sais qu'une variable est importante


12

Ma compréhension est que la forêt aléatoire choisit des variables aléatoires pour construire chaque arbre de décision. Donc, si mtry = ncol / 3, alors chaque variable sera utilisée en moyenne dans 1/3 des arbres. Et 2/3 des arbres ne les utiliseront pas.

Mais que faire si je sais qu'une seule variable est probablement très importante, serait-il bon d'augmenter manuellement la probabilité que cette variable soit choisie dans chaque arbre? Est-il possible avec le package randomForest dans R?

Réponses:


6

Notez que mtryest le nombre de variables échantillonnées au hasard comme candidats à chaque fractionnement. Et parmi ces candidats, le meilleur est choisi pour effectuer le fractionnement. Ainsi, la proportion que vous avez mentionnée n'est pas entièrement satisfaite. Des variables plus importantes apparaissent plus fréquemment et moins importantes - moins fréquemment. Donc, si la variable est vraiment très importante, il y a une grande probabilité qu'elle soit sélectionnée dans un arbre et vous n'avez pas besoin de correction manuelle. Mais parfois (rarement), il est nécessaire de forcer la présence d'une variable (quelle que soit son importance possible) dans la régression. Pour autant que je sache, la forêt aléatoire du package R ne prend pas en charge une telle possibilité. Mais si cette variable n'a pas d'intercorrélation avec d'autres, vous pouvez effectuer une régression ordinaire avec cette variable comme terme unique, puis exécuter une régression forestière aléatoire sur les résidus de cette régression ordinaire. Si vous souhaitez toujours corriger la possibilité de choisir des variables prédéfinies, la modification du code source avec la prochaine compilation est votre option.


2
Si vous avez besoin de n arbres pour obtenir une approximation décente pour votre fonction cible, mais que vous recherchez une importance variable, vous pouvez définir quelque chose comme 5 * n ou 10 * n arbres dans la forêt. Ils convergeront davantage, non pas sur une "erreur d'ajustement" mais sur un changement d'importance variable.
EngrStudent

5

Depuis juin 2015, un nouvel algorithme RF prometteur sur R-CRAN appelé «ranger» a cette fonctionnalité. Il est modifié avec, split.select.weights : "Vecteur numérique avec des poids entre 0 et 1, représentant la probabilité de sélectionner des variables pour le fractionnement."

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.