#概要
異常検知を勉強している中で、日本語解説の少ないEncoding手法が必要になったので自分なりにまとめておきます。
#Frequency Encoding
Frequency Encodingとは、各カテゴリ変数値の出現確率でEncodingする方法です。
例えば下の表で考えると、カテゴリBは出現回数が2回、全体のレコード数が6回であることから、2/6=0.333....となります。
id | カテゴリ | 出現頻度 | Frequency Encoding |
---|---|---|---|
0 | A | 3 | 0.500 |
1 | A | 3 | 0.500 |
2 | A | 3 | 0.500 |
3 | B | 2 | 0.333 |
4 | B | 2 | 0.333 |
5 | C | 1 | 0.167 |
#使用例
Frequency Encodingの平均値を取ると、各カテゴリ変数の占有度合いが比較できそうな気がします。
以下のような表を考え、売れた商品のカテゴリをFrequency Encodingしてその平均値を比較してみます。
id | 会社 | カテゴリ | 出現頻度 | Frequency Encoding |
---|---|---|---|---|
0 | A社 | 食品 | 5 | 0.833 |
1 | A社 | 食品 | 5 | 0.833 |
2 | A社 | 食品 | 5 | 0.833 |
3 | A社 | 食品 | 5 | 0.833 |
4 | A社 | 食品 | 5 | 0.833 |
5 | A社 | 日用品 | 1 | 0.167 |
6 | B社 | 食品 | 2 | 0.333 |
7 | B社 | 食品 | 2 | 0.333 |
8 | B社 | 家電 | 2 | 0.333 |
9 | B社 | 家電 | 2 | 0.333 |
10 | B社 | 本 | 2 | 0.333 |
11 | B社 | 本 | 2 | 0.333 |
表を見た限り、A社の売れた商品カテゴリは偏っているように感じます。
この感覚を数値化できるのがFrequency Encodingの平均値です。
実際に計算してみると、A社の平均は0.722...、B社の平均は0.333...となり、数値によって差別化されています。
#Frequency Encodingの平均値まとめ
値が大きいほどカテゴリ変数の偏りが大きくなります。最大値は全レコードが同じカテゴリの場合、すなわち1です。
反対に、値が小さいほどカテゴリ変数の偏りが小さくなります。最小値は全レコード(Nレコード)が異なるカテゴリの場合、すなわち1/Nです。
#ハーフィンダール・ハーシュマン・インデックス(HHI)
ここまでFrequency Encodingの平均値というものを考えてきましたが、経済学の文脈ではハーフィンダール・ハーシュマン・インデックス(HHI)という数値が存在します。Wikipedia(https://ja.wikipedia.org/wiki/ハーフィンダール・ハーシュマン・インデックス) から引用すると、
ハーフィンダール・ハーシュマン・インデックス(Herfindahl-Hirschman Index, HHI)とは、ある産業の市場における企業の競争状態を表す指標の一つ。その産業に属する全ての企業の市場占有率の2乗和と定義される。HHIは独占状態においては 1(数値に%表示のものを用いるときには10000)となり、競争が広くいきわたるほど 0 に近づく。寡占度指数とも呼ばれる。
とあります。これはどこかで見たことある気がする...。
試しに先ほどの例を元にして、会社を産業に、カテゴリ変数を企業に、出現確率を占有率にそれぞれ読み替えてA社とB社のHHIを計算してみると
A社は$(\frac{5}{6})^2+(\frac{1}{6})^2=0.722...$、B社は$(\frac{2}{6})^2\times 3=0.333...$とまったく同じ値になりました。
証明は省略しますが、このようにFrequency Encodingの平均値と読み替え後のHHIは一致します。
私は経済学に明るくなかったため、指摘があるまでまったく知りませんでした。
#最後に
Frequency Encodingは何かしらの予測モデルというより、異常検知向きなEncoding手法だと思っています。
参考になれば幸いです。