ITエンジニア ノイのブログ

ITエンジニアのノイです。 YouTubeで ITエンジニアのお勉強という学習用の動画を公開しています。チャンネル登録お願いします!https://m.youtube.com/channel/UCBKfJIMVWXd3ReG_FDh31Aw/playlists

カテゴリ変数

カテゴリ変数とは

カテゴリ変数は、データの中で項目やラベルを区別するために使用される変数です。カテゴリ変数の値は、文字列または数値の集合です。 カテゴリ変数はデータ分析や統計的な処理において重要な役割を果たし、データの特性に基づいて適切な解析手法を選択する際に考慮されます。

カテゴリ変数の例

カテゴリ変数の例としては、地名や行政名、職業などがあります。これらの変数は有限の集団であることが特徴であり、通常は名義尺度で表されます。名義尺度のカテゴリ変数では、カテゴリ間に大小関係は存在せず、単に異なるカテゴリを区別するために使用されます。このようなデータは非順序データと呼ばれます。

順序データ

一方、順序データはカテゴリ変数の別の形態であり、大小の区分が存在します。順序データでは、カテゴリ間の順序関係が重要であり、さらに水準に対して「重み」が存在する可能性があります。例えば、評価尺度や満足度のようなデータが順序データの例です。

変数のエンコーディング

エンコーディングは、情報を別の形式や表現に変換するプロセスです。データや情報を効果的に表現し、処理や伝達を容易にするために使用されます。

具体的なエンコーディング手法

カテゴリ変数のエンコーディング方法として、ワンホットエンコーディング、ダミーコーディング、およびエフェクトコーディングが一般的に使用されます。

  1. ワンホットエンコーディング(One-Hot Encoding): ワンホットエンコーディングは、カテゴリ変数の各水準を個別のバイナリ変数(ダミー変数)として表現する方法です。各水準に対して1つの変数が作成され、該当する水準には1が、それ以外の水準には0が割り当てられます。これにより、カテゴリ変数の情報が保持され、数値データとして解析や機械学習アルゴリズムに適用できます。

  2. ダミーコーディング(Dummy Coding): ダミーコーディングは、ワンホットエンコーディングの一種であり、カテゴリ変数の水準を0と1の値で表現します。ただし、ダミーコーディングでは各水準ごとに1つの変数が作成されますが、基準となる水準を除いて、他の水準には0が割り当てられます。この方法は、カテゴリ変数の水準間の相対的な効果や差異を捉えるために使用されます。

  3. エフェクトコーディング(Effect Coding): エフェクトコーディングもカテゴリ変数のエンコーディング手法の一つであり、ダミーコーディングに似ています。エフェクトコーディングでは、各水準ごとに変数を作成しますが、基準となる水準には-1が割り当てられ、他の水準には1が割り当てられます。これにより、カテゴリ変数の水準間の相対的な効果を推定することができます。

カテゴリ変数のカテゴリ数が膨大なとき

特徴ハッシング(Feature Hashing)は、大規模な特徴量セットを効率的に扱うための手法です。特徴ハッシングは、次元削減や特徴量の表現を簡素化するために使用されます。

特徴ハッシング

特徴ハッシングでは、ハッシュ関数を使用して特徴量を固定サイズのベクトルに変換します。このハッシュ関数によって、特徴量は一定のビン(バケット)に割り当てられます。通常、ハッシュ関数は特徴量の値を入力とし、ランダムにビンの位置を決定します。

特徴ハッシングの利点

特徴ハッシングの主な利点は、特徴量の次元を削減できることです。ハッシュ関数によって特徴量は固定サイズのベクトルに変換されるため、元の特徴量の次元数に関係なく、出力の次元数は事前に指定されたビン数になります。これにより、メモリや計算リソースの節約が可能となります。

特徴ハッシングの注意点

特徴ハッシングは衝突(異なる特徴量が同じビンにマッピングされること)が発生する可能性があります。このため、ハッシュ関数の選択やビンの数の調整など、適切な設定が重要です。

youtu.be