競艇で試したこと


EIGHT
競艇で試したこと

競艇で実装した戦略を紹介します。

1着率を正規化

まず試したのはそれぞれの選手の1着率を全試合から計算してそれをその試合ごとに正規化する方法です。 期待値はオッズと確率の積で表せるので、確率を計算することで相対的にどの券が得なのかわかります。

この結果、確定オッズではそこそこの成績になりましたが、最終表示オッズでは全く上手く行きませんでした。

最終表示オッズの単回帰と重回帰

上の段階では確率自体それほど優れたものではありませんが、オッズの予測もまた改善の余地があるので最終表示オッズから確定オッズの予測に着手しました。

どのような分布になっているのか調べるために、散布図をプロットしたところある程度相関性がありそうだったので単回帰を選択しました。 これにより、最終表示オッズでのバックテストは少し改善されました。

ランク学習を実装

確率予測が単純なモデルで精度がそれほど良くないので、NNによるランク学習を実装しました。 ランク学習は順位を予測する手法なので、まさに競艇に合っていると思いました。

この結果、訓練データでは右肩上がりの優れたモデルが出来ましたが、テストデータでは右肩下がりのモデルが出来ました。 訓練データでは上手く行っているので、ロバスト性を高めようと頑張りましたが結局うまく行くことはありませんでした。

temperature Scalingを実装

ランク学習での出力はそのモデルの自信度であって確率ではないので、キャリブレーションの一手法であるtemperature Scalingを試しました。 結果はむしろ劣化しました。確定オッズでも右肩下がりになりました。

temperature scalingの記事はいくつか読みましたが、Tが固定値なのか、入力値ごとにTを変えるのかよくわかりませんでした。 後者で実装したが上手く行かないことがわかりました。

True Skillを実装

レーティングをすることで選手の強さを可視化できると考えてtrue skillを実装しました。これ自体は非常にすぐれた指標になったものの、未来の勝率を予測するものではないことが分かりました。 過去の勝率はレートから高精度で説明可能ですが、そのレートだからといって未来の勝率がそうなるわけではないということです。

各手法のパラメータ最適化

以上のそれぞれの手法に対して利益が最大化されるようにパラメータ最適化しました。


株式会社ファントムへのお問い合わせ

群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。




    Related Articles

    Other

    M1 ProチップのMacBook Proを新調したので開発環境・設定をメモ(git)

    M1 ProチップのMacBook Proを新調したので開発環境・設定をメモ(git) 14インチのMacBook Proを新調したので開発環境の設定をします。以前はPythonのバージョンやパッケージを管理するためにp […]

    Posted on by press
    Other

    コメント,タイプヒント, ドックストリングの追記とGitHubでのコンフリクト

    タイプヒント, コメント, ドックストリングの追記とGitHubでのコンフリクト コメントの記述方法と注意点 タイプヒントの記述方法と注意点 ドックストリングの記述方法と注意点 GitHubのコンフリクト発生時の対処法に […]

    Posted on by hayai017