- ラベルエンコーディング: ラベルエンコーディングは、カテゴリを数値に変換する方法です。各カテゴリに一意の数値を割り当てます。Pythonのscikit-learnライブラリを使用すると、次のように実装できます。
from sklearn.preprocessing import LabelEncoder
categories = ["cat", "dog", "rabbit", "cat", "dog"]
encoder = LabelEncoder()
encoded_categories = encoder.fit_transform(categories)
print(encoded_categories)
出力:
[0 1 2 0 1]
- ワンホットエンコーディング: ワンホットエンコーディングは、各カテゴリをバイナリベクトルに変換する方法です。各カテゴリに対して、新しい列を作成し、そのカテゴリに対応する列の値を1に設定し、他の列の値を0に設定します。Pandasライブラリを使用して次のように実装できます。
import pandas as pd
categories = ["cat", "dog", "rabbit", "cat", "dog"]
df = pd.DataFrame({"category": categories})
encoded_categories = pd.get_dummies(df["category"])
print(encoded_categories)
出力:
cat dog rabbit
0 1 0 0
1 0 1 0
2 0 0 1
3 1 0 0
4 0 1 0
- カテゴリの埋め込み: カテゴリの埋め込みは、カテゴリを連続値のベクトルに変換する方法です。これは主に深層学習モデルで使用されます。例えば、PythonのTensorFlowライブラリを使用して次のように実装できます。
import tensorflow as tf
from tensorflow.keras.layers import Embedding
categories = ["cat", "dog", "rabbit", "cat", "dog"]
encoder = tf.keras.preprocessing.text.Tokenizer()
encoder.fit_on_texts(categories)
encoded_categories = encoder.texts_to_sequences(categories)
print(encoded_categories)
出力:
[[1], [2], [3], [1], [2]]
これらは、Pythonでカテゴリをエンコードするためのシンプルで一般的な方法です。あなたの特定の要件や使用環境に応じて、最適な方法を選択できます。