Je veux former un classificateur, par exemple SVM, ou une forêt aléatoire, ou tout autre classificateur. L'une des fonctionnalités de l'ensemble de données est une variable catégorielle avec 1000 niveaux. Quelle est la meilleure façon de réduire le nombre de niveaux dans cette variable. Dans R, il y a une fonction appelée combine.levels()
dans le paquet Hmisc , qui combine des niveaux peu fréquents, mais je cherchais d'autres suggestions.
11
Réponses:
La meilleure façon de procéder va varier considérablement en fonction de la tâche que vous effectuez, il est donc impossible de dire ce qui sera le mieux d'une manière indépendante de la tâche.
Il y a deux choses faciles à essayer si vos niveaux sont ordinaux:
Si les niveaux ne sont pas ordinaux, vous pouvez regrouper les niveaux en fonction d'autres entités / variables de votre ensemble de données et substituer les ID de cluster aux niveaux précédents. Il existe autant de façons de procéder que d'algorithmes de clustering, le champ est donc largement ouvert. Comme je l'ai lu, c'est ce qui
combine.levels()
se passe. Vous pouvez faire de même en utilisantkmeans()
ouprcomp()
. (Vous pourriez / devriez par la suite former un classificateur pour prédire les clusters pour les nouveaux points de données.)la source