Open1
One-Hotエンコーディング(One-Hot Encoding)
One-Hotエンコーディング(One-Hot Encoding)
概要
- 意味:カテゴリ(ラベル)を「0/1」のベクトルに変換する方法
- 目的:文字やカテゴリを学習可能な数値特徴にする(順序を持たない名義尺度に適切)
基本の考え方
- モデルは文字を直接扱えないため、各カテゴリごとに1列を用意
- 当該カテゴリ=1、その他=0 とする
- 複数選択式(チェックボックス型)は、選ばれた複数列が1になる=Multi-Hot として表現
例
カテゴリ | One-Hot表現 |
---|---|
犬 | [1, 0, 0] |
猫 | [0, 1, 0] |
鳥 | [0, 0, 1] |
→ 単一選択:該当列のみ1。複数選択:該当する列が複数1(Multi-Hot)。
特徴
- 順序のないカテゴリ(色・性別・地域名など)に適する
- 各カテゴリを独立に扱う(距離・類似度の意味は持たない)
- 線形モデル・ツリー系・NNで広く利用可能
デメリット
- カテゴリが多いと高次元で疎になりやすい
- 未知カテゴリ(学習時に存在しなかった値)に弱い
- 係数推定で完全多重共線性(ダミートラップ)が起きうる
対応策
- 高基数なら Hashing / Target Encoding / Embedding を検討
- 線形モデルでは1列落とす(
drop_first
)か正則化で共線性対策 - 未知値・欠損は 〈Other〉/〈Missing〉 などの専用カテゴリ列を用意
- 複数選択の設問は各選択肢を列にしてMulti-Hot(アンケート問題の想定)
試験での理解ポイント
- G検定:名義尺度の数値化、次元爆発とその回避策
-
AWS MLS:SageMaker前処理でのワンホット/Multi-Hot、
drop_first
・未知カテゴリの扱い - 覚え方:One=1個だけ1、複数選択はMulti-Hotで複数が1
まとめ
One-Hotは「該当だけ1」の名義カテゴリ変換。複数選択はMulti-Hotで列を並べて1を立てる。