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によって、性別を数値化することに成功した。