Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ カテゴリ変数のエンコーディング | セクション
データ前処理と特徴量エンジニアリング

bookカテゴリ変数のエンコーディング

メニューを表示するにはスワイプしてください

カテゴリ変数は、数値ではなくカテゴリを表すデータ内の特徴量。例として、"red""green""blue"などの色や、"yes""no"などのラベルが挙げられる。機械学習アルゴリズムは数値データを入力として必要とするため、これらのカテゴリ変数をモデルで使用する前に数値形式へ変換する必要がある。この処理はエンコーディングと呼ばれ、アルゴリズムがデータを正しく解釈し学習できるようにする。

Note
定義

ワンホットエンコーディングは、カテゴリ変数の各カテゴリごとに新しいバイナリ列を作成する。各観測値は、自身のカテゴリに対応する列に1、それ以外の列に0が割り当てられる。

12345678910111213
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # One-hot encode the 'embarked' column embarked_encoded = pd.get_dummies(data["embarked"], prefix="embarked") # Concatenate with original dataset data = pd.concat([data, embarked_encoded], axis=1) print(data[["embarked", "embarked_C", "embarked_Q", "embarked_S"]].head())
copy
Note
定義

ラベルエンコーディングは、変数内の各ユニークなカテゴリに整数値を割り当て、テキストラベルを数値に変換する手法。

123456789101112
import seaborn as sns import pandas as pd from sklearn.preprocessing import LabelEncoder # Load Titanic dataset data = sns.load_dataset("titanic") # Label encode the 'sex' column encoder = LabelEncoder() data["sex_encoded"] = encoder.fit_transform(data["sex"]) print(data[["sex", "sex_encoded"]].head())
copy
Note
定義

順序エンコーディングは、カテゴリの自然な順位に基づいて順序付きの整数値を割り当てる手法。この方法は、教育レベル("high school""bachelor""master""doctorate"など)のような順序付きカテゴリ変数における本来の順序を保持する。

123456789101112131415161718
import seaborn as sns import pandas as pd # Load Titanic dataset data = sns.load_dataset("titanic") # Define the order of passenger classes: First < Second < Third class_order = ["First", "Second", "Third"] # Apply ordered categorical encoding data["class_encoded"] = pd.Categorical( data["class"], categories=class_order, ordered=True ).codes + 1 # +1 to make classes start from 1 instead of 0 # Display sample output print(data[["class", "class_encoded"]].head())
copy
Note
注意

カテゴリ変数をエンコーディングする際は注意が必要です。ワンホットエンコーディングは、ダミー変数トラップ(特徴量間の高い相関が発生し、一部のモデルで混乱を招く状況)を引き起こす可能性があります。これを回避するには、ダミーカラムのうち1つを削除する方法があります。ラベルエンコーディングはカテゴリ間に順序関係を持たせるため、名義データには適切でない場合があります。

question mark

"Color"のように本質的な順序がないカテゴリ変数には、どのエンコーディング手法が最も適切ですか?

正しい答えを選んでください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 1.  6

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 1.  6
some-alt