特徴量前処理における統計変換とカテゴリエンコーディング

統計変換手法

1. 対数変換

対数変換はデータの分布を正規分布に近づける効果があり、特に右裾が長い分布に有効です。

# Python実装例
import numpy as np
df['log_income'] = np.log1p(df['income'])

2. Box-Cox変換

正規分布に近づけるためのパラメトリックな変換手法です。

# Python実装例
from scipy import stats
transformed, lambda_val = stats.boxcox(df['value'] + 1)

カテゴリ特徴量のエンコーディング

1. ラベルエンコーディング

カテゴリ値を数値にマッピングしますが、順序関係が生じる可能性があります。

# Python実装例
from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
df['category_encoded'] = le.fit_transform(df['category'])

2. ワンホットエンコーディング

各カテゴリをバイナリ特徴量として表現します。

# Python実装例
pd.get_dummies(df, columns=['category'])

3. ターゲットエンコーディング

カテゴリごとの目的変数の平均値を使用してエンコーディングします。

# Python実装例
target_mean = df.groupby('category')['target'].mean()
df['category_encoded'] = df['category'].map(target_mean)

4. 頻度エンコーディング

カテゴリの出現頻度を使用してエンコーディングします。

# Python実装例
freq = df['category'].value_counts(normalize=True)
df['category_encoded'] = df['category'].map(freq)

タグ: 特徴量エンジニアリング 統計変換 カテゴリエンコーディング 機械学習前処理 データサイエンス

6月2日 18:48 投稿