0
1

More than 3 years have passed since last update.

scikit-learnのLabelEncoderを使ってみる(初心者向け)

Posted at

文字データを数字に置換する必要があるときに、便利!

やっている事

タイタニック号のデータセットを利用して

  • 任意のラベル名のカラム値を文字→数字へ変換
  • 数字へ変換されたものを、文字に戻す

準備

タイタニック号のデータは、seabornに入っているので、呼び出します。

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

titanic = sns.load_dataset("titanic")

数字へ変換されたラベルを、文字ラベルに戻すために辞書を用意

le_dict = {}

中身を確認

print(titanic.head())

image.png

実行

任意のラベル(sex, class)があるカラムのみ、文字→数字へ置き換えます

for column in ["sex", "class"]:
    le_dict[column] = preprocessing.LabelEncoder()
    le_dict[column].fit(titanic[column])
    titanic[column] = le_dict[column].transform(titanic[column])

結果を確認

print(titanic.head())

male -> 1, female ->0などに置き換えられたことが確認できます。
image.png

ラベルを戻す

inverse_transform()を利用すれば戻すことができます。

for column in ["sex", "class"]:
    titanic[column] = le_dict[column].inverse_transform(titanic[column])

結果を確認

print(titanic.head())

何事もなかったかのように戻りました
image.png

全コード

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

titanic = sns.load_dataset("titanic")
le_dict = {}

print(titanic.head())

for column in ["sex", "class"]:
    le_dict[column] = preprocessing.LabelEncoder()
    le_dict[column].fit(titanic[column])
    titanic[column] = le_dict[column].transform(titanic[column])

print(titanic.head())

for column in ["sex", "class"]:
    titanic[column] = le_dict[column].inverse_transform(titanic[column])

print(titanic.head())

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1