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
/ log
avant 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?
Réponses:
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
la source
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.
la source