J'essaie de comprendre comment je peux coder des variables catégorielles en utilisant une estimation de vraisemblance, mais j'ai eu peu de succès jusqu'à présent.
Toutes les suggestions seraient grandement appréciées.
feature-engineering
petit nain
la source
la source
Réponses:
J'apprenais aussi ce sujet, et voici ce que j'ai trouvé:
Ce type de codage est appelé codage de vraisemblance , codage d'impact ou codage cible
L'idée est d'encoder votre variable catégorielle à l'aide de la variable cible (continue ou catégorielle selon la tâche). Par exemple, si vous avez une tâche de régression, vous pouvez encoder votre variable catégorielle avec la moyenne de la cible. Pour chaque catégorie, vous calculez la moyenne correspondante de la cible (parmi cette catégorie) et remplacez la valeur d'une catégorie par cette moyenne.
Si vous avez une tâche de classification, vous calculez la fréquence relative de votre cible par rapport à chaque valeur de catégorie.
D'un point de vue mathématique, ce codage signifie une probabilité de votre cible, conditionnelle à chaque valeur de catégorie.
Si vous le faites de manière simple, comme je l'ai décrit ci-dessus, vous obtiendrez probablement une estimation biaisée. C'est pourquoi dans la communauté Kaggle, ils utilisent généralement 2 niveaux de validation croisée. Lisez ce commentaire de raddar ici . Le carnet correspondant est ici .
La citation:
Une autre implémentation de ce codage est ici .
Dans la bibliothèque R vtreat, ils ont implémenté un codage d'impact. Voir cet article .
Dans la bibliothèque CatBoost, ils ont beaucoup d'options pour l'encodage des variables catégorielles, y compris l'encodage cible.
Il n'y a pas encore de tel encodage dans sklearn.
la source
L'encodage cible est désormais disponible dans sklearn via le package category_encoders.
Comme indiqué par Josh dans le commentaire ci-dessus.
la source
L'encodage de vraisemblance n'est toujours pas disponible sur scikit learn. Vous pouvez le faire en créant un dictionnaire, puis effectuez une fonction de remplacement.
la source