【0から学ぶAI】第24回:カテゴリ変数のエンコーディング

目次

前回のおさらいと今回のテーマ

こんにちは!前回は、データのスケールを揃える方法である標準化正規化について学びました。これらの手法を用いることで、モデルが各特徴量をバランスよく学習できるようになりましたね。今回は、データの中で文字情報を数値に変換するための手法、カテゴリ変数のエンコーディングについて解説します。

カテゴリ変数とは、データがカテゴリ(カテゴリー)やクラス(クラス別)に分類される変数のことを指します。例えば、性別(男性、女性)や職業(エンジニア、デザイナー、マーケター)などが該当します。これらのカテゴリ変数は、機械学習モデルに直接入力することができないため、数値に変換する必要があります。今回は、その変換方法について詳しく見ていきましょう。

カテゴリ変数とは?

カテゴリ変数の定義

カテゴリ変数とは、データが特定のカテゴリーやクラスに分類される変数のことです。例えば、以下のようなものがあります。

  • 性別: 男性、女性
  • 職業: エンジニア、デザイナー、マーケター
  • 居住地: 東京、大阪、福岡

これらのデータは数値ではなく文字で表されるため、モデルが直接理解することはできません。そのため、これらのカテゴリ変数を数値データに変換する作業が必要になります。

カテゴリ変数の種類

カテゴリ変数は、大きく分けて2種類に分類されます。

  • 名義尺度(Nominal): カテゴリの間に順序がないもの。例:色(赤、青、緑)
  • 順序尺度(Ordinal): カテゴリの間に順序があるもの。例:教育レベル(小学校、中学校、高校、大学)

名義尺度と順序尺度は、それぞれ適切なエンコーディング方法を用いて数値に変換する必要があります。

カテゴリ変数のエンコーディング方法

カテゴリ変数を数値に変換するための代表的なエンコーディング方法を紹介します。

ワンホットエンコーディング

ワンホットエンコーディングは、カテゴリ変数を二値変数(0または1)に変換する方法です。この手法は、名義尺度に適しています。

例えば、性別(男性、女性)のデータがある場合、次のようにエンコーディングされます。

  • 男性: [1, 0]
  • 女性: [0, 1]

このように、各カテゴリを個別の列として表現し、それぞれがそのカテゴリに該当するかどうかを示す二値データに変換されます。

ラベルエンコーディング

ラベルエンコーディングは、カテゴリ変数を整数に変換する方法です。これにより、カテゴリ変数を連続した整数値で表現することができます。順序尺度のデータに適しています。

例えば、教育レベル(小学校、中学校、高校、大学)のデータがある場合、次のようにエンコーディングされます。

  • 小学校: 0
  • 中学校: 1
  • 高校: 2
  • 大学: 3

この方法では、カテゴリ間の順序が保存されるため、順序のあるデータに適しています。ただし、名義尺度に対してこの方法を使用すると、モデルがカテゴリ間に誤った順序を見なしてしまうリスクがあるため、注意が必要です。

ターゲットエンコーディング

ターゲットエンコーディングは、各カテゴリのターゲット変数の平均値や中央値を使用して、カテゴリ変数を数値に変換する方法です。これは、データが大規模であり、カテゴリ数が多い場合に特に有効です。

例えば、ある地域ごとの住宅価格のデータがある場合、各地域の平均住宅価格を用いてエンコーディングを行います。これにより、カテゴリがターゲット変数とどの程度関係しているかを数値として表現できます。

フリークエンシーエンコーディング

フリークエンシーエンコーディングは、各カテゴリがデータセット内で出現する頻度を用いてエンコーディングを行う方法です。カテゴリが多い場合や、特定のカテゴリがデータセット内で頻繁に出現する場合に有効です。

例えば、職業データにおいて「エンジニア」が50回、「デザイナー」が30回、「マーケター」が20回出現する場合、次のようにエンコーディングされます。

  • エンジニア: 0.5
  • デザイナー: 0.3
  • マーケター: 0.2

この方法では、各カテゴリがデータセット内でどの程度の割合を占めているかを数値で表現することができます。

カテゴリ変数エンコーディングの選び方

カテゴリ変数のエンコーディング方法を選ぶ際には、いくつかのポイントを考慮する必要があります。

  • データの種類: 名義尺度なのか順序尺度なのかを判断し、それに応じたエンコーディング方法を選択します。
  • カテゴリの数: カテゴリ数が多い場合、ワンホットエンコーディングはデータの次元を増やしすぎるため、他の方法を検討する必要があります。
  • モデルとの相性: 使用する機械学習モデルによって、最適なエンコーディング方法が異なることがあります。例えば、決定木モデルではラベルエンコーディングがよく用いられますが、線形モデルではワンホットエンコーディングが推奨されることが多いです。

エンコーディングの選択は、モデルの精度や計算効率に直接影響を与えるため、慎重に行うことが重要です。

具体的な例とケーススタディ

例えば、マーケティングデータセットを使用して顧客の購入行動を予測するモデルを作成する場合、顧客の職業や居住地といったカテゴリ変数をエンコーディングする必要があります。

ここで、職業が名義尺度であるため、ワンホットエンコーディングを使用すると、モデルが職業ごとの特徴をうまく捉えることができます。また、居住地が多くのカテゴリに分かれている場合、ターゲットエンコーディングを用いることで、モデルのパフォーマンスを最適化することができます。

次回

今回は、文字データを数値に変換する方法であるカテゴリ変数のエンコーディングについて解説しました。データを適切にエンコーディングすることで、モデルの精度を高め、より正確な予測が可能になります。次回は、モデルに有用な特徴量を選択する手法である特徴量選択について詳しく見ていきましょう。

まとめ

今回は、カテゴリ変数を数値に変換するための手法であるカテゴリ変数のエンコーディングについて解説しました。エンコーディング方法を正しく選択することで、モデルがデータの特徴を効果的に学習し、より高い予測精度を実現することができます。次回は、特徴量選択について見ていきますので、お楽しみに!


注釈

  • カテゴリ変数: データが特定のカテゴリーやクラスに分類される変数。例として、性別や職業などがある。
  • 名義尺度(Nominal): カテゴリの間に順序がないもの。例:色(赤、青、緑)。
  • 順序尺度(Ordinal): カテゴリの間に順序があるもの。例:教育レベル(小学校、中学校、高校、大学)。
  • ワンホットエンコーディング: カテゴリ変数を二値変数(0または1)に変換する方法。
  • ラベルエンコーディング: カテゴリ変数を連続した整数値に変換する方法。
  • ターゲットエンコーディング: 各カテゴリのターゲット変数の平均値や中央値を用いてエンコーディングを行う方法。
  • フリークエンシーエンコーディング: 各カテゴリがデータセット内で出現する頻度を用いてエンコーディングを行う方法。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社PROMPTは生成AIに関する様々な情報を発信しています。
記事にしてほしいテーマや調べてほしいテーマがあればお問合せフォームからご連絡ください。
---
PROMPT Inc. provides a variety of information related to generative AI.
If there is a topic you would like us to write an article about or research, please contact us using the inquiry form.

コメント

コメントする

目次