Frequency Encoding

Frequency Encodingとは?


Frequency Encodingとは、カテゴリ変数を数値に変換する方法の一つで、各カテゴリの出現頻度を用いてエンコードを行います。具体的には、カテゴリ変数内の各ユニークなカテゴリがデータセット内に出現する頻度(割合)を計算し、その値をカテゴリに対応させて数値化します。

下記のようなカテゴリ変数があるとします。

import pandas as pd

data = {
    'Category': ['A', 'B', 'A', 'C', 'B', 'B', 'A', 'C']
}
df = pd.DataFrame(data)

df

各カテゴリの出現頻度は以下のようになります。

  • A: 3回(3/8 = 0.375)

  • B: 3回(3/8 = 0.375)

  • C: 2回(2/8 = 0.25)

実際にpandasでカテゴリ毎の出現頻度を計算してみます。
value_countsメソッドで出現頻度を計算します。さらにnormalize=Trueを指定することで、割合として取得することが出来ます。

frequency_encoding = df['Category'].value_counts(normalize=True)
df['Frequency Encoded'] = df['Category'].map(frequency_encoding)

df