Count Encoder

サンプルデータ

「人口総数」を予測したいとして、「元号」をエンコードしたいとします。

import pandas as pd

X = pd.read_csv("../data/sample.csv")
TARGET_NAME = "人口総数"
FEATURE_NAME = "元号"
X.head()
元号和暦西暦人口総数町名
0大正9.01920.0394748A町
1大正9.01920.031421B町
2大正9.01920.0226993C町
3大正9.01920.0253689D町
4大正9.01920.0288602E町

CountEncoder

from category_encoders.count import CountEncoder
from sklearn.compose import make_column_transformer

c_ce = CountEncoder()

y = X[TARGET_NAME]
X[f"{FEATURE_NAME}_ce"] = c_ce.fit_transform(X[FEATURE_NAME], y)

結果を確認する

カテゴリ変数の列が CountEncoder でエンコードされていることを確認します。

X[[FEATURE_NAME, f"{FEATURE_NAME}_ce"]]
元号元号_ce
0大正96
1大正96
2大正96
3大正96
4大正96
.........
975平成300
976平成300
977平成300
978平成300
979平成300

980 rows × 2 columns

元号の出現回数を確認する

X[FEATURE_NAME].value_counts()
昭和    584
平成    300
大正     96
Name: 元号, dtype: int64