ワンホットエンコーディング(One-Hot Encoding)とは、カテゴリ変数を機械学習モデルが扱える数値形式に変換する手法です。各カテゴリに対応するバイナリ(0/1)の列を作成し、該当するカテゴリのみ1、他はすべて0とします。
変換例
色={赤、青、緑}という3カテゴリの変数は、赤=[1,0,0]、青=[0,1,0]、緑=[0,0,1]の3つの列に変換されます。これにより、カテゴリ間に順序関係がないことをモデルに正しく伝えることができます。
| ひとことで言うと | カテゴリごとに列を作り、該当するところだけ1にする変換方法。 |
|---|---|
| 何がうれしいか | 順序のないカテゴリに、誤った大小関係を持ち込まずに済む。 |
| 注意点 | カテゴリ数が多いと列が爆発する。数十種類を超えたら別の方法を検討。 |
注意点
カテゴリ数が多い変数(都道府県名など)に適用すると次元数が爆発する「次元の呪い」が発生します。この場合、ターゲットエンコーディングやエンティティエンベディングなどの代替手法が有効です。
1元の列地域=東京
▶
2カテゴリ数だけ列作成東京/大阪/福岡
▶
3該当だけ11, 0, 0
▶
4モデルに入力順序の誤解が起きない
ダミー変数トラップ
線形回帰ではN個のカテゴリからN-1個のダミー変数を作成する必要があります(多重共線性の回避)。決定木系やニューラルネットワークではこの制約はありません。