Quand enregistrer / développer vos variables lors de l'utilisation de modèles de forêt aléatoires?

13

Je fais une régression en utilisant des forêts aléatoires pour prédire les prix en fonction de plusieurs attributs. Le code est écrit en Python à l'aide de Scikit-learn.

Comment décidez-vous si vous devez transformer vos variables en utilisant exp/ logavant de l'utiliser pour l'adapter au modèle de régression? Est-il nécessaire lors de l'utilisation d'une approche d'ensemble telle que la forêt aléatoire?

Nyxynyx
la source
3
Je pense que c'est un peu différent de cette question, en raison de l'aspect forêt / ensemble aléatoire, mais la question pourrait peut-être être reformulée après avoir regardé l'autre post.
Peter Flom - Réintègre Monica
@PeterFlom pourriez-vous m'aider à reformuler la question? Je ne suis pas assez compétent dans ce domaine :)
Nyxynyx
La façon dont la plupart des gens utilisent le terme «ensemble» RF n'est qu'une entrée potentielle pour un ensemble.
Hack-R

Réponses:

16

La façon dont les forêts aléatoires sont construites est invariante aux transformations monotones des variables indépendantes. Les divisions seront complètement analogues. Si vous visez simplement la précision, vous ne verrez aucune amélioration. En fait, puisque les forêts aléatoires sont capables de trouver des relations non linéaires complexes (pourquoi appelez-vous cette régression linéaire?) Et des interactions variables à la volée, si vous transformez vos variables indépendantes, vous pouvez lisser les informations qui permettent à cet algorithme de faire cela correctement.

Parfois, les forêts aléatoires ne sont pas traitées comme une boîte noire et utilisées pour l'inférence. Par exemple, vous pouvez interpréter les mesures d'importance variable qu'elle fournit ou calculer une sorte d'effets marginaux de votre variable indépendante sur votre variable dépendante. Ceci est généralement visualisé comme des graphiques de dépendance partielle. Je suis à peu près sûr que cette dernière chose est fortement influencée par l'échelle des variables, ce qui est un problème lorsque vous essayez d'obtenir des informations de nature plus descriptive auprès de Random Forests. Dans ce cas, cela pourrait vous aider à transformer vos variables (standardiser), ce qui pourrait rendre les diagrammes de dépendance partielle comparables. Pas complètement sûr à ce sujet, devra y penser.

Il n'y a pas longtemps, j'ai essayé de prédire les données de comptage à l'aide d'une forêt aléatoire, régresser sur la racine carrée et le logarithme naturel de la variable dépendante a aidé un peu, pas beaucoup et pas assez pour me permettre de conserver le modèle.

Quelques packages où vous pouvez utiliser des forêts aléatoires pour l'inférence:

https://uc-r.github.io/lime

https://cran.r-project.org/web/packages/randomForestExplainer/index.html

https://pbiecek.github.io/DALEX_docs/2-2-useCaseApartmetns.html

JEquihua
la source
6

Faisant écho à @JEquihua, la précision des prédictions de Random Forest ne s'améliorera pas.

Notez également que si vous conservez à la fois le prédicteur d'origine et le prédicteur transformé (comme cela se fait souvent en régression linéaire), vous risquez de provoquer des problèmes. C'est parce que RF choisit au hasard un sous-ensemble de variables pour faire croître chaque arbre, et vous avez essentiellement mis la variable transformée deux fois. Si c'est un bon prédicteur, il sera utilisé et vos forêts aléatoires ne seront pas aussi décorrélées qu'elles auraient pu l'être, ce qui entraînera une variance plus élevée.

Scott Kaiser
la source
1
Mettre un prédicteur transformé et non transformé dans n'importe quel modèle est une idée terrible. Ils sont parfaitement colinéaires et perturberont certainement votre modèle, qu'il s'agisse de forêt aléatoire ou de régression linéaire.
mkt