Upgrade to Pro — share decks privately, control downloads, hide ads and more …

【第4回】関東Kaggler会「The Correct Way to Use the Vali...

Avatar for takaito takaito
August 23, 2025
180

【第4回】関東Kaggler会「The Correct Way to Use the Validation Score」

第4回関東kaggler会のLT資料を公開用に編集したものです.

Avatar for takaito

takaito

August 23, 2025
Tweet

Transcript

  1. 1 自己紹介 名前: 高野 海斗(たかいと) 略歴: 2021年3月: 博士後期課程 修了 (理工学博士)

    2021年4月: 資産運用会社 入社 (クオンツ) 専門分野: 自然言語処理(NLP) × 金融(Finance) KaggleやatmaCupを中心にコンペ参加する毎日を過ごしています
  2. 2 Today's Lightning Talk Kaggle をはじめとしたデータ分析コンペで用いられている Validation Score について紹介 ①

    基礎編 ・ Validationとは ・ 適切なValidationのためのデータ分割について ② 応用編 ・ Validation Score の使い方
  3. 4 Validationとは ✔ 実務やデータ分析コンペでは,現時点で使用可能な正解ラベルが付与されたデータ (train.csv) が存在し, 最終的に未知のデータ (test.csv) に対して有効なモデルを開発する必要がある ✔

    モデル選択,ハイパーパラメータの選択,モデルの過学習を抑制するなどの目的を達成するために,使用可 能なデータを訓練用データ (Training Data) と検証用データ (Validation Data) に分割して検証を行う Train Data Test Data Training Data Test Data Validation Data
  4. 7 Hold-out Validation と K-fold Cross-Validation ✔ Hold-out Validation ✔

    K-fold Cross-Validation (K分割交差検証) 偶然の影響を軽減することや効率的にデータを活用するために,データをK分割して,K回検証を行う Training Data Test Data Validation Data Test Data Data4 Data3 Data2 Data1 Test Data Validation Data Training Data Training Data Training Data Test Data Training Data Validation Data Training Data Training Data ・ ・
  5. 8 注意が必要なデータ分割① (時系列データ) ✔ 時間変化に伴ってデータの関係性などが変化するデータが対象でありテストデータが将来のデータ ⇒ 時系列を考慮してデータを分割する ⇒ Cross-Validation ではなく

    Rolling-Validation することもある Training Data Test Data Validation Data Training Data Validation Data Training Data Validation Data Training Data Validation Data ・ ・ 最新のデータ
  6. 11 Q: どちらのモデルを採用しますか? ✔ データ分割の方法や特徴量の極端なleakは起こっていないという前提でどちらのモデルを採用しますか? (評価指標は,分類タスクで使用されることの多い,1.0に近づくほど良い指標である AUC や F1と仮定) モデルA:

    5-fold Cross-Validation によるモデル学習の結果,CV Score 0.700 のモデル モデルB: 5-fold Cross-Validation によるモデル学習の結果,CV Score 0.690 のモデル A. これだけの情報では判断できない!
  7. 12 ケース1: 学習曲線に注目 ✔ モデル A の方が Validation Score の最大値は大きいが,各epochでのスコアが安定していない

    ✔ モデル B は Validation Score が安定している ✔ 仮に適切なデータ分割ができているのであれば, モデルBの方がLBのスコアが安定し,期待値も高い ✔ F1スコアなどの閾値でラベルを割り当てて計算する 評価指標などは,不安定な傾向にある このあたりの区間で スコアが安定している
  8. 13 ケース2: モデルごとの検証の頻度の差に注目 ✔ モデル A は小さなモデルでバッチサイズを大きくすることができるため,1 epoch が 5

    step で終わる ✔ モデル B は大きいモデルでバッチサイズを大きくすることができず, 1 epoch に 40 step の学習が行われる ✔ 左図は x 軸が step 数で,モデル B が 1 回の検証をする間にモデル A は 8 回検証の機会がある ✔ 右図は仮に各 step でモデルを検証した場合を示しており,モデル B は 1 epoch ですでに過学習している
  9. 14 ケース2の補足 ✔ 実際は大きなモデルで各 step の評価を行うのはなかなか難しい ✔ 工夫としては,検証用データを少し減らして,数 step ごとに評価を行って推移を一度確認するなどが現実的

    ✔ 勾配ブースティング決定木などは,各 step (イテレーション) で評価を行っているため,比較時は注意が必要 ✔ 過学習を早期に止めることができず,特定の分割でスコアが悪化してしまうこともある 勾配ブースティング決定木の各 fold の Validation Score : [0.69, 0.65, 0.73, 0.71, 0.72] 深層学習モデルの各 fold の Validation Score : [0.67, 0.59, 0.74, 0.72, 0.73] (特に,ラベル不均衡なデータで発生しやすく,これだけの理由で採用しないと判断するべきではない)
  10. 15 ケース3: CV Score の計算方法に注意 ✔ 状況に応じて CV Score の計算方法は使い分ける必要がある

    ✔ 大きく 2 通りの方法がある ① 各 fold の Validation Score を計算し,平均 (データ件数が不均衡な場合は加重平均) を取る方法 ② 各 fold の結果を連結し全データでまとめて Validation Score を計算する方法 ✔ ① でミスリーディングをすることは少ないが,② は評価指標やデータの性質次第でミスリーディングが起こる ✔ 評価指標が AUC の場合に起こりうる 2 つの例をとりあげる
  11. 16 例1: 各 fold の正解ラベルの分布が大きく異なる ✔ fold1 では偶然正例が多く,fold2 では偶然負例が多い場合を考える ✔

    ロス関数の最適化によって,最終的な予測値の分布に歪みが生じる可能性がある (学習データの正例が多い場合,モデルは迷ったらとりあえず正例側を示すようになる) ✔ 右の図はとても極端な例を示している ✔ このとき,各 fold の出力を連結して AUC を計算すると,各 fold のAUC よりも大きく悪化してしまう...
  12. 17 例2: 過学習や学習の早期停止によってばらつきが異なる ✔ fold1 では学習が早期に停止され,fold2 では十分に学習が行われた場合を考える ✔ 学習の停止タイミングによってモデルの出力のばらつきが変化することもある ✔

    右の図はとても極端な例を示している ✔ このとき,各 fold の出力を連結して AUC を計算すると,各 fold のAUC よりも大きく悪化してしまう... (青色の fold の予測が重視される)
  13. 18 例1と例2の対応策 ✔ 対応策は以下の 2 通り 対応策1: ① の各 fold

    の Validation Score を計算し,平均を取ることで対応が可能 対応策2: 各 fold の結果を連結する前に,各 fold で Rank 処理を適用することで,予測の分布を揃える ✔ 例1と例2はかなり極端な例を示したが,紹介したような現象が軽度に起こっているコンペは意外にも多い
  14. 19 Today's Lightning Talk Summary ✔ Kaggle をはじめとしたデータ分析コンペで用いられている Validation Score

    について紹介 ✔ 前半の検証データの分割方法までは,いろいろな書籍やブログで取り扱われている ✔ 後半は Validation Score 正しく使うために必要な視点を具体例をあげながら紹介 ✔ 結論としては,学習過程のスコアの推移や各モデルの出力分布をしっかり確認することが重要!! (データサイエンスの基本) ✔ 実務やコンペでは,特徴量の追加によって leak をはじめとした様々なことが起こりうるので意外と大変 ✔ 以下の資料を合わせて読むことをおすすめします!(詳細に扱えていない部分を相互補完できるはず...) shake-upを科学する by Jack さん