[PYTHON] Méthode d'encodage à chaud "utilisable" pour l'apprentissage automatique

introduction

Même si j'étudie, je l'oublierai bientôt, donc je posterai un article à Qiita pour un mémorandum et une pratique de sortie. Je vous serais reconnaissant de bien vouloir commenter les erreurs ou les meilleurs moyens.

Idée

Je souhaite effectuer un encodage à chaud avec l'apprentissage automatique, mais je ne sais pas quel type de données se trouvent dans les données de test. Chaque site dit que si vous voulez faire un encodage à chaud, vous devez utiliser get_dummies, mais par exemple ** train_df ['sex'] a Male et Female, maistest_df ['sex']a seulement Male ** Dans un tel cas, si vous utilisez normalement get_dummies, le nombre de colonnes créées changera. Ce n'est pas bon.

Après de nombreuses recherches, je suis arrivé à l'article suivant.

[Python] N'utilisez pas pandas.get_dummies pour l'apprentissage automatique

L'article lui-même n'utilise pas get_dummies, mais utilise le ʻOne Hot Encoderdesklearn. Cependant, je voulais analyser les données au format Pandas et enfin les convertir au format Numpy, donc j'étais particulier à faire quelque chose avec Pandas`.

Cela est expliqué dans le commentaire de l'article ↑, et dans cet article je vais le laisser tomber au point que je puisse le mâcher à ma manière.

la mise en oeuvre

L'implémentation finit par utiliser get_dummies.

# (i) df_Un unique de train est"hoge"Quand"fuga".. B unique"a"Quand"b"
df_train = pd.DataFrame({"A": ["hoge", "fuga"], "B": ["a", "b"]})

# (ii) df_Un unique de train est"hoge"Quand"piyo".. B unique"a"Quand"c"
df_test = pd.DataFrame({"A": ["hoge", "piyo"], "B": ["a", "c"]})

# (iii)Dans la catégorie A est"hoge"Quand"fuga", B"a"Quand"b"だよQuand決め打ちしてしまう
df_train["A"] = pd.Categorical(df_train["A"], categories=["hoge", "fuga"])
df_train["B"] = pd.Categorical(df_train["B"], categories=["a", "b"])
df_test["A"] = pd.Categorical(df_test["A"], categories=["hoge", "fuga"])
df_test["B"] = pd.Categorical(df_test["B"], categories=["a", "b"])

# (iv) get_un avec des mannequins-hot
df_train = pd.get_dummies(df_train)
df_test = pd.get_dummies(df_test)

Les dernières données uniques sont les suivantes.

df_train
   A_hoge  A_fuga  B_a  B_b
0       1       0    1    0
1       0       1    0    1
df_test
   A_hoge  A_fuga  B_a  B_b
0       1       0    1    0
1       0       0    0    0

J'ai pu utiliser en toute sécurité uniquement le train unique. Cette fois, il a été pris en charge par un codage en dur, mais si vous utilisez ʻunique` séparément, vous pouvez le gérer de manière plus flexible.

Supplément

La raison pour laquelle df_train corrige également la catégorie est que si cela n'est pas fait, l'ordre de hoge et fuga sera inversé.

Recommended Posts

Méthode d'encodage à chaud "utilisable" pour l'apprentissage automatique
Prétraitement japonais pour l'apprentissage automatique
Méthode d'étude pour apprendre le machine learning à partir de zéro (version mars 2020)
Sortie de méthode d'apprentissage pour l'acquisition LPIC
<Pour les débutants> bibliothèque python <Pour l'apprentissage automatique>
Informations sur les réunions d'apprentissage automatique pour HRTech
Algorithme d'apprentissage automatique (méthode de descente de gradient)
[Balisage recommandé pour l'apprentissage automatique # 4] Script d'apprentissage automatique ...?
Méthode Newton pour l'apprentissage automatique (de 1 variable à plusieurs variables)
Apprentissage automatique
Amplifiez les images pour l'apprentissage automatique avec Python
Premiers pas pour les débutants en apprentissage automatique (IA)
Une introduction à OpenCV pour l'apprentissage automatique
[Shakyo] Rencontre avec Python pour l'apprentissage automatique
[Python] Conception d'applications Web pour l'apprentissage automatique
Une introduction à Python pour l'apprentissage automatique
Créer un environnement de développement pour l'apprentissage automatique
Une introduction à l'apprentissage automatique pour les développeurs de robots
Encodage partiel à chaud
Ordre d'étude recommandé pour les débutants en apprentissage automatique / apprentissage en profondeur
Apprentissage automatique à partir de 0 pour les étudiants en physique théorique # 1
[Python] Collectez des images avec Icrawler pour l'apprentissage automatique [1000 feuilles]
Apprentissage automatique à partir de 0 pour les étudiants en physique théorique # 2
[Memo] Apprentissage automatique
Collecter des images pour l'apprentissage automatique (API Bing Search)
Classification de l'apprentissage automatique
[Pour les débutants] Introduction à la vectorisation dans l'apprentissage automatique
Un mémorandum de méthode souvent utilisé dans l'apprentissage automatique utilisant scikit-learn (pour les débutants)
Exemple d'apprentissage automatique
Script Python de collection d'images pour créer des ensembles de données pour l'apprentissage automatique
Créez un environnement interactif pour l'apprentissage automatique avec Python
[Balisage recommandé dans le machine learning # 2] Extension du script de scraping
[Balisage recommandé dans le machine learning # 2.5] Modification du script de scraping
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer du chapitre 2
Mémo d'apprentissage Python pour l'apprentissage automatique par Chainer chapitres 1 et 2
Méthode de voisinage #k d'apprentissage automatique et sa mise en œuvre et divers
Préparation au démarrage de «Python Machine Learning Programming» (pour macOS)
[Python] J'ai créé un classificateur pour les iris [Machine learning]
14 newsletters par e-mail utiles pour collecter des informations sur l'apprentissage automatique
Mémo de construction d'environnement d'apprentissage automatique par Python
xgboost: modèle d'apprentissage automatique efficace pour les données de table
Tout pour que les débutants puissent faire du machine learning
Résumé du didacticiel d'apprentissage automatique
Apprentissage automatique ⑤ Résumé AdaBoost
Apprentissage automatique: supervisé - AdaBoost
Renforcer l'apprentissage de la troisième ligne
Machine de vecteur de support d'apprentissage automatique
Étudier l'apprentissage automatique ~ matplotlib ~
Régression linéaire d'apprentissage automatique
Mémo du cours d'apprentissage automatique
Bibliothèque d'apprentissage automatique dlib
Apprentissage automatique (TensorFlow) + Lotto 6
Apprenez en quelque sorte le machine learning
Résumé de l'apprentissage RAPIDS
Bibliothèque d'apprentissage automatique Shogun
Défi de lapin d'apprentissage automatique
Introduction à l'apprentissage automatique
Apprentissage automatique: k-voisins les plus proches
Qu'est-ce que l'apprentissage automatique?
Reconstruction de l'environnement pour l'apprentissage automatique avec Miniconda (version Windows)