競艇AI開発日記 第23話|「イン逃げ不利」の仮説をデータで検証してみました

第22話では、スリットから「イン逃げが有利なのか、不利なのか」をAIに判断させるために、まず自分なりの判定ルールを考えました。

今回は、そのルールを実際の過去データに当ててみます。

考えた条件が、本当にレース結果と関係しているのか。

ここを確認してみることにしました。

考えた「イン逃げ不利」の条件を過去データに当ててみる

今回使ったのは、これまで集めてきた過去のレースデータです。

第22話で考えたルールは、簡単に言えば、

外側の艇が、内側の艇をまとめて上回り、さらに1号艇にも並ぶか、それより速い

という状態になったら、「イン逃げ不利」と判定するというものです。

具体的には、2号艇〜6号艇を「外艇」として考えます。

例えば4号艇なら、4号艇より内側にいる2号艇・3号艇をそれぞれ0.05秒以上上回り、さらに1号艇にも同等以上のスタートをしている場合です。

この条件を満たす外艇が1艇でもいれば、

イン逃げ不利

とすることにしました。

もちろん、これはまだ仮説です。

まずは、このルールで分類したレースに何か傾向が出るのかを見てみます。

まずは「攻められる外艇の数」を見てみる

最初に確認したのは、イン逃げを攻められる条件を満たした外艇が何艇いたかです。

結果は、かなり分かりやすいものになりました。

攻められる外艇レース数1号艇1着率
0艇44168.93%
1艇62747.37%
2艇14127.66%
3艇147.14%
4艇10%

外艇が0艇だった場合、1号艇の1着率は約69%。

それに対して、攻められる外艇が1艇いると約47%。

さらに2艇になると約28%まで下がりました。

3艇になると、1号艇の1着率は約7%。

もちろん、3艇以上のケースはレース数自体が少ないので、その数字をそのまま信じることはできません。

それでも、

「1号艇を攻められる外艇が増えるほど、1号艇の1着率が下がる」

という傾向は確認できました。

これは、自分が考えた判定ルールを検証するうえで、かなり興味深い結果でした。

「有利」と「不利」で分けてみる

次に、今回のルールでレースを2つに分けました。

今回確認した1,224レースのうち、STが揃っていて判定できたのは1,189レースでした。

そのうち、

  • 外艇が条件を満たさない → イン逃げ有利
  • 外艇が1艇以上条件を満たす → イン逃げ不利

と分類しました。

イン逃げ有利

405レース

1号艇1着:

290レース

1着率:

71.60%

イン逃げ不利

784レース

1号艇1着:

337レース

1着率:

42.98%

単純に比較すると、

71.60% − 42.98% = 28.62ポイント

の差がありました。

これは、自分が思っていたよりも大きな差でした。

ただし、「不利=1号艇が負ける」ではない

ここは、かなり重要だと思っています。

「イン逃げ不利」と判定した784レースのうち、1号艇が1着になったレースは337レースあります。

つまり、

イン逃げ不利と判定されても、1号艇が勝つケースはかなりあります。

約43%です。

そのため、

「イン逃げ不利と判定されたら1号艇は負ける」

という意味ではありません。

今回確認したかったのは、

「イン逃げ有利」と「イン逃げ不利」で、1号艇の1着率に違いが出るか

ということでした。

その点では、ある程度はっきりした差が確認できました。

0.05秒という基準は本当に適切なのか?

もう一つ気になったのが、第22話で設定した0.05秒という数字です。

この数字を変えたら結果はどうなるのか。

そこで、

0.03秒、0.04秒、0.05秒、0.06秒、0.07秒、0.08秒

と基準を変えて比較してみました。

結果は以下のようになりました。

基準有利側1着率不利側1着率
0.03秒70.93%46.23%24.69pt
0.04秒71.31%44.24%27.07pt
0.05秒71.60%42.98%28.62pt
0.06秒69.16%42.59%26.58pt
0.07秒67.19%41.80%25.39pt
0.08秒65.43%42.13%23.30pt

今回調べた範囲では、0.05秒のときに有利・不利の差が最も大きくなりました。

そのため、現時点では0.05秒をそのまま使ってみることにしました。

ただ、ここも「0.05秒が正解だった」とまでは考えていません。

今回のデータで差が大きかった、というところまでです。

今後データが増えれば、結果が変わる可能性もあります。

「1号艇より速い」という条件も確認してみる

もう一つ確認したかったのが、

「外艇が内側の艇をまとめて上回る」だけでいいのか?

という点です。

もし外艇が2〜5号艇などを上回っていても、1号艇より遅ければ、本当にイン逃げ不利と言えるのか。

そこで、この条件を外して比較してみました。

すると、

  • 外艇が他の内側艇を0.05秒以上上回るだけ → 1号艇1着率 52.73%
  • さらに1号艇以上のスタート → 1号艇1着率 42.98%

となりました。

また、

他の内側艇には勝っているけれど、1号艇には負けているケース

では、1号艇の1着率は**71.60%**でした。

この結果を見ると、

外艇が他の艇を上回っているだけでは足りない。

1号艇に対しても同等以上であることが重要なのではないか。

という考え方には、ある程度納得できました。

今回の検証で分かったこと

今回、過去データにルールを当ててみたことで、少なくとも一つ確認できました。

自分が考えた、

「外艇が複数の内側艇を上回り、さらに1号艇にも並ぶ・上回る」

という状態を「イン逃げ不利」とする考え方は、実際の1号艇1着率ともある程度対応していました。

特に、

  • 攻められる外艇が0艇 → 1号艇1着率 約69%
  • 1艇 → 約47%
  • 2艇 → 約28%

と、攻められる外艇が増えるほど1号艇1着率が下がっていました。

そして、「有利・不利」の2分類でも、

71.60% vs 42.98%

という差が出ました。

この結果を見て、自分としては、

「この考え方をAIに教えるためのラベルとして、一度使ってみてもよさそう」

と感じています。

それでも、まだ「正解」とは決めない

一方で、ここで「ラベルが完成した」とするのは早いと思っています。

今回確認したのは、あくまで、

自分で考えたルールによって分類した結果と、実際の1号艇1着率に差があった

ということです。

「イン逃げ不利」という状態そのものを直接観測しているわけではありません。

また、0.05秒という基準も、今回のデータでは良い結果になりましたが、今後も同じとは限りません。

さらに、「不利」と判定されたレースでも、1号艇が約43%勝っています。

なので、

このラベルが正解なのか?

という問いについては、まだ答えを出していません。

今の段階では、

「AIに学習させるための仮の正解として、検証を続ける価値はありそう」

というところです。

次は「このラベルをどう予測するか」

ここまでで、AIに教えるための「正解」の候補を、ひとまず作ることができました。

次に考える必要があるのは、

「では、レース前の情報だけを使って、この有利・不利をどう予測するのか?」

ということです。

実際のレースが始まってから分かるスタートタイミングを使えば、今回の判定はできます。

でも、それでは予測になりません。

レース前に分かっている過去の選手データから、

「この6艇の組み合わせなら、イン逃げ有利になりそう」

「今回はイン逃げ不利になりそう」

と判断できるようにする必要があります。

次は、ここを考えていくことにしました。

あわせて読みたい

競艇AI開発日記

競艇AI開発日記 第22話|「イン逃げ有利・不利」をどう定義する? スリットから考えてみる

競艇AI開発日記一覧

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