ラベルエンコーディング

Label Encoding

ラベルエンコーディング(Label Encoding)とは、カテゴリ変数の各カテゴリに整数値を割り当てる変換手法です。例えば{小、中、大}を{0, 1, 2}に変換します。

適用が適切な場面

順序関係のあるカテゴリ(小<中<大、低学歴<中学歴<高学歴など)には適していますが、順序のないカテゴリ(赤、青、緑など)に使うと、数値の大小関係がモデルに誤った情報を与える可能性があります。

表:ラベルエンコーディングの要点まとめ
ひとことで言うとカテゴリに0,1,2…と整数を割り当てるシンプルな変換方法。
どこで使う順序のあるカテゴリ(S/M/L)、決定木系モデルへの入力。
注意点順序のないカテゴリに使うと、線形モデルが誤った大小関係を学んでしまう。

決定木系モデルでの利用

決定木ベースのモデル(ランダムフォレスト、XGBoost等)では、分割条件が「値がN以下か否か」の形式であるため、ラベルエンコーディングでも適切に動作します。メモリ効率もワンホットエンコーディングより優れています。

図:ラベルエンコーディングの流れ
1カテゴリを列挙S / M / L
▶
2整数を割り当て0 / 1 / 2
▶
31列のまま列が増えない
▶
4モデルに入力木系なら問題なし

※ 順序がないカテゴリを線形回帰に入れるときは、ワンホットを使ってください。