IMOKURI / ubiquant-market-prediction

Kaggle Ubiquant Market Prediction
MIT License
2 stars 3 forks source link

CV 戦略 #1

Open IMOKURI opened 2 years ago

IMOKURI commented 2 years ago

Overview

TimeSeriesSplit と GroupKFold のハイブリッド

image

https://github.com/IMOKURI/ubiquant-market-prediction/blob/01c78b6cb9453aaa169c0d37de2be41c6e93cd63/src/make_fold.py#L73-L82

これらのモデルをアンサンブルする際は、weight をかけるのが良さそう。 例えば、 [0.0625, 0.0625, 0.125, 0.25, 0.5] for 5 fold

https://www.kaggle.com/c/ubiquant-market-prediction/discussion/303916#1669144

IMOKURI commented 2 years ago

↑ だと、わかい fold のデータ量が少なくて、精度が低いので、データは以下のようにもっとたくさん使うようにしてみる。

image

https://github.com/IMOKURI/ubiquant-market-prediction/blob/97ef4614d5d63625e7c691e434733a0f80792d65/src/run_loop.py#L32-L34

IMOKURI commented 2 years ago

↑ この fold で学習して、最終的にはすべてのデータで学習した 1つのモデルをサブミットに含めるのはありかもしれない

https://www.kaggle.com/c/ubiquant-market-prediction/discussion/303916#1668816

IMOKURI commented 2 years ago

CPCV(Combinatorial Purged Cross-Validation)

https://zenn.dev/ymd/articles/fd08fb46bc868c

validation に 2block 使うことで、 oof の結果を 複数得ることができる、その結果でCVを評価することで、より、ロバストなモデルが作れる。

一方で、すべての investment_id を使っているので、未知の investment_id に対して弱い可能性がありそう。 要検討

image

validation データの直前、直後の学習データを使わないようにするのが、よさそう。

image

IMOKURI commented 2 years ago

↑ の fold 分割に対して、 investment_id の group kfold を追加したもの

image

IMOKURI commented 2 years ago

↑ この fold で学習して、最終的にはすべてのデータで学習した 1つのモデルをサブミットに含めるのはありかもしれない

kaggle.com/c/ubiquant-market-prediction/discussion/303916#1668816

validation のデータバリエーションが少なくて、だめ。