Devez-vous normaliser les données lors de la création d'arbres de décision à l'aide de R?

10

Ainsi, notre ensemble de données cette semaine a 14 attributs et chaque colonne a des valeurs très différentes. Une colonne a des valeurs inférieures à 1 tandis qu'une autre colonne a des valeurs qui vont de trois à quatre chiffres entiers.

Nous avons appris la normalisation la semaine dernière et il semble que vous soyez censé normaliser les données lorsqu'elles ont des valeurs très différentes. Pour les arbres de décision, le cas est-il le même?

Je ne suis pas sûr de cela, mais la normalisation affecterait-elle l'arbre de décision résultant du même ensemble de données? Il ne semble pas que cela devrait mais ...

Jae
la source

Réponses:

13

Les types d'arbres de décision les plus courants que vous rencontrez ne sont affectés par aucune transformation monotone. Donc, tant que vous conservez orde, les arbres de décision sont les mêmes (évidemment par le même arbre ici, je comprends la même structure de décision, pas les mêmes valeurs pour chaque test dans chaque nœud de l'arbre).

La raison pour laquelle cela se produit est que le fonctionnement des fonctions d'impureté habituelles. Afin de trouver le meilleur fractionnement, il recherche sur chaque dimension (attribut) un point de fractionnement qui est essentiellement une clause if qui regroupe les valeurs cibles correspondant aux instances dont la valeur de test est inférieure à la valeur fractionnée, et à droite les valeurs supérieures à égales. Cela se produit pour les attributs numériques (ce qui, selon moi, est votre cas car je ne sais pas comment normaliser un attribut nominal). Vous remarquerez peut-être maintenant que le critère est inférieur ou supérieur à. Ce qui signifie que les informations réelles des attributs afin de trouver la division (et l'arbre entier) ne sont que l'ordre des valeurs. Ce qui signifie que tant que vous transformerez vos attributs de manière à ce que la commande d'origine soit réservée, vous obtiendrez le même arbre.

Tous les modèles ne sont pas insensibles à ce type de transformation. Par exemple, les modèles de régression linéaire donnent les mêmes résultats si vous multipliez un attribut par quelque chose de différent de zéro. Vous obtiendrez différents coefficients de régression, mais la valeur prédite sera la même. Ce n'est pas le cas lorsque vous prenez un journal de cette transformation. Ainsi, pour la régression linéaire, par exemple, la normalisation est inutile car elle fournira le même résultat.

Cependant, ce n'est pas le cas avec une régression linéaire pénalisée, comme la régression de crête. Dans les régressions linéaires pénalisées, une contrainte est appliquée aux coefficients. L'idée est que la contrainte est appliquée à la somme d'une fonction de coefficients. Maintenant, si vous gonflez un attribut, le coefficient sera dégonflé, ce qui signifie qu'à la fin la pénalisation pour ce coefficient sera artificiellement modifiée. Dans ce genre de situation, vous normalisez les attributs afin que chaque coefficient soit contraint «équitablement».

J'espère que cela aide

rapaio
la source