Python
機械学習
scikit-learn
データ分析
Kaggle
More than 1 year has passed since last update.

はじめに

分類器にかける前に文字データを離散の数値に変換するときに使われる。細かい処理などはできないが、とりあいず離散数値にして分類器にかけたいときによく使います。

使い方

>>> le = preprocessing.LabelEncoder()
>>> le.fit(["paris", "paris", "tokyo", "amsterdam"])
LabelEncoder()
>>> list(le.classes_)
['amsterdam', 'paris', 'tokyo']
>>> le.transform(["tokyo", "tokyo", "paris"]) 
array([2, 2, 1]...)
>>> list(le.inverse_transform([2, 2, 1]))
['tokyo', 'tokyo', 'paris']

le.fit()の部分で変換したいデータを選択します。そしてle.transform()で数値へ変換します。

実際にタイタニックのデータを変換してみたいと思います。タイタニックのデータはseabornの中にあるのでそれを使います。

import seaborn as sns
import pandas as pd
from sklearn import preprocessing

titanic = sns.load_dataset("titanic")

for column in ['sex','class']:
#     print(titanic[column].shape)
    le = preprocessing.LabelEncoder()
    le.fit(titanic[column])
    titanic[column] = le.transform(titanic[column])

titanic

今回はsex,classを変換してみました。便利なので皆さんもぜひ使ってみてください。

参照

http://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html