エンコーディング (G検定)

エンコーディング

1. 定義と概要

エンコーディングとは、機械学習アルゴリズムが直接扱えない文字列やカテゴリの値(性別・色・都道府県などのカテゴリ変数)を、計算可能な数値データへ変換する前処理の総称です。代表的な手法はOne-Hotエンコーディングとラベルエンコーディングの2つです。

One-Hotエンコーディングは、カテゴリの数だけ0と1の列を作って表す変換方法で、ラベルエンコーディングは、カテゴリに0、1、2…と整数の番号を振る変換方法です。どちらもカテゴリ変数という同じ入力に対して、異なる形で数値の器を用意する手法にあたります。

機械学習モデルは数値演算をもとに学習と予測を行うため、文字列のままのカテゴリデータを学習にそのまま使うことはできません。従来はこの制約への対応がシステムごとの個別実装に頼りがちでしたが、前処理の段階でエンコーディングによって数値化する手順が標準的な進め方として定着しました。

どの手法を選ぶかによってモデルの性能や扱う次元数(データの列の数)が変わるため、G検定のシラバスでもデータの前処理の領域として扱われます。

2. 試験対策ポイント

まず押さえておきたいのは、One-Hotエンコーディングとラベルエンコーディングの使い分けです。One-Hotエンコーディングは、色や性別のように順序関係を持たない名義尺度(順序に意味のない分類。例として血液型や色があります)のデータに用いる手法で、カテゴリの数だけ列が増えます。

カテゴリ数が多い変数に適用すると列数が急増し、次元の呪い(データの列が増えすぎて、学習に必要なデータ量が足りなくなる問題)につながる制約として押さえておきたいポイントです。

ラベルエンコーディングは、各カテゴリに0、1、2…の整数を割り当てる手法です。評価の高低のように大小関係に意味がある分類(順序尺度)に向いており、順序のない名義尺度の変数にラベルエンコーディングを使うと、モデルが数値の大小関係を誤って学習するリスクがあります。試験では、尺度の種類によってOne-Hotエンコーディングとラベルエンコーディングのどちらを選ぶかが決まる関係にあります。

One-Hotエンコーディングで全カテゴリ分の列をそのまま使うと、列同士が計算上重複してしまう多重共線性(ダミー変数トラップとも呼ばれます)が生じます。実務では1列を減らしてN-1列にする手法が知られています。

また、「Transformer」(文章などの系列データを扱う深層学習モデルの一種)で使われる位置エンコーディング(Positional Encoding。文章などの並び順の情報をAIモデルに教えるための数値表現)は、同じ「エンコーディング」の語を使いながら系列データ内の位置情報を付与する別の仕組みであり、混同しないよう文脈で区別する必要があります。

3. 関連概念との比較・相違点

ラベルエンコーディングとの最大の違いは、対象とする尺度の種類と変換後の列数にあります。2つの手法を観点ごとに並べると、次のように整理できます。

観点 One-Hotエンコーディング ラベルエンコーディング
変換の仕方 カテゴリの数だけ0と1の列を作る 各カテゴリに0、1、2…の整数を割り当てる
向いている尺度 順序を仮定しない名義尺度 大小関係に意味がある順序尺度
変換後の列数 カテゴリ数が増えるほど列数も増える 1列のままで増えない
注意したい点 列数が急増して次元の呪いにつながる 名義尺度に使うと誤った大小関係を学習させる

この違いがそのまま使い分けの基準になります。都道府県のような名義尺度にはOne-Hotエンコーディング、満足度のような順序尺度にはラベルエンコーディングという選び方です。

位置エンコーディングとの最大の違いは、変換の対象そのものにあります。カテゴリ変数のエンコーディングは性別や色といった質的なデータを数値化する処理ですが、位置エンコーディングは系列データにおける各要素の並び順という情報をベクトルに付与する処理です。同じ「エンコーディング」という語を使っていても、前者はデータの前処理という文脈、後者は深層学習モデルの内部構造という文脈で登場する点が異なります。

4. ビジネス・実務での活用シナリオ

EC・マーケティングの分野では、購買予測モデルで会員ランク(ブロンズ・シルバー・ゴールド)をラベルエンコーディングし、順序情報を活かして予測精度を高める事例があります。ランクの上下関係をそのまま整数の大小として学習させられるため、One-Hotエンコーディングで各ランクを独立した列に分解するよりも、少ない列数で序列の情報をモデルに伝えられます。

不動産・与信審査の分野では、都道府県や物件種別のような名義尺度の変数をOne-Hotエンコーディングし、地域差をモデルに反映させつつ誤った大小関係の学習を避けます。都道府県をラベルエンコーディングで番号化すると、番号の大小が地域の優劣であるかのように学習されかねないため、順序のない変数には列を分けるOne-Hotエンコーディングが選ばれます。

自然言語処理(人間の言葉をコンピュータに処理させる技術分野です)の分野では、テキスト分類の前処理でカテゴリラベルを数値化する際にOne-Hot表現が使われます。One-Hot表現で数値化した情報は、後段の埋め込み表現(Embedding。単語やカテゴリの意味的な近さを数値ベクトルで表す技術です)につながる基礎となり、モデルが文脈を学習するための入り口の役割を担います。

5. 要点まとめ

  • エンコーディングは、カテゴリ変数を機械学習が扱える数値データに変換する前処理の総称で、代表的な手法はOne-Hotエンコーディングとラベルエンコーディングです。
  • One-Hotは順序のない名義尺度向きでカテゴリ数増加による次元の呪いに、ラベルエンコーディングは順序のある順序尺度向きで誤った大小関係の学習リスクに注意する必要があります。
  • 「Transformer」の位置エンコーディングのように同じ語で異なる概念が存在し、文脈によって指す対象が変わる点は、混同しやすい組み合わせです。

6. 確認問題

問1One-Hotエンコーディングは、性別や色のように順序関係を持たないカテゴリ変数の数値変換に適している。

解答・解説をみる

○ 正しい

One-Hotエンコーディングは各カテゴリを独立した0と1の列として表現し、数値の大小関係を発生させないため、名義尺度に適した手法です。

問2ラベルエンコーディングは、評価(低・中・高)のように順序関係のあるカテゴリ変数に適した手法である。

解答・解説をみる

○ 正しい

ラベルエンコーディングは各カテゴリに整数を割り当てるため、順序尺度のように大小関係が意味を持つデータに向きます。順序のない変数に使うと、誤った大小関係をモデルに学習させるリスクがあります。

問3「Transformer」で使われる位置エンコーディングは、カテゴリ変数を数値化するOne-Hotエンコーディングと同じ目的で用いられる手法である。

解答・解説をみる

× 誤り

位置エンコーディングは系列データ内の各要素の位置情報をベクトルに付与する仕組みで、カテゴリ変数の数値化とは目的が異なります。正しくは、One-Hotエンコーディングはカテゴリ変数の数値化、位置エンコーディングは系列データの並び順の情報付与という、別々の役割を担う手法です。同じ「エンコーディング」の語でも文脈によって対象が変わる点に注意が必要です。