Est-il essentiel de normaliser SVM et Random Forest?

29

Chaque dimension de mes fonctionnalités a une plage de valeurs différente. Je veux savoir s'il est essentiel de normaliser cet ensemble de données.

user22062
la source

Réponses:

29

La réponse à votre question dépend de la fonction de similitude / distance que vous prévoyez d'utiliser (dans les SVM). S'il s'agit d'une distance euclidienne simple (non pondérée), alors si vous ne normalisez pas vos données, vous donnez involontairement plus d'importance à certaines fonctionnalités qu'à d'autres.

Par exemple, si votre première dimension varie de 0 à 10 et la deuxième dimension de 0 à 1, une différence de 1 dans la première dimension (juste un dixième de la plage) contribue autant au calcul de la distance que deux valeurs très différentes dans la deuxième dimension (0 et 1). Donc, en faisant cela, vous exagérez de petites différences dans la première dimension. Vous pouvez bien sûr proposer une fonction de distance personnalisée ou pondérer vos dimensions par une estimation d'un expert, mais cela entraînera de nombreux paramètres ajustables en fonction de la dimensionnalité de vos données. Dans ce cas, la normalisation est un chemin plus facile (bien que pas nécessairement idéal) car vous pouvez au moins commencer.

Enfin, toujours pour les SVM, une autre chose que vous pouvez faire est de trouver une fonction de similarité plutôt qu'une fonction de distance et de la brancher en tant que noyau (techniquement, cette fonction doit générer des matrices définies positives). Cette fonction peut être construite comme vous le souhaitez et peut prendre en compte la disparité des plages de fonctionnalités.

En revanche, pour les forêts aléatoires, étant donné qu'une entité n'est jamais comparée en magnitude à d'autres entités, les plages n'ont pas d'importance. Seule la gamme d'une fonction est divisée à chaque étape.

Ansari
la source
12

Random Forest est invariant aux transformations monotones des caractéristiques individuelles. Les traductions ou les échelles par fonction ne changeront rien pour la forêt aléatoire. SVM fera probablement mieux si vos fonctionnalités ont à peu près la même ampleur, à moins que vous ne sachiez a priori que certaines fonctionnalités sont beaucoup plus importantes que d'autres, auquel cas il est normal qu'elles aient une plus grande ampleur.

rrenaud
la source