Feature Engineering#
Scaling#
Compare the effect of different scalers on data with outliers — scikit-learn documentation
Min-Max scaling#
\([0, 1]\)の範囲に変換する。
線形変換のためデータの分布・相対的な位置関係は変化しない。
Standardization#
平均0、分散1に変換する。
線形変換のためデータの分布・相対的な位置関係は変化しない。
Power Transformation#
対数変換の一般化
Box-Cox Transformは正の値しか受け付けないが、Yeo-Johnson transformは負の値も扱える
非線形変換のためデータの分布は変化する
Encoding Categorical Features#
カテゴリカル変数を数値に変換する方法について。
One-Hot Encoding#
カテゴリカル変数の値の水準の数\(K\)だけ列を作り、二値で表現する\(x \in \{0,1\}^K\)。1レコード\((x_{i1}, x_{i2}, \dots, x_{iK})\)につき1つのみ1をとり、ほかは0をとる
回帰分析におけるダミー変数は\(K-1\)個の列を作るので少し異なる
Label Encoding#
カテゴリを対応する整数に置き換える。
class A = 1, class B = 2, ...
という感じ
Target Encoding#
カテゴリごとに条件づけたもとでの目的変数の集計値(例えば平均値)を使う
Domain-Specific Feature Engineering#
返済比率などドメイン固有の特徴量
(※データサイエンティスト協会スキルチェックシートの項目の一つが「ドメイン固有の特徴量を生成できる」)
参考#
Feature Engineering A-Z | Preface
Feature Engineeringを幅広くまとめた本