分析していたら「ロジックの問題ではなかった」と気づいた話|スマホ×AIで進めるPython独学

前回は、作成したロジックを実際に使ってみる中で、当たる時と外れる時の差が大きいという違和感に直面しました。

(→ 分析していたらロジックの限界にぶつかった話

そして、ロジックを調整しても改善しないという状況から、

そもそも前提が間違っているのではないかと考えるようになりました。

違和感の共通点を探す

まずやったのは、外れたレースの共通点を探すことです。

これまで記録していたメモを見返していくと、いくつか気になる要素がありました。

・安定板が使用されている

・周回が短縮されている

・風が強い(追い風・向かい風)

最初はバラバラに見えていたこれらの要素ですが、特定の条件でまとめて発生していることに気づきました。

環境によってレースが変わる

これらの条件があるレースを改めて見ていくと、明らかに挙動が違うということが分かりました。

例えば、

・1マークで流れる

・攻め手が減る

・展開が単調になる

といった変化です。

つまり、同じロジックを使っても、別のゲームをしているような状態でした。

この時点で、ロジックの問題ではないと強く感じるようになりました。

発想の転換

ここで考え方を変えることにしました。

これまでは、条件を足して精度を上げようとしていたのですが、ここでの結論は逆でした。

条件を足すのではなく、適用範囲を絞るです。

つまり、そもそも使ってはいけないレースがあるという考え方です。

データの扱い方を変える

この考えをもとに、データ構造を見直すことにしました。

具体的には、

・race type(予選 / 一般)

・stable(安定板)

・short(周回短縮)

・wind(風情報)

といった情報を追加し、レースを“条件付きデータ”として扱うようにしました。

これによって、環境ごとに切り分けて分析できる状態になりました。

クリーンなデータで検証する

次に、条件を絞ったデータで再検証を行いました。

具体的には、予選 × 安定板なし × 周回短縮なしという形です。

この条件で集計してみると、明らかに挙動が安定するという結果になりました。

・的中率が上がる

・結果のブレが減る

これによって、環境を除外することの有効性を確認することができました。

見えてきた本質

ここまでの検証を通じて見えてきたのは、精度を上げるためには「追加」ではなく「削る」ことが重要ということでした。

・データを増やす

・条件を足す

のではなく、ノイズを除くという考え方です。

また、同じロジックでも適用する場所によって結果が変わるという点も重要でした。

考え方の変化

この期間で大きく変わったのは、考え方そのものでした。

Before:

→ ロジックをどう作るか

After:

→ ロジックをどこで使うか

この違いはかなり大きいと感じています。

今後の方針

ここまでの結果を踏まえて、まずは「予選 × 通常環境」に限定して検証するという方針にしました。

・一般レースは別枠で扱う

・環境が特殊なレースは除外

といった形です。

そして、条件を確定してからデータを広げるという流れで進めていく予定です。

コメント

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