[PYTHON] "Kaggle Memorandum" Konvertierung in einen heißen Vektor

Zweck

Konvertieren Sie qualitative Variablen (Kategorievariablen) in One-Hot-Vektoren

Nutzungsdaten / Umgebung

Daten: Kaggles Titanic Daten

Umgebung: Kaggle-Notizbuch

Methode

onehot_encoding.py


#Modulimport, Betriebssystemvorbereitung
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))

Daten lesen

onehot_encoding.py


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

Schauen Sie sich die Daten an

onehot_encoding.py


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

Sie können sehen, dass es mehrere Datenrahmen für kategoriale Variablen gibt. Ziel ist es, diese in One-Hot-Vektoren umzuwandeln.

Derzeit ist es schwierig, die Zeichenfolge so zu behandeln, wie sie ist. Weisen Sie daher jeder Kategorie unterschiedliche numerische Werte zu. Verwenden Sie Pandas 'factorize () `.

factorize () gibt sowohl numerische Daten (emb_cat_encoded) als auch eine Liste von Kategorien (emb_categories) zurück.

onehot_encoding.py


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

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

Konvertieren Sie dann in einen One-Hot-Vektor

Verwenden Sie den von scikit-learn bereitgestellten OneHotEncoder.

onehot_encoding.py


#scikit-Importieren Sie OneHotEncoder aus learn
from sklearn.preprocessing import OneHotEncoder

#one-In heißen Vektor konvertieren
oe=OneHotEncoder(categories='auto')
train_cat_1hot=oe.fit_transform(train_cat_encoded.reshape(-1,1))

#Schau mal rein
train_cat_1hot
スクリーンショット 2020-02-17 23.21.03.png

Konvertierung abgeschlossen.

Recommended Posts

"Kaggle Memorandum" Konvertierung in einen heißen Vektor
Ein Memorandum zur γ-Umwandlung
Einführung in den Befehl vi (Hinweis)