[PYTHON] Conversion du "Kaggle Memorandum" en un vecteur unique

Objectif

Convertir les variables qualitatives (variables de catégorie) en vecteurs One-hot

Données d'utilisation / environnement

Données: données de kaggle Titanic

Environnement: cahier kaggle

Méthode

onehot_encoding.py


#Importation de modules, préparation du système d'exploitation
import numpy as np
import pandas as pd 
import matplotlib as plt 
import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))

Lire les données

onehot_encoding.py


train_data=pd.read_csv('../input/titanic/train.csv')
test_data=pd.read_csv('../input/titanic/test.csv')

Jetez un œil aux données

onehot_encoding.py


train.data.head()
スクリーンショット 2020-02-17 23.13.00.png

Vous pouvez voir qu'il existe plusieurs blocs de données pour les variables catégorielles. Essayez de les convertir en vecteurs One-hot.

Pour le moment, il est difficile de gérer la chaîne de caractères telle quelle, alors attribuez des valeurs numériques différentes à chaque catégorie. Utilisez factorize () de Pandas.

factorize () renvoie à la fois des données numériques (emb_cat_encoded) et une liste de catégories (emb_categories).

onehot_encoding.py


train_cat=train_data['Embarked']
train_cat_encoded,train_categories=train_cat.factorize()

#Regarde
print(train_cat.head())
print(train_cat_encoded[:10])
print(train_categories)
スクリーンショット 2020-02-17 23.17.10.png

Ensuite, convertissez-vous en vecteur one-hot

Utilisez OneHotEncoder fourni par scikit-learn.

onehot_encoding.py


#scikit-Importer OneHotEncoder à partir de learn
from sklearn.preprocessing import OneHotEncoder

#one-Convertir en vecteur chaud
oe=OneHotEncoder(categories='auto')
train_cat_1hot=oe.fit_transform(train_cat_encoded.reshape(-1,1))

#Jetez un œil à l'intérieur
train_cat_1hot
スクリーンショット 2020-02-17 23.21.03.png

Conversion terminée.

Recommended Posts

Conversion du "Kaggle Memorandum" en un vecteur unique
Un mémorandum concernant la conversion γ
Introduction à la commande vi (Remarque)