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
