単一モデルでのスタッキング
はじめに
本章では前章に引き続き、アンサンブル手法の一つであるスタッキングを用いて、第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スコアで最も高いスコアを出した

表の通り、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)の係数寄与度の可視化

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・敬称」などのサブセット別ロジスティック回帰よりも、多様なアルゴリズムを組み合わせたベースラインの方が精度を高められることを示している。
すなわち、個別特徴量の選択よりもモデル多様性による学習の補完効果が大きく寄与しており、スタッキングにおけるベースライン構築の重要性が裏付けられた。