符号化
エンコーディング手法
一般的な利用頻度順に並べています
1. ワンホットエンコーディング (One-Hot Encoding)
各カテゴリに対して配列を作成し、該当するカテゴリには1、それ以外には0を割り当てます。
2. ラベルエンコーディング (Label Encoding)
各カテゴリにユニークな整数を割り当てます。
例えばA=0,B=1,C=2などです。
3. ダミーエンコーディング (Dummy Encoding)
ワンホットエンコーディングと似ていますが、カテゴリ変数の各レベルに対して一つ少ないダミー変数を生成します。全て0を一つのカテゴリとして扱います。
4. ordinalエンコーディング (Ordinal Encoding)
カテゴリを順序付けられた整数に変換します。カテゴリに自然な順序がある場合に使用します。例えば'low'=0,'middle'=1,'high'=2などで、結果的にラベルエンコーディングと似たエンコーディングになることもあります。
5. バイナリエンコーディング (Binary Encoding)
カテゴリを整数に変換(ラベルエンコード)した後、それをバイナリ数として表現します。
6. ターゲットエンコーディング (Target Encoding)
カテゴリを、そのカテゴリに属する目的変数の平均値に置き換えます。他のfoldの平均値を利用するなどしてリークを防ぎます。
推論時には目的変数が存在しないため、学習時に利用したエンコード値を利用します。
7. frequencyエンコーディング (Frequency Encoding)
カテゴリを、そのカテゴリがデータセットに出現する頻度に置き換えます。
※以降は利用シーンが限定的になります。
8. Effectエンコーディング (Effect Encoding)
各カテゴリを-1、0、または1の値でエンコードします。カテゴリの平均を基準とした比較が可能になります。
9. ベースNエンコーディング (BaseN Encoding)
バイナリエンコーディングの一般化で、2以外の基数(例えば3進数など)を使用してカテゴリをエンコードします。
10. ハッシングエンコーディング (Hashing Encoding)
カテゴリをハッシュ関数を用いて固定長のベクトルに変換します。特徴量の次元を削減できます。
11. Leave-One-Out Encoding (LOO Encoding)
各カテゴリを、そのカテゴリを除いた全データの目的変数の平均値で置き換えます。
12. Ranked Frequencyエンコーディング (Ranked Frequency Encoding)
カテゴリをその出現頻度に基づいてランク付けし、それに基づいて数値を割り当てます。
13. ヘルメルトエンコーディング (Helmert Encoding)
各カテゴリが前のすべてのカテゴリの平均との対比でエンコードされます。カテゴリに対応する数字(の差異)を利用してエンコードするという操作は、カテゴリ列以外のデータを利用するという点でターゲットエンコーディングに似ています。
14. バックワードディファレンスエンコーディング (Backward Difference Encoding)
各カテゴリが前のカテゴリ(直前のカテゴリのみ)との差異に基づいてエンコードされます。