カテゴリ変数(Categorical Variable)とは、有限個のカテゴリ(グループ)のいずれかに属する値を取る変数です。色(赤/青/緑)、血液型(A/B/O/AB)、都道府県名などが該当します。
名義尺度と順序尺度
名義尺度(Nominal)は順序のないカテゴリ(色、血液型)、順序尺度(Ordinal)は順序関係のあるカテゴリ(小<中<大、低学歴<高学歴)です。エンコーディング方法の選択に影響します。
| ひとことで言うと | 「男性/女性」「東京/大阪」のように、区分を表す数値でない変数。 |
|---|---|
| どこで使う | 顧客属性、商品カテゴリ、地域区分、曜日。実務データのほとんどに含まれる。 |
| 注意点 | そのままでは計算できない。エンコーディングで数値に変換する必要がある。 |
エンコーディング方法
名義尺度にはワンホットエンコーディング、順序尺度にはラベルエンコーディングが基本です。高カーディナリティ(カテゴリ数が多い)の場合はターゲットエンコーディングやエンティティエンベディングが有効です。
1カテゴリ変数「東京」「大阪」「福岡」
▶
2順序があるか判断大小関係の有無
▶
3順序あり→ラベル小1・中2・大3
▶
4順序なし→ワンホット列を分けて0/1で表す
▶
5モデルに入力計算できる形に
決定木系モデルでの扱い
LightGBMやCatBoostはカテゴリ変数を直接扱えるため、エンコーディングなしで使用可能です。カテゴリの最適な分割を内部的に探索します。