【要約】15-⑤[AI][Kaggle]Kaggle実践1 特徴量エンジニアリング(数値特徴量の非線形変換とビン化) [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
KaggleのTitanic生存者予測において、モデルの予測精度を向上させるための特徴量設計が課題であった。具体的には、以下の技術的な問題に直面した。
- ・運賃(Fare)の分布が極端なロングテールであり、学習を不安定にする要因となっていた。
- ・年齢(Age)と生存率の関係が非線形であり、単純な数値入力ではモデルが捉えきれなかった。
- ・変換後の変数と元の変数を併用した際、多重共線性によりモデルが不安定になるリスクがあった。
// Approach
筆者は、数値特徴量の分布と非線形性を改善するため、以下の手法を適用した。
- ・Fareの対数変換:
log1p(Fare)を適用し、右に偏った分布を正規分布に近づけた。 - ・Ageのビン化: 年齢を5つのカテゴリ(乳幼児、子供、若者、中年、高齢者)に分割し、ダミー変数化した。
- ・検証パターンの設計: 元の変数と変換後の変数の組み合わせを4パターン(A〜D)用意し、5-Fold CVで比較評価した。
// Result
検証の結果、決定木系モデルにおいて、元の数値を排除し変換後の特徴量のみを用いたパターンCが最も高い成果を出した。
- ・Random Forest: CV 0.8249 $\rightarrow$ 0.8339。
- ・XGBoost: CV 0.8226 $\rightarrow$ 0.8283。
- ・LightGBM: CV 0.8485 $\rightarrow$ 0.8496。
- ・Kaggle Public Score: 0.78947 $\rightarrow$ 0.79665へ向上した。
Senior Engineer Insight
> 特徴量エンジニアリングはモデルの性質に依存する。線形モデルでは情報の解像度低下が致命的だが、決定木系では過学習抑制に寄与する。実戦では、単なる変換だけでなく、多重共線性を考慮した変数選択のプロセスが不可欠である。モデルの特性を見極めた上で、適切な変換を選択すべきだ。