用語比較
ワンホットエンコーディングとラベルエンコーディングの違い|カテゴリ変数の数値化(DS検定)
カテゴリ変数(色や職業のような文字の値)を数値にするとき、ワンホットエンコーディングは水準ごとに0か1の列を作り、ラベルエンコーディングは水準に整数を1つずつ割り当てます。違いは、数値に大小関係が入るかどうかです。
DS検定のデータ前処理では、順序のない名義尺度はワンホット、順序のある順序尺度は整数でもよいと判断します。名義尺度の色に0・1・2を割り当てると、「青は赤の2倍」のような意味のない大小が入ってしまいます。
この記事の目次
この記事の根拠と出典
各セクションの見出しの下に、公式資料で確認した内容か編集部の整理かをラベルで示しています。 試験日・料金・申込条件・試験方式は変わることがあるため、申込前に公式サイトで確認してください。
ワンホットエンコーディングとラベルエンコーディングの要点
ワンホットエンコーディング
n 個の水準を持つ1つの列を、n 個の0/1の列に置き換える。各行で1になる列は1つだけで、水準どうしに大小関係を持ち込まない。scikit-learn では OneHotEncoder が対応し、one-of-K やダミー変数化とも呼ばれる。
ラベルエンコーディング
水準に整数を1つずつ割り当て、列は1つのまま保つ。列数は増えないが、整数の大小が意味を持つように読まれる。scikit-learn では、特徴量のカテゴリを整数にするのが OrdinalEncoder、目的変数のラベルを0〜クラス数-1の値にそろえるのが LabelEncoder と、役割が分かれている。
違いを表で確認
| 比較軸 | ワンホットエンコーディング | ラベルエンコーディング |
|---|---|---|
| 変換後の列数 | 水準の数だけ増える(3水準なら3列) | 1列のまま |
| 値 | 0か1のみ | 0から水準の数-1までの整数 |
| 大小関係 | 持ち込まない | 整数の大小が意味を持つように読まれる |
| 向く尺度 | 名義尺度(色・職業・都道府県など) | 順序尺度(小・中・大、評価の段階など) |
| 水準が多いとき | 列が増えて、データが大きくなる | 列は増えない |
| 試験で見る語 | ダミー変数、0/1の列、名義尺度、順序がない | 整数に置き換える、順序尺度、大小に意味がある、水準に番号を振る |
DS検定の学習に使う書籍(Amazon)
PRどこで迷っているかを切り分ける
カテゴリ変数をとりあえず整数に置き換えている人
scikit-learn の公式ドキュメントは、カテゴリを整数に変えた表現は、連続値を前提とする推定器ではカテゴリに順序があるものと解釈されるため、望ましくないことが多いと述べています。ブラウザの種類のように順序のない値を整数にすると、数値の大小が学習に影響しかねません。
ワンホットにすれば列が増えすぎないか心配な人
水準が3つなら3列、100なら100列になります。水準が非常に多い変数をそのままワンホットにすると列が大きく増えるので、まとめられる水準があるか先に検討します。順序のある変数なら、整数のままのほうが列を増やさずに済みます。
名義尺度と順序尺度の区別があいまいな人
色や職業のように順序のない値が名義尺度、「小・中・大」のように順序のある値が順序尺度です。どちらの尺度かを先に決めると、ワンホットにするか整数でよいかが決まります。
具体例で使い分ける
例 1
色(赤・青・緑)を2通りで数値にする
4行のデータの「色」列が、赤、青、緑、青の順に入っています。
- ラベルエンコーディングでは、赤=0、青=1、緑=2のように割り当て、列は 0, 1, 2, 1 の1列のままです(割り当ての順番は実装による)。
- ワンホットエンコーディングでは、列が「赤」「青」「緑」の3つになります。1行目は(1, 0, 0)、2行目は(0, 1, 0)、3行目は(0, 0, 1)、4行目は(0, 1, 0)です。
- ラベルエンコーディングでは、緑(2)は赤(0)より大きく、青(1)は赤と緑の中間という大小関係が、数値の上では生じます。色にそのような順序はありません。
結論: 色は名義尺度なので、ワンホットにして大小関係を持ち込まないのが原則です。
例 2
サイズ(小・中・大)を整数にする
「サイズ」列が、小、中、大、中の順に入っています。
- 小=1、中=2、大=3と割り当てると、列は 1, 2, 3, 2 の1列のままです。
- 小<中<大という順序は、整数の大小と一致しています。
- ワンホットにすると3列に増えますが、順序の情報は列の並びからは読み取れなくなります。
結論: 順序尺度で、順序どおりに整数を割り当てるなら、ラベルエンコーディング(整数への置き換え)でも大小関係が意味を持つので問題になりません。ただし、小と中の差と、中と大の差が等しいとは限らない点には注意します。
例 3
ワンホットで列が1つ余る理由を確かめる
「色」を3列のワンホットにした後、列を1つ減らして2列だけにする場合を考えます。
- 「赤」「青」の2列だけを残すと、赤は(1, 0)、青は(0, 1)、緑は(0, 0)と表せます。
- 3列すべてを使う表現では、各行の3つの値を足すと必ず1になります。
結論: 水準の数より1列少なくしても、すべての水準を区別できます。3列すべてを使うか1列減らすかは、使う手法や教材の説明に従います。
問題文から答えを選ぶ手順
- 1
変数の尺度を決める
値に順序があるかを確認します。色や職業のように順序がなければ名義尺度、小・中・大のように順序があれば順序尺度です。
- 2
順序がなければワンホットにする
名義尺度は、水準ごとの0/1の列にします。整数にすると、存在しない大小関係を持ち込みます。
- 3
順序があれば、順序どおりの整数を検討する
順序尺度は、順序と整数の大小が一致するように割り当てます。割り当てが順序と一致しないなら、ワンホットに戻します。
- 4
列数とデータの大きさを見直す
水準が多い名義尺度は列が増えるので、まとめられる水準がないか確認します。
試験での見分け方
- 1名義尺度(順序のない値)は、ワンホットエンコーディングにする。
- 2順序尺度で、順序どおりに整数を割り当てるなら、整数への置き換えでもよい。
- 3ワンホットは、水準の数だけ0/1の列が増える。
- 4整数への置き換えは、列が1つのままだが、整数の大小が意味を持つように読まれる。
- 5水準が非常に多い名義尺度は、列が増えるのでまとめ方を検討する。
誤答しやすい選択肢
順序のない値に、0・1・2と整数を振って済ませる
修正: 整数の大小が意味を持つように読まれ、存在しない順序を持ち込みます。名義尺度はワンホットにします。
ワンホットは列が増えないと考える
修正: n 個の水準を持つ1列は、n 個の0/1の列になります。3水準なら3列です。
順序のある値を、順序と関係なく整数にする
修正: 小・中・大を大・小・中の順に1・2・3とすると、整数の大小が本来の順序と一致しません。順序どおりに割り当てます。
ワンホットの各行に、1が複数あると考える
修正: 各行で1になるのは、その行の水準に対応する1つの列だけで、残りは0です。
確認問題
Q14水準の名義尺度の列をワンホットエンコーディングすると、列は何個になる?
答え: 4個
n 個の水準を持つ1列は、n 個の0/1の列になるので、4水準なら4列です。
Q2職業(会社員・自営業・学生)を、0・1・2の整数にして使う場合の問題点は?
答え: 存在しない大小関係が入る
職業は名義尺度で、順序がありません。整数にすると、数値の大小が順序として読まれるおそれがあります。
Q3「小・中・大」を1・2・3にすることは、なぜ許容されやすい?
答え: 順序と整数の大小が一致するから
サイズは順序尺度で、小<中<大の順序が整数の大小と一致します。ただし、各段階の間隔が等しいとは限りません。
Q43水準のワンホットで、ある行の値が (0, 1, 0) のとき、その行の水準は?
答え: 2番目の列に対応する水準
ワンホットでは、1になっている列がその行の水準を表します。
到達チェック
- ワンホットが、水準の数だけ0/1の列を作る方式だと説明できる
- 整数への置き換えが、大小関係を持ち込む理由を説明できる
- 名義尺度にはワンホット、順序尺度には整数、という使い分けを説明できる
- 水準が多い名義尺度でワンホットにしたときの注意点を説明できる
関連ページで確認する
同じ資格で次に知りたいこと
- 訓練・検証・テストデータの違い|モデルの学習と評価でデータを3つに分ける理由(DS検定・G検定)
訓練データ・検証データ・テストデータの違いを、使う場面、分ける理由、データを3つに分ける欠点と交差検証との関係、DS検定・G検定での確認問題まで、scikit-learnの公式ドキュメントと両検定の公式シラバスに沿って整理します。
- データドリフトとコンセプトドリフトの違い|入力の分布が変わるか、入力と答えの関係が変わるか(DS検定)
データドリフトとコンセプトドリフトの違いを、変わるもの(入力の分布 P(X) と、入力から答えへの関係 P(y|X))・見分け方・対処で整理。架空の数値例と確認問題つき。DS検定のモデル劣化の設問に使える。
- 欠損値と外れ値の違い|値がない問題と値が極端な問題の扱い方(DS検定)
欠損値と外れ値の違いを、何が問題か、見つけ方、対処の選択肢(削除・補完・変換)、異常値との区別まで、DS検定の公式スキルチェックリストとscikit-learn公式ドキュメントに沿って整理します。確認問題つきです。
よくある質問
Qワンホットエンコーディングとラベルエンコーディングは何が違う?
ワンホットは水準ごとの0/1の列に置き換え、ラベルエンコーディングは水準に整数を割り当てて1列のまま保ちます。整数にすると大小関係が入るので、順序のない値にはワンホットを使います。
Qダミー変数とワンホットは同じ?
scikit-learn の公式ドキュメントは、ワンホットを one-of-K、またはダミー変数化とも呼ぶと述べています。試験や教材によって呼び方が違うことがあるので、問題文の定義に合わせます。
Q決定木ならラベルエンコーディングでもよい?
手法によって事情が変わります。本ページは尺度の違いを軸にした整理にとどめ、個別のモデルでの扱いは、問題文や教材の説明に従ってください。
次に見る比較
- G検定・DS検定・統計検定2級で重なる用語10語の比較
同じ名前の用語の定義と収録章を、資格ごとに並べます。
- ベイズの定理と条件付き確率の違い(統計検定2級の式と計算例)
求める確率の向きの違いと、陽性になる確率の計算例を確かめます。
- 紛らわしい用語ペア早見表
混同しやすい用語の違いと判定の手掛かりを、資格別の一覧で確かめます。
執筆: AI資格ドリル編集部(運営者情報を見る)
