これまで、選手データをもとにスコアを作り、ランキングとして並べるところまで進めてきました。
データをもとにした予想の形は、一通りできた状態です。
前回は、データ量の重要性に気づいたところまで書きました。
ただ、この段階で一つ気になることがありました。
このロジックは本当に使えるのか?
感覚的にはそれっぽく動いているものの、実際にどのくらい機能しているのかは分かりません。
そこで、過去データを使って検証してみることにしました。
バックテストとは
今回行ったのは、いわゆる「バックテスト」です。
簡単に言うと、
過去のデータを使って、作ったロジックの精度を確認すること
です。
実際の結果が分かっているデータに対して、自分のロジックを当てはめてみることで、
・どのくらい機能しているのか
・どんな傾向があるのか
を確認できます。
実際にやったこと
やったことはシンプルで、
・過去のレースデータを用意
・各選手にスコアを付ける
・スコア順にランキングを作る
・実際の着順と比較する
という流れです。
すでにスコアとランキングは作っていたので、それをそのまま検証に使いました。
結果:的中率は約33%
実際に検証してみた結果、
的中率は約33%
という結果になりました。
思っていたよりは機能している印象ですが、「これで十分」と言えるほどではありません。
ただ、ここで重要なのは単純な的中率だけではありませんでした。
スコアごとの違い
データを見ていく中で、スコアによって結果の安定感が違うことに気づきました。
例えば、
・スコアが高い選手 → 比較的安定している
・スコアが低い選手 → 結果がブレやすい
さらに、
スコア差が小さいレースは荒れやすい
という傾向も見えてきました。
この時点で、「すべてのレースを同じように扱うのは違う」という感覚が出てきました。
気づいたこと
今回のバックテストで一番大きかったのは、
“当てる”より“選別する”ことの重要性
でした。
・どのデータは信頼できるのか
・どのデータは注意が必要なのか
を判断する視点が必要だと感じました。
また、
スコア単体でもある程度の有効性はある
ただし、それだけでは足りない
ということも分かってきました。
まだ足りない
一通り検証してみて感じたのは、
「方向性は間違っていないけど、まだ粗い」
という状態です。
もう少し精度を上げるためには、
・どの要素が結果に影響しているのか
・どういう条件でズレが出るのか
をさらに深く見ていく必要があります。
次にやること
ここからは、ロジックの中身を分解していきます。
特に気になったのが、
スタート(ST)がどれくらい結果に影響しているのか
という点でした。
次回は、この部分をデータで検証していきます。
