分析していたらバックテストをするようになった話|スマホ×AIで進めるPython独学

これまで、選手データをもとにスコアを作り、ランキングとして並べるところまで進めてきました。

データをもとにした予想の形は、一通りできた状態です。

前回は、データ量の重要性に気づいたところまで書きました。

(→ 分析していたらデータ量の重要性に気づいた話

ただ、この段階で一つ気になることがありました。

このロジックは本当に使えるのか?

感覚的にはそれっぽく動いているものの、実際にどのくらい機能しているのかは分かりません。

そこで、過去データを使って検証してみることにしました。

バックテストとは

今回行ったのは、いわゆる「バックテスト」です。

簡単に言うと、

過去のデータを使って、作ったロジックの精度を確認すること

です。

実際の結果が分かっているデータに対して、自分のロジックを当てはめてみることで、

・どのくらい機能しているのか

・どんな傾向があるのか

を確認できます。

実際にやったこと

やったことはシンプルで、

・過去のレースデータを用意

・各選手にスコアを付ける

・スコア順にランキングを作る

・実際の着順と比較する

という流れです。

すでにスコアとランキングは作っていたので、それをそのまま検証に使いました。

結果:的中率は約33%

実際に検証してみた結果、

的中率は約33%

という結果になりました。

思っていたよりは機能している印象ですが、「これで十分」と言えるほどではありません。

ただ、ここで重要なのは単純な的中率だけではありませんでした。

スコアごとの違い

データを見ていく中で、スコアによって結果の安定感が違うことに気づきました。

例えば、

・スコアが高い選手 → 比較的安定している

・スコアが低い選手 → 結果がブレやすい

さらに、

スコア差が小さいレースは荒れやすい

という傾向も見えてきました。

この時点で、「すべてのレースを同じように扱うのは違う」という感覚が出てきました。

気づいたこと

今回のバックテストで一番大きかったのは、

“当てる”より“選別する”ことの重要性

でした。

・どのデータは信頼できるのか

・どのデータは注意が必要なのか

を判断する視点が必要だと感じました。

また、

スコア単体でもある程度の有効性はある

ただし、それだけでは足りない

ということも分かってきました。

まだ足りない

一通り検証してみて感じたのは、

「方向性は間違っていないけど、まだ粗い」

という状態です。

もう少し精度を上げるためには、

・どの要素が結果に影響しているのか

・どういう条件でズレが出るのか

をさらに深く見ていく必要があります。

次にやること

ここからは、ロジックの中身を分解していきます。

特に気になったのが、

スタート(ST)がどれくらい結果に影響しているのか

という点でした。

次回は、この部分をデータで検証していきます。

タイトルとURLをコピーしました