カテゴリ変数

Categorical Variable

カテゴリ変数(Categorical Variable)とは、有限個のカテゴリ(グループ)のいずれかに属する値を取る変数です。色(赤/青/緑)、血液型(A/B/O/AB)、都道府県名などが該当します。

名義尺度と順序尺度

名義尺度(Nominal)は順序のないカテゴリ(色、血液型)、順序尺度(Ordinal)は順序関係のあるカテゴリ(小<中<大、低学歴<高学歴)です。エンコーディング方法の選択に影響します。

表:カテゴリ変数の要点まとめ
ひとことで言うと「男性/女性」「東京/大阪」のように、区分を表す数値でない変数。
どこで使う顧客属性、商品カテゴリ、地域区分、曜日。実務データのほとんどに含まれる。
注意点そのままでは計算できない。エンコーディングで数値に変換する必要がある。

エンコーディング方法

名義尺度にはワンホットエンコーディング、順序尺度にはラベルエンコーディングが基本です。高カーディナリティ(カテゴリ数が多い)の場合はターゲットエンコーディングやエンティティエンベディングが有効です。

図:カテゴリ変数の扱い方
1カテゴリ変数「東京」「大阪」「福岡」
▶
2順序があるか判断大小関係の有無
▶
3順序あり→ラベル小1・中2・大3
▶
4順序なし→ワンホット列を分けて0/1で表す
▶
5モデルに入力計算できる形に

決定木系モデルでの扱い

LightGBMやCatBoostはカテゴリ変数を直接扱えるため、エンコーディングなしで使用可能です。カテゴリの最適な分割を内部的に探索します。