データサイエンス講座【中級編】第13回:カテゴリ変数の適切なエンコーディング方法
サマリ
機械学習モデルの精度を大きく左右するカテゴリ変数のエンコーディング。ワンホットエンコーディング、ラベルエンコーディング、ターゲットエンコーディングなど複数の手法があり、データの特性とモデルの種類に応じた選択が重要です。このガイドではそれぞれの特徴と使い分けのポイントを解説します。
詳細
カテゴリ変数エンコーディングが必要な理由
多くの機械学習アルゴリズムは数値データのみを処理できるため、「色」や「地域」といったカテゴリ変数を数値に変換する必要があります。この変換作業がエンコーディングです。単純に文字列を数字に置き換えるだけでは不十分で、アルゴリズムの性質やデータの構造を考慮した適切な変換が求められます。間違ったエンコーディングを選ぶと、モデルが誤った関係性を学習してしまい、予測精度が低下する可能性があります。
ワンホットエンコーディングの活用場面
ワンホットエンコーディングは、各カテゴリを0と1のみで表現する方法です。例えば「色」という変数が赤・青・緑の3種類ある場合、3つの新しい列を作成し、該当するカテゴリのみ1、その他を0とします。この手法の最大の利点は、カテゴリ間に順序関係がないことを明確に示せることです。ロジスティック回帰やニューラルネットワークなど、線形関係を仮定するモデルに最適です。ただし、カテゴリ数が多い場合は列数が急増し、計算効率が低下するという課題があります。
ラベルエンコーディングの使い分け
ラベルエンコーディングは、各カテゴリに整数値(0、1、2など)を割り当てる最もシンプルな方法です。実装が簡単で、計算効率が良いため、高次元のカテゴリ変数に有効です。特に決定木ベースのモデル(ランダムフォレストやXGBoost)は、カテゴリ間の順序関係を自動的に判断できるため、ラベルエンコーディングでも問題なく動作します。一方、線形モデルに適用すると、割り当てた整数値が誤った順序関係を示唆してしまうため、注意が必要です。
ターゲットエンコーディングの活用
ターゲットエンコーディングは、各カテゴリを目的変数の統計量(平均値など)で置き換える方法です。例えば、顧客の購買履歴予測モデルで「地域」変数を持つ場合、各地域の平均購買額でエンコーディングします。この手法は高次元のカテゴリに強く、カテゴリと目的変数の関係を直接反映するため、モデルの精度向上が期待できます。ただしデータ漏洩(target leakage)のリスクがあり、必ずクロスバリデーションで適切に検証する必要があります。
実装時の注意点とベストプラクティス
エンコーディング時には、訓練データと検証データの一貫性を保つことが重要です。訓練データで学習した変換規則を、検証データにも同じように適用してください。未知のカテゴリへの対処も重要です。本番運用では訓練段階で見られなかったカテゴリが現れる可能性があり、その場合の処理方法を事前に定めておきましょう。また、カテゴリ数が多い場合は、出現頻度が低いカテゴリをまとめる「その他」カテゴリの作成も検討する価値があります。
モデル選択とエンコーディング方法の対応表
モデルの種類によって最適なエンコーディング方法が異なります。ロジスティック回帰やニューラルネットワークはワンホットエンコーディング、決定木系のモデルはラベルエンコーディングやターゲットエンコーディング、SVM等のカーネル法はワンホットエンコーディングが推奨されます。実務では複数の方法を試し、クロスバリデーションで各モデルの性能を比較することが最良の実践です。
カテゴリ変数の適切なエンコーディングは、データサイエンスプロジェクトの成否を左右する重要なステップです。各手法の特徴を理解し、データとモデルに応じた最適な選択をしてください。
