web-dev-qa-db-fra.com

Dois-je normaliser (ou mettre à l'échelle) les données de randomForest (package R)?

Je suis en train de faire une tâche de régression - dois-je normaliser (ou mettre à l'échelle) les données de randomForest (package R)? Et est-il nécessaire d’adapter également les valeurs cibles? Ne savez-vous pas qu'il existe une autre fonction (dans n'importe quel paquet) utile pour la normalisation/dénormalisation? Merci, Milan

47
gutompf

Non, la mise à l'échelle n'est pas nécessaire pour les forêts aléatoires.

  • La nature de RF est telle que les problèmes de convergence et de précision numérique, qui peuvent parfois dérégler les algorithmes utilisés dans la régression logistique et linéaire, ainsi que les réseaux de neurones, ne sont plus aussi importants. De ce fait, vous n'avez pas besoin de transformer les variables en une échelle commune comme vous le feriez avec un NN.

  • Vous n'obtenez pas d'analogue d'un coefficient de régression, qui mesure la relation entre chaque variable prédictive et la réponse. Pour cette raison, vous n'avez pas non plus besoin de réfléchir à la manière d'interpréter de tels coefficients, qui sont affectés par des échelles de mesure variables.

56
Hong Ooi

La mise à l'échelle permet de normaliser les données de sorte que la priorité ne soit pas donnée à une caractéristique particulière ..__ Le rôle de la mise à l'échelle est principalement important dans les algorithmes basés sur la distance et qui nécessitent une distance euclidienne.

Random Forest est un modèle basé sur une arborescence et par conséquent, ne nécessite pas de redimensionnement des fonctionnalités.

Cet algorithme nécessite un partitionnement, même si vous appliquez la normalisation, le résultat sera identique.

2
shaurya uppal

Je ne vois aucune suggestion dans la page d'aide ou dans la vignette suggérant que la mise à l'échelle est nécessaire pour une variable de régression dans randomForest. Cet exemple à Stats Exchange n'utilise pas non plus la mise à l'échelle.

Copie de mon commentaire: La fonction scale n'appartient pas à pkg: caret. Cela fait partie du paquet "base" R. Il existe une fonction unscale dans les packages grt et DMwR qui inversera la transformation, ou vous pouvez simplement multiplier par l'attribut scale puis ajouter les valeurs d'attribut center. 

Votre conception de la raison pour laquelle la "normalisation" doit être effectuée peut nécessiter un examen critique. Le test de non-normalité n'est nécessaire qu'après les régressions et peut ne pas être nécessaire du tout s'il n'y a pas d'hypothèses de normalité dans la méthodologie de la validité de l'ajustement. Alors: Pourquoi demandez-vous? La recherche dans SO et Stats.Exchange peut s'avérer utile: citation # 1 ; citation n ° 2 ; citation # 3

La fonction boxcox est une transformation couramment utilisée quand on n'a pas la connaissance préalable de ce qu'une distribution "devrait" être et quand vous avez vraiment besoin de faire une transformation. L’application des transformations présente de nombreux pièges. Le fait que vous ayez à poser la question soulève la crainte que vous ayez peut-être besoin de plus amples consultations ou d’une auto-étude.

2
42-

Si vous allez ajouter des interactions à un jeu de données - c’est-à-dire que la nouvelle variable est une fonction d’autres variables (généralement une simple multiplication), et que vous ne sentez pas ce que cette nouvelle variable représente (vous ne pouvez pas l’interpréter), vous devez calculer cette variable en utilisant variables à l'échelle.

1
Qbik

Devinez, que va-t-il se passer dans l'exemple suivant? Imaginez, vous avez 20 caractéristiques prédictives, 18 d’entre elles se situent dans la plage [0; 10] et les 2 autres dans la plage [0; 1 000 000] (prises d’un exemple réel). Question 1: quelles sont les caractéristiques de la forêt aléatoire assignées? Question 2: qu'adviendra-t-il de l'importance des fonctionnalités après la mise à l'échelle des 2 fonctionnalités à large bande? 

La mise à l'échelle est importante. C'est que Random Forest est moins sensible à la mise à l'échelle que les autres algorithmes et peut fonctionner avec des fonctionnalités "grossièrement". 

1

Random Forest utilise information gain / gini coefficient de manière inhérente, ce qui ne sera pas affecté par la mise à l’échelle, contrairement à de nombreux autres modèles d’apprentissage automatique (tels que le clustering k-means, PCA, etc.). Cependant, cela pourrait «indiscutablement» accélérer la convergence, comme indiqué dans d'autres réponses

0
Vaibhav