J'essayais d'utiliser les importances de fonctionnalités de Random Forests pour effectuer une sélection de fonctionnalités empiriques pour un problème de régression où toutes les fonctionnalités sont catégoriques et beaucoup d'entre elles ont de nombreux niveaux (de l'ordre de 100-1000). Étant donné que l'encodage à chaud crée une variable fictive pour chaque niveau, l'importance des fonctionnalités est pour chaque niveau et non pour chaque fonctionnalité (colonne). Quelle est la bonne façon d'agréger ces importances de fonctionnalités?
J'ai pensé à additionner ou à obtenir l'importance moyenne pour tous les niveaux d'une fonctionnalité (probablement la première sera orientée vers les fonctionnalités avec plus de niveaux). Y a-t-il des références sur cette question?
Que peut-on faire d'autre pour diminuer le nombre de fonctionnalités? Je connais le lasso de groupe, je n'ai rien trouvé de facile à utiliser pour scikit-learn.
Réponses:
Cela dépend de la façon dont vous les codez à chaud. De nombreuses solutions automatisées pour cela nommeront tous les booléens convertis avec un modèle de sorte qu'une variable catégorielle appelée "lettre" avec des valeurs AZ finirait comme:
lettre_A, lettre_B, lettre_C, lettre_D, ....
Si après avoir déterminé l'importance des fonctionnalités, vous disposez d'un tableau de fonctionnalités et du poids / importance associé, j'analyserais le tableau et résumerais peut-être les poids d'importance des fonctionnalités pour tout ce qui commence par "lettre%".
la source