ターゲットエンコーディングとは

ターゲットエンコーディング(Target Encoding)とは、機械学習において、カテゴリカルデータ(名義尺度や順序尺度で表される非数値データ)を、そのカテゴリに対応する目的変数(ターゲット変数)の統計量に基づいて数値に変換する特徴量エンジニアリング手法です。

これは、特にカテゴリの数が非常に多い場合に、ワンホットエンコーディングによる次元の呪いを回避しつつ、カテゴリ情報が持つ予測能力を効率的に引き出すことを目的とします。

ターゲットエンコーディングの基本的な概念

ターゲットエンコーディングは、各カテゴリを目的変数の平均値、中央値、最頻値などの統計量で直接置き換えることで機能します。例えば、あるカテゴリのデータが特定の目的変数(例:商品の売上額)と強い相関がある場合、そのカテゴリは高い売上額の平均値でエンコードされ、モデルはその数値から予測に役立つ情報を学習できます。

主な概念は以下の通りです。

  1. 目的変数との関連性: カテゴリカル特徴量の各カテゴリを、目的変数の統計量(例:回帰問題の場合は平均値、分類問題の場合はクラスの発生確率)に変換します。これにより、カテゴリが目的変数と持つ隠れた関係性を数値としてモデルに伝えることができます。
  2. 次元削減: カテゴリの数が多い場合でも、新しい特徴量は元のカテゴリカル特徴量と同じ次元(1次元)で表現されるため、ワンホットエンコーディングのように特徴量の次元が爆発的に増加するのを防ぎます。
  3. データ漏洩(Data Leakage)のリスク: ターゲットエンコーディングは、訓練データ全体を使ってエンコーディングを行うと、データ漏洩(Data Leakage)のリスクを伴います。データ漏洩とは、モデルがまだ見ていないデータ(テストデータ)に関する情報が、訓練プロセス中に意図せず混入してしまうことです。具体的には、テストセットのデータが含まれる目的変数の統計量を使用してエンコーディングが行われると、モデルは訓練データから得られない「カンニング」をしてしまい、過学習に繋がり、実運用での性能が低下します。

ターゲットエンコーディングの主な手法とデータ漏洩対策

データ漏洩のリスクを軽減するために、ターゲットエンコーディングにはいくつかの洗練された手法が用いられます。

  1. シンプルターゲットエンコーディング(Simple Target Encoding): 各カテゴリを目的変数の単純な平均値で置き換える最も基本的な方法です。

 \text{Encoded Value}i = \frac{\sum{j \in \text{Category}_i} \text{Target}_j}{\text{Count of Category}_i}

  • データ漏洩リスク: テストデータを含む目的変数の統計量を使用すると、データ漏洩のリスクが高いです。
  1. 交差検定ベースのターゲットエンコーディング(Cross-Validation based Target Encoding): データ漏洩を防ぐための最も一般的なアプローチです。訓練データを複数のフォールドに分割し、各フォールドのデータは、そのフォールド以外のデータ(他のフォールド)から計算された目的変数の統計量を用いてエンコードされます。テストデータは、訓練データ全体から計算された統計量を用いてエンコードされます。
    • 手順例(k-fold交差検定):
      1. 訓練データを k 個のフォールドに分割します。
      2. 各フォールドについて:
        • そのフォールドを除く k−1 個のフォールド(訓練セット)を使って、各カテゴリの目的変数の統計量(例:平均値)を計算します。
        • 計算した統計量を使って、残りの1つのフォールド(検証セット)内のカテゴリをエンコードします。
      3. 全てのフォールドに対してこのプロセスを繰り返し、完全なエンコード済み訓練データセットを生成します。
      4. テストデータセットに対しては、元の訓練データセット全体から計算された目的変数の統計量を用いてエンコードします。
  2. 正規化(Smoothing): カテゴリのサンプル数が少ない場合に、そのカテゴリの目的変数平均が外れ値によって大きく変動するのを防ぐために、正規化(スムージング)を適用します。これは、全体平均とカテゴリ平均をある重みで線形補間するものです。

 \text{Encoded Value}i = (1 - \alpha_i) \cdot \text{Mean}{\text{Category}i} + \alpha_i \cdot \text{Mean}{\text{Global}}

 ここで、MeanCategoryi​​ はカテゴリ i の目的変数平均、MeanGlobal​ は全体の目的変数平均、αi​ はカテゴリ i のサンプル数に応じた重み(サンプル数が少ないほど αi​ が大きくなり、全体平均に近づく)です。

 利点: 稀なカテゴリの過学習を防ぎ、よりロバストなエンコーディングを実現します。

  1. 加算ノイズ(Additive Noise): エンコードされた値に少量のランダムノイズを加えることで、さらに過学習のリスクを軽減し、モデルの汎化性能を向上させるアプローチです。

ターゲットエンコーディングの利点と課題

利点

  • 次元削減: カテゴリ数が非常に多い高カーディナリティ(High Cardinality)な特徴量に対して有効であり、特徴量空間の次元爆発を防ぎます。
  • 情報保持: 各カテゴリが持つ目的変数との関係性を直接的に数値化するため、モデルがその情報を効率的に学習できます。
  • 優れた予測性能: 特定のタスクやデータセットにおいて、ワンホットエンコーディングよりも高い予測性能を達成する場合があります。

課題

  • データ漏洩のリスク: 適切な対策を講じないと、テストデータに関する情報が訓練段階で混入し、過学習を招く可能性があります。これは、交差検定やスムージングで対策が必要です。
  • 過学習のリスク: 特にサンプル数が少ないカテゴリでは、ノイズの影響を受けやすく、そのカテゴリに特化した過学習が発生する可能性があります。
  • 計算コスト: 交差検定ベースの手法を用いる場合、エンコーディングプロセスが複雑になり、計算時間が増加する可能性があります。

ターゲットエンコーディングの適用場面

ターゲットエンコーディングは、特に以下の状況で有効な選択肢となります。

  • 高カーディナリティなカテゴリカル特徴量: 数百、数千、あるいはそれ以上のユニークなカテゴリを持つ特徴量(例:ユーザーID、商品ID、郵便番号など)を扱う場合。
  • ツリーベースのモデル: 勾配ブースティング(XGBoost, LightGBM)、ランダムフォレストなどのツリーベースのモデルは、ターゲットエンコーディングされた特徴量と相性が良いとされます。これらのモデルは、数値の特徴量に対する閾値学習を通じて、ターゲットエンコードされた値の大小関係からパターンを効率的に見つけることができます。
  • 回帰問題や二値分類問題: 目的変数が数値(回帰)または二値(分類)の場合に、最も直接的に適用できます。多クラス分類の場合は、各クラスの確率をエンコードするなどの工夫が必要です。

ターゲットエンコーディングは、カテゴリカルデータを目的変数の統計量に基づいて数値に変換する特徴量エンジニアリング手法であり、高カーディナリティな特徴量において次元の呪いを回避しつつ、予測能力を引き出す上で有効です。シンプルターゲットエンコーディング、交差検定ベースのエンコーディング、正規化、加算ノイズといった手法が存在し、特にデータ漏洩のリスクを適切に管理することが重要です。この手法は次元削減と情報保持の点で優位性を持つ一方で、過学習のリスクも伴うため、交差検定や正規化といった対策を講じた上で、ツリーベースのモデルなどで慎重に適用されるべきです。

関連用語

カテゴリカルデータ | 今更聞けないIT用語集
ワンホットエンコーディング | 今更聞けないIT用語集
AIソリューション

お問い合わせ

システム開発・アプリ開発に関するご相談がございましたら、APPSWINGBYまでお気軽にご連絡ください。

APPSWINGBYの

ソリューション

APPSWINGBYのセキュリティサービスについて、詳しくは以下のメニューからお進みください。

システム開発

既存事業のDXによる新規開発、既存業務システムの引継ぎ・機能追加、表計算ソフトによる管理からの卒業等々、様々なWebシステムの開発を行っています。

iOS/Androidアプリ開発

既存事業のDXによるアプリの新規開発から既存アプリの改修・機能追加まで様々なアプリ開発における様々な課題・問題を解決しています。


リファクタリング

他のベンダーが開発したウェブサービスやアプリの不具合改修やソースコードの最適化、また、クラウド移行によってランニングコストが大幅にあがってしまったシステムのリアーキテクチャなどの行っています。