なぜ分割がすべてなのか
モデルは見たことのないデータで評価されます。金融では3つの集合を使います。当てはめる学習データ、設定を選ぶ検証データ、結果を報告するために一度だけ使うテストデータです。これらは時間に沿わなければなりません。過去で学習し、次の期間で検証し、最後の期間でテストします。ランダム分割は同じ嵐の日を両方に入れてしまい、モデルは規則を学ぶ代わりに隣の日を覚えます。リークとは、検証期間やテスト期間の情報が学習の段階に届くことです。よくある形は4つ。全日程で当てはめたスケーラー、未来の価格を使う特徴量、後からしか分からない目的変数のような列、時間的に重なるラベルです。
重なるラベルには特別な注意が必要です。ラベルが先の か月のリターンなら、学習行 とテスト行 のラベルは のとき月を共有します。したがってテスト期間の直前の 個の学習行は、テスト結果の一部を知っています。対策は、それらの行を除くパージと、安全な間隔を空けるエンバーゴで、次のトピックで扱います。小さな数で規模を見ましょう。月次1000行を で分けるとテスト期間は800行目から始まり、 なら各境界の近くで学習行が2つ重なります。
- 時間で分ける:過去で学習、次の期間で検証、最後の期間でテスト。テストを見るのは一度だけ。
- 4つのリーク:当てはめた前処理、未来の特徴量、目的変数のような列、重なるラベル。
- シャッフルした得点は警告のサイン:日をシャッフルすると得点が大きく上がるなら、モデルは隣の日を覚えている。
ラボ:採点される内容
- テスト期間の開始位置10点
- 学習データの大きさ10点
- スケーラーが未来から学ぶもの10点
- 重なるラベル15点
- シャッフルがどれだけ水増しするか10点
- 時系列に正しい分割10点
- リークのない手順10点
- リークの種類10点
- なぜシャッフルで得点が膨らむのか15点