sklearn.preprocessing.LabelEncorder を使い、カテゴリを数値化してみる
Python
Published: 2019-08-12

やったこと

カテゴリを数値に置き換えるため、sklearn の LabelEncorder を使ってみます。

確認環境

$ ipython --version
6.1.0
$ jupyter --version
4.3.0
$ python --version
Python 3.6.2 :: Anaconda custom (64-bit)
import sklearn
print(sklearn.__version__)

出力結果

0.21.2

調査

from sklearn.preprocessing import LabelEncoder
import pandas as pd

df = pd.DataFrame([
    ['green', 'M', 10.1, 'class1'],
    ['red', 'L', 13.5, 'class2'],
    ['blue', 'XL', 15.3, 'class1']
])
df.columns = ['color', 'size', 'price', 'classlabel']
class_le = LabelEncoder()
y = class_le.fit_transform(df['classlabel'].values)
print(y)
# クラスラベルを整数から文字列に戻す
print(class_le.inverse_transform(y))

出力結果

[0 1 0]
['class1' 'class2' 'class1']

参考