【要約】15-③[AI][Kaggle]Kaggle実践1 『Titanic生存者予測』3.Name列の特徴量エンジニアリング [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、既存のベースラインモデルにおいて、生存率の予測精度が不十分であるという課題に直面した。Sex(性別)やAge(年齢)といった基本変数だけでは、当時の社会構造を反映した生存傾向を十分に表現できなかった。具体的には以下の問題があった。
- ・性別や年齢だけでは、社会的地位や婚姻状況を捉えきれない。
- ・Name列に隠れた「敬称」が、生存率に寄与する重要な変数である可能性を見逃していた。
- ・サンプル数の少ない敬称をそのまま扱うと、ノイズとなる懸念があった。
// Approach
開発者は、Name列から社会的属性を抽出するために、以下の特徴量エンジニアリングを実施した。
- ・
str.extract()と正規表現を用い、Name列から敬称を抽出した。 - ・サンプル数の極端に少ない敬称を「Rare」に集約し、ノイズを低減した。
- ・カテゴリ変数の変換として、LabelEncodingとOne-Hot Encodingの両方を検証した。
- ・モデルをDecisionTreeからRandomForestへ変更し、精度の最適化を図った。
// Result
開発者は、特徴量エンジニアリングとモデルの変更により、予測精度の向上を確認した。
- ・One-Hot EncodingとRandomForestの組み合わせにより、スコアが0.72488から0.73444へ向上した。
- ・集約のしすぎ(DrやRevをRareにまとめる等)は、情報の欠落を招き精度を下げる悪手であることが判明した。
- ・適切な集約とモデル選定の重要性が定量的に示された。
Senior Engineer Insight
> テキストからの特徴量抽出において、集約の「さじ加減」が極めて重要である。本記事の実験は、集約がノイズ除去として機能する一方で、過度な集約は識別能力を削ぐことを示している。実務では、ドメイン知識に基づき、情報の損失とノイズのトレードオフを慎重に評価すべきだ。また、モデルの性質(決定木系か否か)によって最適なエンコーディングが異なる点も、実装時の重要な留意事項である。