カテゴリカル変数とは、データの性質や分類を表す変数のことです。数値としての大小や順序に意味がなく、血液型、性別、都道府県、製品のカテゴリなどのように、いくつかの限られた選択肢のいずれかに分類されるデータを指します。機械学習モデルでこれらを扱う際には、ワンホットエンコーディングなどの数値変換が必要となります。
カテゴリカル変数とは
カテゴリカル変数とは、データの個々の値が数値的な大きさや量を表すのではなく、特定のグループや分類、属性を示す変数のことです。質的データとも呼ばれ、AIや機械学習モデルがデータを正しく理解できるようにするために、適切な数値表現へ変換して利用されます。
詳しく解説
カテゴリカル変数は、データの性質を分類するために用いられるデータ型です。例えば、ユーザー属性における「性別」や「職業」、商品の「カテゴリ」などが該当します。これらは統計学において「質的データ」に分類され、数値のように足し算や引き算を行うことに意味がありません。カテゴリカル変数は、さらに「名義変数(順序に意味がないもの。例:血液型や国名)」と「順序変数(順序や段階に意味があるもの。例:アンケートの5段階評価や満足度)」に細分化されます。機械学習アルゴリズムの多くは数式に基づいているため、文字列などのカテゴリカル変数をそのまま入力することはできません。そのため、ワンホットエンコーディングやラベルエンコーディングといった前処理手法を用いて、事前に数値データに変換するステップが極めて重要となります。
具体例・使われ方
具体的な例として、ECサイトの顧客データにおける「都道府県」(東京、大阪、北海道など)や「会員ランク」(ゴールド、シルバー、ブロンズ)が挙げられます。また、画像認識タスクにおいて、写っている動物のラベル(犬、猫、鳥)を分類する場合も、これらはカテゴリカル変数として扱われます。これらを機械学習モデルに入力する際は、例えば「犬」を [1, 0, 0]、「猫」を [0, 1, 0] のようなベクトル形式のデータ(ワンホットエンコーディング)に変換して使用します。
似た用語との違い
カテゴリカル変数と対比されるのが「数値変数」です。数値変数は、気温、身長、価格、売上額などのように、数値自体に量的な意味があり、加減乗除の計算が可能なデータを指します。これに対してカテゴリカル変数は、たとえデータが「男性=1」「女性=2」のように数値で表現されていたとしても、その数値の大小や平均値には意味がありません。もう一つの違いとして、同じカテゴリカル変数であっても、順序変数には「ゴールド > シルバー > ブロンズ」のような順位関係が存在するのに対し、名義変数にはそのような順序関係が一切存在しないという違いがあります。
注意点
カテゴリカル変数を機械学習で扱う際の注意点として、カテゴリの数が非常に多い「高カーディナリティ」の問題があります。例えば、市区町村名や商品IDのように数千〜数万種類以上のカテゴリが存在する場合、単純にワンホットエンコーディングを適用すると、データの次元数が爆発的に増加して計算負荷が高まり、過学習の原因になります。このような場合は、ターゲットエンコーディングなどの高度な前処理手法を選択するか、出現頻度の低いカテゴリを「その他」にまとめるなどの工夫が必要です。また、順序変数に対して順序を無視したエンコーディングを行うと、モデルの予測精度が低下することがあります。