0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

TitanicコンペでHoldout精度0.8超えを達成するまでの実践記録(第四章 単一モデルでのスタッキング)

Last updated at Posted at 2025-09-29

単一モデルでのスタッキング

はじめに

本章では前章に引き続き、アンサンブル手法の一つであるスタッキングを用いて、第2章で作成した特徴量を用いてAccuracyの向上を狙う。

この章では第一層のベースラインに単一の機械学習モデルを使い、特徴量のサブセットを変えることにより、多様性を出す。その他閾値や相関の強いOOFを省く過程は第3章と同じなので、説明は省略する

第一層 ベースラインモデルの選定

ベースラインモデルにはロジスティック回帰を採用する

まず、全てのサブセットに共通して含まれるコア特徴量を定義しました。

コア特徴量:Pclass, Sex, Age, Fare, IsAlone

セット名 特徴量 説明
core Pclass, Sex, Age, Fare, IsAlone 基本的な予測因子
family Family_size_solo, Family_size_middle, Family_size_large 家族構成による影響を表す
ticket Ticket_group_category_Small, Ticket_group_category_Medium, Ticket_group_category_Large チケットから推定した同行グループ規模
cross Pclass_x_Sex, Pclass_x_Age, Pclass_x_Fare, Sex_x_Age, Sex_x_Fare, Age_x_Fare 主な交互作用項
cabin Cabin_missing, Cabin_group_Upper, Cabin_group_Middle, Cabin_group_Lower Cabin 欠損有無とデッキ位置
title Title_grouped_Master, Title_grouped_Mr 敬称による年齢・性別・地位の差

実装上のポイント

サブセットの設計意図:すべてのモデルに共通してコア特徴量(Pclass, Sex, Age, Fare, IsAlone)を含め、その上で追加特徴量ごとに異なる視点を与えることで、多様性を確保した。

core:予測の基盤となる最小限の特徴量群。

family:家族構成が生存率に与える影響を検証するため。

ticket:チケット番号から推定した同行グループ規模を反映させるため。

cross:主要変数同士の交互作用を導入し、複合的な影響を捉えるため。

cabin:Cabin 欠損やデッキ位置といった安全性に関わる要素を組み込むため。

title:敬称から年齢・性別・社会的地位を補助的に反映させるため。

前処理の共通化:Ageの欠損補完やSexのカテゴリ変換はパイプラインにまとめ、train・holdoutで分けて適用し、情報リークを防止した。

冗長性の検証:OOF予測確率の相関を確認したところ、相関 ≥ 0.98 の冗長なモデルは存在しなかったため、全サブセットを採用した。

ハイパーパラメータ探索:正則化パラメータCなどはOptunaで探索し、各サブセットに応じて調整を行った。

第二層 メタモデルについて

メタモデルには第3章と同様にロジスティック回帰を採用し、Optunaによるパラメータ探索を行った。

結果

Base最適化 Meta最適化 Best C CV Acc best threshold Train Acc@thr Holdout AUC Holdout Acc
AUC AUC 226.50 0.8508 0.61 0.8188 0.7758 0.7430
AUC Acc 13.90 0.8090 0.60 0.8174 0.7816 0.7542
Acc Acc 20.64 0.8090 0.61 0.8188 0.7800 0.7486
Acc AUC 227.19 0.8508 0.61 0.8188 0.7758 0.7430

(AUC, Acc)のときROC_AUC, AccuracyいずれにおいてもHoldoutスコアで最も高いスコアを出した
output30.png

表の通り、Base最適化とMeta最適化の指標の組み合わせによって、Holdoutにおける精度がやや異なる結果となった。

Base=AUC / Meta=AUC

CV Acc は最も高い (0.8508) が、Holdout AUC (0.7758) と Holdout Acc (0.7430) はやや低め。

交差検証での性能は良いが、Holdoutに対して汎化性能が十分に出ていない。

Base=AUC / Meta=Acc

CV Acc は0.8090と低いが、Holdout AUC (0.7816) と Holdout Acc (0.7542) が最も良い。

AUCで広い探索をしつつ、最終的にAccで閾値調整をしたことが功を奏したと考えられる。

Base=Acc / Meta=Acc

CV Acc は0.8090、Holdout AUC (0.7800)、Holdout Acc (0.7486) とバランスは悪くない。

ただし、Meta最適化をAccに固定すると、Holdout性能はBase=AUC/Meta=Accにやや劣る。

Base=Acc / Meta=AUC

CV Acc は最も高い0.8508だが、Holdout AUC (0.7758)、Holdout Acc (0.7430) は低下。

Acc最適化で閾値が偏り、AUC重視でMetaを組んだ際にHoldoutで性能が落ちた可能性がある。

考察

交差検証スコアが高くても、Holdout性能に直結するわけではないことが確認された。特に AUC → AUC のように両方を同じ指標にすると、過学習の影響が出やすい。

最も安定して高い汎化性能を示したのは Base=AUC / Meta=Acc の組み合わせであり、Holdout AUC=0.7816、Holdout Acc=0.7542 を達成した。

これは、Base段階でAUC最適化により確率分布の形を整え、Meta段階でAcc最適化により閾値調整を行う流れが有効であることを示している。

結論として、Titanic データのようにラベル不均衡が軽度に存在する状況では、Base=AUC / Meta=Acc のハイブリッド最適化が最も効果的と考えられる。

第一層 ベースラインモデルの選定

コア特徴量に加えて、特定の観点を反映した特徴量を追加した5種類のサブセットを作成しました。

サブセット名 追加した特徴量 狙い
core+family Family_size_solo, Family_size_middle, Family_size_large 家族構成の影響を確認
core+ticket Ticket_group_category_Small, Ticket_group_category_Medium, Ticket_group_category_Large チケットに基づく同行グループを考慮
core+cross Pclass_x_Sex, Pclass_x_Age, Pclass_x_Fare, Sex_x_Age, Sex_x_Fare, Age_x_Fare 交互作用による複合効果を捉える
core+cabin Cabin_missing, Cabin_group_Upper, Cabin_group_Middle, Cabin_group_Lower Cabin 欠損やデッキ位置を考慮
core+title Title_grouped_Master, Title_grouped_Mr 敬称による年齢・性別の補助的情報を利用

実装上のポイント

サブセットの多様性:すべてのモデルに共通して「Pclass, Sex, Age, Fare, IsAlone」を含めたうえで、以下の特徴量群を追加し、異なる観点からの情報を取り込むことを狙った。

family:家族構成が生存に与える影響を検証するため。

ticket:チケット番号から推定した同行グループ規模を反映するため。

cross:主要変数同士の交互作用による複合的な影響を捉えるため。

cabin:Cabinの欠損やデッキ位置による安全性の差を反映するため。

title:敬称に基づく年齢・性別・社会的地位の違いを補助情報として利用するため。

結果

Base最適化 Meta最適化 Best C CV Acc best threshold Train Acc@thr Holdout AUC Holdout Acc
AUC Acc 872.12 0.8133 0.55 0.8188 0.6780 0.5866
AUC AUC 137.74 0.8506 0.60 0.8188 0.7003 0.6425
Acc AUC 0.0978 0.8566 0.60 0.8020 0.8233 0.7933
Acc Acc 4.47 0.7992 0.52 0.8048 0.8188 0.7989

極端にHoldout Accが低い(AUC, Acc)の係数寄与度の可視化
output31.png

4通りの最適化方針を比較した結果、Base と Meta の指標の組み合わせによって Holdout の挙動が大きく変化した。

Base=AUC / Meta=Acc

CV Acc は 0.8133 とそこそこだが、Holdout AUC=0.6780、Acc=0.5866 と極端に低下。

AUC重視で基盤を作りつつ Acc で閾値調整したが、過学習に近い状態となり汎化性能が落ちた。

Base=AUC / Meta=AUC

CV Acc=0.8506 と高く、Holdout でも AUC=0.7003, Acc=0.6425。

それなりの安定性を示すが、Holdout に対しては性能不足が見られる。

Base=Acc / Meta=AUC

CV Acc=0.8566 と最も高い。Holdout でも AUC=0.8233, Acc=0.7933 を記録し、全体で最良の結果。

Acc で基盤を整えつつ AUC で確率分布を評価したことが、汎化性能の向上に寄与したと考えられる。

Base=Acc / Meta=Acc

CV Acc はやや低め (0.7992) だが、Holdout AUC=0.8188, Acc=0.7989 と安定。

Base, Meta ともに Accuracy に揃えることで、シンプルながら実用的な結果を得られた。

考察

最も良いバランスを示したのは Base=Acc / Meta=AUC であり、Holdout AUC=0.8233, Holdout Acc=0.7933 を達成。

Acc / Acc も安定しており、汎化性能を犠牲にせず実用的な選択肢となる。

一方で、Base=AUC 系は Holdout におけるスコア低下が顕著で、Titanic データのようなクラス不均衡タスクでは不利に働く可能性がある。

結論として、実運用では Acc 最適化を基盤とし、Meta で AUC を組み合わせる構成が最も有効と判断できる。

総合考察

本検証から、Holdout スコアを最大化するには LightGBM・SVC・kNN・ExtraTrees・Logistic Regression・Naive Bayes・CatBoost の7モデルをベースラインに組み込み、ベースラインでは Accuracy を重視し、メタモデルでは AUC を重視してパラメータ探索を行うのが最も有効であると分かった。

これは、第2章で検証した「家族構成・チケット・交互作用・Cabin・敬称」などのサブセット別ロジスティック回帰よりも、多様なアルゴリズムを組み合わせたベースラインの方が精度を高められることを示している。
すなわち、個別特徴量の選択よりもモデル多様性による学習の補完効果が大きく寄与しており、スタッキングにおけるベースライン構築の重要性が裏付けられた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?