これまで、選手別データベースを作り、そこからスコアを計算し、ランキングとして並べるところまで進めてきました。
データをもとにした予想の形は、一通りできた状態です。
前回は、スコアを並び替えることで順位を出し、予想の形に近づいてきたところまでを書きました。
ここまで来たとき、正直「ある程度使えるのでは」と感じていました。
ただ、実際に使ってみると、少し違和感が出てきました。
予想の形はできたけど、安定しない
スコアを使って順位を出すことで、「この順番になりそう」という形は見えるようになりました。
ただ、実際の結果と見比べていくと、
・うまく当たるレースもある
・全く合わないレースもある
といったように、結果にばらつきがあることに気づきました。
一見するとロジック自体は間違っていないように見えるのに、安定して機能しているとは言えない状態です。
なぜ安定しないのか考えた
この違和感の原因を考える中で、最初はロジックの問題を疑いました。
・重み付けが悪いのか
・指標の選び方が悪いのか
といった方向で見直そうとしましたが、根本的な問題は別のところにありました。
それが、「データ量」です。
データが少ないと数値がブレる
選手別データベースを見返してみると、データ数が少ない選手では、
・1着率が0%
・1着率が100%
といった極端な数値になっていることがありました。
これは実力を正しく表しているというよりも、単純にサンプル数が少ないことによる偏りです。
実際に、5節・10節・20節とデータ量を増やしていくと、
・数値のばらつきが減る
・極端な値が減る
・全体的に安定する
という変化がありました。
この時点で、「ロジックの問題ではなく、データ量の問題だった」ということがはっきりしてきました。
データが増えると見え方が変わる
データ量が増えることで、単に数値が安定するだけでなく、見える景色も変わってきました。
例えば、
・コースごとの傾向がより明確になる
・条件ごとの差が見えるようになる
・再現性のあるパターンが浮かび上がる
といった変化です。
少ないデータでは「たまたま」に見えていたものが、データが増えることで「傾向」として捉えられるようになってきました。
ここでようやく、「データを使った分析」をしている実感が出てきました。
フェーズが変わった
ここまでの流れを振り返ると、
・データを集める
・分析する
・ロジックを作る
・ランキングを作る
という一連の流れは完成しています。
ただ、今回の気づきで、ここがゴールではないことが分かりました。
これまでは「作るフェーズ」でしたが、ここからは
・データを増やす
・検証する
・精度を上げる
という「改善フェーズ」に入っていきます。
スマホだけでもここまでできた
ここまでの一連の流れは、すべてスマホだけで進めてきました。
・Pythonistaでコードを実行
・Googleスプレッドシートでデータを管理
・ネットから手動でデータを収集
この環境でも、データベースの構築からスコア算出、ランキング生成、そして検証の入り口まで進めることができています。
正直、ここまでできるとは最初は思っていませんでしたが、やり方を工夫すればスマホだけでも十分に分析は可能だと感じています。
このあたりの具体的なやり方については、別の記事でまとめていく予定です。
Pythonを学んでみて感じたこと
ここまで進めてきて、改めて感じているのは、「Pythonを学んでよかった」ということです。
特に大きいと感じたのは、データ処理の効率です。
これまではExcelでデータを扱うことが多かったのですが、Pythonを使うようになってからは、一度コードを書いてしまえば、あとはデータ(CSV)を更新するだけで同じ処理を何度でも再現できるようになりました。
例えば、
・データを読み込む
・集計する
・スコアを計算する
・ランキングを作る
といった一連の流れを、ボタン一つで実行できるようになります。
もちろん、Excelでもマクロを使えば似たことはできますが、Pythonの場合は処理の流れをそのままコードとして管理できるため、後からの修正や検証がしやすいと感じています。
特にバックテストのような検証では、この違いが大きく、条件を変えて何度も試すといった作業がかなり楽になりました。
Excelだと、セルの指定やシート構成を意識しながら調整する必要がありますが、Pythonでは処理そのものを組み立てることができるため、試行錯誤のスピードが上がります。
最初は文法を覚えるのに苦労しましたが、実際に使い始めてみると、「作業を自動化するための道具」としてかなり便利だと感じています。
ここから先に進むために
今回の気づきで一番大きかったのは、「当てる」ことよりも「選別する」ことの重要性でした。
データを使うことで、
・狙えるレース
・避けるべきレース
を判断できるようになってきています。
ここからは、さらにデータを増やしながら、
・どの条件なら信頼できるのか
・どこでリスクが高くなるのか
といった部分を、検証しながら詰めていく段階に入ります。
まだ完成ではありませんが、「感覚でやっていた予想を、データとして再現し、検証できる状態」までは到達しました。
ここからは、その精度を削り出していくフェーズに進んでいきます。
ここからは、さらにデータを増やしながら検証を重ね、精度を高めていくフェーズに入っていきます。
