【要約】15-④[AI][Kaggle]Kaggle実践1 特徴量エンジニアリング(ランダムフォレストによる年齢補完) [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者がTitanic生存者予測コンペにおいて、年齢(Age)の欠損値処理の精度向上という課題に直面した。従来の補完手法では、以下の問題があった。
- ・敬称(Title)ごとの中央値を用いる手法では、個々の乗客の属性を十分に反映できない。
- ・年齢は生存予測に直結する重要な変数であり、不適切な補完はモデル全体の精度を低下させる。
// Approach
開発者は、単純な統計量による補完を脱却し、機械学習を用いた予測補完を採用した。具体的な手順は以下の通りである。
- ・RandomForestRegressorを用いて、年齢が既知のデータから学習を行う。
- ・説明変数として、Pclass, Sex, SibSp, Parch, Fare, Embarked, Title, Deck, FamilySize, IsAloneを使用する。
- ・カテゴリ変数はpd.get_dummiesを用いてOne-Hotエンコーディングを実施する。
- ・学習済みモデルを用いて、欠損している乗客の年齢を予測し、元のデータに代入する。
// Result
補完手法の変更により、予測精度が定量的に向上した。開発者が得た成果は以下の通りである。
- ・5-Fold CVにおいて、Logistic Regressionのスコアが0.8507から0.8519へ向上した。
- ・KaggleのPublic Scoreが0.78708から0.78947へと改善した。
- ・ローカルのCVスコアの改善が、実際のコンペティションスコアの向上に直結することを確認した。
Senior Engineer Insight
> 欠損値補完にモデルを用いる手法は、特徴量間の相関を活かせる点で極めて合理的だ。しかし、実運用への投入には注意が必要である。補完モデルの学習と推論がパイプラインに追加されるため、計算コストとレイテンシが増大する。特に大規模トラフィックを捌く現場では、このコストが許容範囲内かを厳格に評価すべきだ。精度向上とシステム複雑性のトレードオフを常に意識せよ。