Label Encoding|前処理シリーズ

機械学習




Label Encodingとは

各カテゴリに、固有の数値を割り当てるエンコーディングをLabel Encodingといいます。

例えば、
[‘埼玉’, ‘東京’, 群馬’, ‘群馬’, 埼玉’, ‘埼玉’]

上のようなカテゴリデータを数値化したい時、Label Encodingを実行すると、

[1, 3, 2, 2, 1, 1]

のように各変数の固有の数値(=id)が割り当てられ、数値化します。

この場合、
‘埼玉’は、1
‘東京’は、3
‘群馬’は、2

のように割り当てられたことになります。

一番わかりやすいエンコーディングなのではないでしょうか。

Label Encodingをsklearnで実装

titanicのデータセットを使います。
https://www.kaggle.com/c/titanic/data

import numpy as np
data = pd.read_csv('train.csv')
data.head(3)

今回は、性別(‘Sex’)について考える。

性別は、カテゴリデータ(文字列)になっているので、数値に直す必要がある。

”’性別は、2種類(male, female)なので、pandasのmapで置き換えればいい話だが・・・”’

print(data['Sex'].value_counts())
print(data['Sex'].unique())
'''
output
male      577
female    314
Name: Sex, dtype: int64
['male' 'female']
'''

LabelEncoder

from sklearn.preprocessing import LabelEncoder

le = LabelEncoder()
le.fit(data['Sex'])
data['Sex'] = le.transform(data['Sex'])

data.head(3)

LabelEncodingによって、性別を数値化することに成功した。

参考

タイトルとURLをコピーしました