1. 定義と概要
カウントエンコーディングとは、カテゴリ変数の各カテゴリ値を、出現回数(頻度)に置き換えて数値化する手法です。出現回数(頻度)とは、あるカテゴリがデータの中に何回登場したかを数えた値です。例えば都道府県の列で「東京都」が120件、「大阪府」が80件出現する場合、「東京都」を120、「大阪府」を80という数値に変換します。
近い手法にフリークエンシーエンコーディング(出現回数の代わりに出現割合、つまりデータ全体に占める比率で置き換える手法)があります。出現回数か出現割合かという違いはあるものの、両者は同じ発想の親戚にあたる手法です。
ワンホットエンコーディング(カテゴリの数だけ0と1の列を作って表す変換方法)やラベルエンコーディング(カテゴリに0,1,2…と整数の番号を割り振る変換方法)も、カテゴリ変数を数値に変換する前処理の手法です。カウントエンコーディングは、これらと同じ前処理の系譜に位置づけられる手法として登場しました。
従来は、都道府県や商品ID、郵便番号のように種類数が非常に多い高カーディナリティ(カテゴリの種類数がとても多い状態)な変数を扱う場面がありました。こうした変数をそのまま数値化しようとすると、変換後の列数が膨らんでしまう課題があります。
出現回数という1列の数値に集約すれば、列数を増やさずにカテゴリの情報をモデルへ渡せます。カウントエンコーディングは、そうした発想から生まれた手法です。
2. 試験対策ポイント
カウントエンコーディングの利点としてまず整理しておきたいのは、カテゴリの種類数がどれだけ多くても、変換後は出現回数の1列のままで済み、列数(次元)が増えない点にあります。この点は、カテゴリ数が多い変数でワンホットエンコーディングと対比すると分かりやすい特徴です。もう一つの利点は、各カテゴリの出現回数を数えるだけで変換できるため、実装がシンプルなことです。
3つ目の利点は、目的変数(予測したい正解のデータ。例えば購入するかどうか)を一切使わず、カテゴリの出現回数だけで変換できる点にあります。目的変数の統計量を使うターゲットエンコーディング(カテゴリを目的変数の統計量に置き換える変換方法)では、本来学習時に使えないはずの情報がモデルに紛れ込んでしまうことが問題です。この現象をリーケージ(データリーケージ)と呼びます。
カウントエンコーディングでは目的変数の統計量を使わないため、目的変数由来のリーケージは生じません。ただし、学習用とテスト用のデータを分けずに出現回数を集計すると、テストデータの分布情報が学習時の特徴量に混じる別のリーケージが生じうるため、集計は学習データの範囲で行う必要があります。
一方で注意したいのは、出現回数が偶然同じになった異なるカテゴリは同じ数値に変換され、モデルから区別できなくなる点です。例えばカテゴリA・B・Cがいずれも50件出現していた場合、変換後はすべて50という同じ値になってしまいます。この衝突は、カウントエンコーディングの代表的な弱点として押さえておきたいところです。
決定木系モデル(条件分岐を繰り返しながら予測するモデルの一種で、勾配ブースティング木などが代表例です)は、しきい値で分岐を繰り返す仕組みを持ちます。そのため、出現回数のような大小関係を持つ数値情報を判断材料として扱いやすく、カウントエンコーディングと相性が良いとされています。
3. 関連概念との比較・相違点
ターゲットエンコーディングとの最大の違いは、何でカテゴリを置き換えるかという軸です。カウントエンコーディングは出現回数に置き換えるのに対し、ターゲットエンコーディングは目的変数の統計量、たとえば平均値に置き換えます。
ターゲットエンコーディングは交差検証を使った変換などのリーケージ対策が必須になりますが、カウントエンコーディングは目的変数の統計量を使わないため、目的変数由来のリーケージの心配はありません。リークの心配なくシンプルに扱いたい場面ではカウントエンコーディング、目的変数との関係を強く反映させたい場面ではターゲットエンコーディングが選ばれる傾向にあります。
ワンホットエンコーディングとの最大の違いは、変換後に列数が増えるかどうかという軸です。ワンホットエンコーディングはカテゴリの数だけ列が増えるのに対し、カウントエンコーディングは常に1列に集約されます。
列数の増減という一点が、両者を使い分ける際の分かりやすい判断材料です。カテゴリ数が非常に多い高カーディナリティな変数を扱うときほど、この列数の差が実務上の負担の差として表れやすくなります。
4. ビジネス・実務での活用シナリオ
EC・レコメンドの分野では、商品IDや店舗IDのように種類数が非常に多いカテゴリ変数をカウントエンコーディングし、よく売れる商品ほど大きな数値になる情報をモデルに渡す運用が見られます。列数を増やさずに人気度に近い情報を反映できる点が、大量の商品を扱うレコメンドモデルにとっての利点です。
不動産・与信審査の分野では、郵便番号や取扱店舗コードのように種類数の多いカテゴリを、目的変数の統計量を使わずに、目的変数由来のリーケージの心配なく数値化し、モデルのベースラインを素早く作る場面で使われます。審査の可否に直結する目的変数を使わずに前処理できる点は、リーケージによる不当な精度の底上げを避けつつ、早い段階で妥当性を検証するうえでの利点です。
データ分析・モデル構築の実務全般では、勾配ブースティング木などの決定木系モデルを使う場面で、特徴量(モデルへの入力に使う個々のデータ項目)を工夫する特徴量エンジニアリングが広く行われています。
そうした現場で、カテゴリの出現回数を手早く追加できる前処理としてカウントエンコーディングが使われています。実装が単純で計算コストも軽いため、複数の前処理案を素早く比較検討したい実務の現場と相性の良い手法です。
5. 要点まとめ
- カウントエンコーディングは、カテゴリ変数の各値をデータセット内での出現回数に置き換える手法で、出現割合に置き換えるフリークエンシーエンコーディングは近い変形にあたります。
- カテゴリ数が増えても列数が増えない・実装が単純・目的変数の統計量を使わないため目的変数由来のリーケージが起きないという利点がある一方、出現回数が同じカテゴリは同じ値になり区別できなくなる衝突が代表的な弱点です。
- 目的変数の統計量で置き換えるターゲットエンコーディングとは「何で置き換えるか」が異なり、リーケージ対策の要否の点でも対照的な関係にあります。
6. 確認問題
問1カウントエンコーディングは、カテゴリ変数の各カテゴリを、そのカテゴリがデータセット内に出現する回数に置き換える手法である。
解答・解説をみる
○ 正しい
定義のとおり、カウントエンコーディングはカテゴリの出現回数への置き換えです。出現回数を数えるだけで求められる、仕組みの分かりやすさが特徴の手法です。
問2カウントエンコーディングは目的変数の統計量を使ってカテゴリを数値化するため、ターゲットエンコーディングと同様にリーケージ対策が必須である。
解答・解説をみる
× 誤り
正しくはカウントエンコーディングは出現回数のみで変換し目的変数の統計量を使わないため、目的変数由来のリーケージは生じません。目的変数の統計量を使うのはターゲットエンコーディングの特徴で、この点が両者の対照的な違いです。
問3カウントエンコーディングでは、出現回数が同じ異なるカテゴリが同じ数値に変換され、モデルから区別できなくなることがある。
解答・解説をみる
○ 正しい
出現回数がたまたま一致するカテゴリ同士は変換後に同じ値になり区別できなくなります。この衝突はカウントエンコーディングの代表的な弱点として整理しておきたい点です。

