03.1
モデル選択
まとめ
この章では「どのモデルが本番でいちばん良く働くか」を学習に使っていないデータで公平に比べる方法を学びます。交差検証はデータを \(k\) 個に分けて検証用を入れかえながら \(k\) 回評価し、層化 K-Fold はクラス比率を保って分け、Nested CV はハイパーパラメータ探索と汎化性能の推定を 2 段に分けます。学習曲線はサンプル数を、検証曲線はハイパーパラメータ(例: SVC の \(C\))を横軸にして訓練スコアと検証スコアの 2 本を描き、差が開けば過学習、両方低ければ学習不足と読み取ります。AIC・BIC は交差検証を使わずに対数尤度とパラメータ数で統計モデルを比べる規準で、これらを使い分けて検証戦略を設計できるようになります。
直感 #
「どのモデルがもっとも良いか」を公平に比較するには、学習に使っていないデータで性能を測る必要がある。データの分割方法を誤ると過学習を見逃し、本番環境で精度が大幅に低下する。このチャプターでは、データ分割(交差検証)・曲線による診断(学習曲線・検証曲線)・情報量規準(AIC・BIC)という3つの視点からモデル選択の基本を体系的に押さえる。
詳細な解説 #
このチャプターで学べること #
- ホールドアウトと K-Fold 交差検証の違い、
StratifiedKFoldによる層化分割が必要な場面の判断基準 - ネストした交差検証でハイパーパラメーター探索と汎化性能推定を同時に行う方法
- 検証曲線によるハイパーパラメーターの影響の可視化と、訓練・検証スコアの差からの過学習の診断
- 学習曲線を使ったサンプルサイズの効果の把握と、追加データ収集に投資すべきかの判断
- AIC・BIC による統計モデルの比較と、交差検証との使い分け
これがわかるとできること #
- データ特性(クラス不均衡・時系列性・サンプル数)に応じた検証戦略を設計できる
- 過学習・過少学習の兆候を学習曲線・検証曲線の 2 本の線から読み取り、正則化やデータ追加など改善の方向性を判断できる
- モデルの複雑さとフィットのトレードオフを AIC・BIC や交差検証スコアで定量的に評価できる
手法間の関係マップ #
graph LR
CV["交差検証"] --> KF["K-Fold"]
KF --> SKF["層化 K-Fold"]
KF --> NCV["Nested CV"]
VIS["可視化診断"] --> LC["学習曲線"]
VIS --> VC["検証曲線"]
IC["情報量規準"] --> AIC["AIC"]
IC --> BIC["BIC"]
手法クイックリファレンス #
| 手法 | 目的 | 計算量 | 推奨場面 |
|---|---|---|---|
| 交差検証 | 汎化性能の推定 | 中 | モデル比較のベースライン |
| 層化 K-Fold | クラス比率を保持した分割 | 中 | 不均衡データの検証 |
| Nested CV | 探索と評価の分離 | 高 | HP探索+汎化推定の同時実行 |
| 学習曲線 | サンプル数の効果の把握 | 中 | データ追加の判断 |
| 検証曲線 | HPの影響の可視化 | 中 | 過学習・過少学習の診断 |
| AIC / BIC | 情報量規準によるモデル比較 | 低 | 統計モデルの選択 |
| Optuna | ベイズ最適化によるHP探索 | 高 | 大規模なHP空間の効率的探索 |
学習の進め方 #
まず交差検証と層化 K-Fold で、データを \(k\) 個に分けて検証用を入れかえる分割の基本と、クラス比率を保つ理由を理解する。次に検証曲線と学習曲線で、横軸をハイパーパラメータにするかサンプル数にするかの違いと、訓練・検証スコアの 2 本の線の読み方を押さえる。続いてネストした交差検証で、GridSearchCV の内側ループと評価用の外側ループを分離する設計パターンを学ぶ。最後に AIC・BIC で、交差検証を使わずに対数尤度とパラメータ数からモデルを比べる手法を確認する。
まとめ #
このチャプターでは、交差検証によるデータ分割・学習曲線/検証曲線による診断・情報量規準によるモデル比較の3つの柱でモデル選択を学んだ。 過学習と過少学習を正しく見分け、データ特性に応じた検証戦略を設計してモデルの汎化性能を公平に比較できるようになることがゴールである。