1

Il semble facile de coder plusieurs variables catégorielles à chaud à la fois en utilisant la méthode get_dummies, mais comment se rappeler laquelle est telle que mes données de test ont la même fonctionnalité que mes données d'entraînement? par exemple:pandas get_dummies comment se souvenir quelle valeur deviens quelle nouvelle catégorie?

Mon jeu de données de formation a une fonction CATÉGORIQUE:

X 
    cat 
    dog 
    lion 
    lion 

après get_dummies, je suis quelque chose comme ceci:

X_1 X_2 X_3 
    1  0  0 
    0  1  0 
    0  0  1 
    0  0  1 

après modèle de formation, je suis prêt à tester ma magie impressionnante modèle et voici les données de test:

X 
    cat 
    cat 
    lion 

si j'applique les méthodes pd.get_dummies, Je vais obtenir quelque chose comme ceci:

X_1  X_2 
    1  0 
    1  0 
    0  1 

qui sera incompatible avec mes fonctions de données de train et je ne peux pas tout simplement appliquer mon modèle aux données de test.

des suggestions afin que je puisse obtenir un peu comme ce qui suit?

X_1 X_2 X_3 
    1  0  0 
    1  0  0 
    0  0  1 

Comment puis-je obtenir une fonctionnalité d'ajustement et de transformation? encore une fois, j'ai plus de 50 caractéristiques catégorielles et je ne peux pas appliquer LabelEncoder et One_Hot_Encoder à eux un par un.

Une suggestion? Je vous remercie.

+1

Version courte: définissez les catégories à l'avance et transtypez le type en catégorie. Maintenant, lorsque vous appelez get_dummies, les pandas génèrent des colonnes pour toutes les catégories, même si elles n'existent pas dans cet ensemble de données particulier. – ayhan

+0

Oh wow ... il y a une dupe ... et la solution est merveilleuse –

+0

@ayhan, la réponse dans la pose que vous avez mentionnée est assez pratique s'il y a une poignée de fonctionnalités, et s'il y a plus de 50 fonctionnalités de catégorie ... alternatives? – user6396

Répondre

0

J'utilise get_dummies pour toutes les données, après que je l'ai divisé en formation et test.

+0

Parfois, ce n'est pas une option faisable ... alors quoi? –

+0

Nope, ne fonctionnera pas dans le monde réel – user6396