見出し画像

自作!競馬予想支援システム 大公開!

こんにちは、ようへいです。

競馬で少しでも儲けようと本気で考えており、SE力をフルに発揮して予想するためのシステムを構築しました。

競馬予想AIから始まり、いつの間にかユーザーインタフェース(画面)を持つシステムにまで成長しました。

遡ると、レース結果の取り込みとAI予想だけのバッチシステム立ち上がりから3年半。
ユーザーインタフェース(画面)を実装し、運用を始めてから1年半。
今もなお、鋭意カイゼン中です。

システム名は「Esperanza」。
スペイン語で「希望」という意味です。
競馬で本気で儲けたい、プラス収支にしたいという「希望」から、このシステム名にしました。

そんな自分だけの完全オリジナルなシステムの概要を共有できれば、と思います。

開発の背景

自分はIT技術者であり、探求心だけは誰にも負けません。
2019年にAIがブームになり、自分のAI熱は急上昇。
そこから思いつきでAIを作ってみよう!
競馬を予想するAIを試してみよう!
ここからシステム開発が始まりました。

開発環境

開発環境はこちらにまとめています。
PythonとフレームワークFlaskがメインです。

システム概要

競馬予想支援システム概念図

バッチでレース結果を取り込み、画面機能からレース結果を検索したり、レース毎に騎手のレース結果のコメントやクッション値、レーティングを入力できます。

また、出馬表をバッチで取り込むことで、予想するレースの出馬情報やその競走馬の発走履歴、レース傾向の分析の分析、AIによる予想が行えます。

トップメニュー

大きく5つの機能

発走履歴検索

システムに登録されたレース結果を検索する機能。
検索されたレースは一覧表示され、レース毎の詳細画面が表示できます。
JRA公表のレーティングを入力する機能もあります。

競走馬成績詳細

照会したい競走馬を検索。
生涯の成績や競馬場毎の成績、距離ごとの成績の照会や、競馬場×距離の成績、競馬場×騎手の成績、騎手×距離の成績などのクロス集計も可能です。

発走結果統計

レース名を条件に検索することで、システムに登録された過去の結果を集計して表示します。
これにより、

  • 走破タイムの目安

  • 前走からの距離変化による成績

  • 脚質の有利・不利

  • 枠順の有利・不利

  • 斤量別の成績

  • 馬齢別の成績

  • 人気別の成績(つまり、荒れそうかどうか)

などの情報が一度に見えることで、傾向を掴むことができます。

次回発走情報照会

次のレースの出馬表です。
出馬表に、過去の実績を付け加えて表示しています。
予想用にExcelのダウンロードも可能です。
予想内容の入力も可能です。

クッション値登録

JRA公表のクッション値を入力する機能です。

発走結果検索

過去のレース結果を検索する機能。
レーティングの入力も可能。

検索条件
検索結果(レース毎、上位3頭を表示)
詳細画面(ヘッダ部)
詳細画面(明細部) そのレースの全競走馬を表示
レーティングを入力する

競走馬成績照会

照会したい競走馬の成績を表示する。

各種成績が参照可能
競馬場毎の成績も参照可能
視覚に訴える表現方法
出走したレースの履歴も表示

発走結果統計(レース分析)

過去のレース結果を集計して表示する。
分析項目が多く、あまりにも縦に長い画面なので一部を抜粋。

走破タイムやレーティング、ラップやペースの傾向分析
性別毎の成績
斤量毎の成績
馬齢毎の成績

次回発走情報照会

出馬表をもとに、過去の実績を付加して競走馬を一覧表示する。

ヘッダ部
競走馬毎の明細部
実績情報を視覚化

ダウンロードできるExcelイメージ

競走馬毎の成績集計
発走履歴
対戦表
自分の予想をまとめる表

こんな感じのファイルです。

予想入力

自分の予想内容を入力する。
Excelをシステムにアップロードし、反映することも可能。
(Excelでまとめた予想内容を、手入力する必要が無い)

クッション値登録

JRA公表のクッション値を入力。

JRAの公表値を転記します。

さいごに

情報量が多いため全てをお見せできませんが、こんな感じのシステムを作りました。

Pythonは、こちらの本で一通り基礎は抑えました。
作っててわからないことはインターネットで。
集中的に一から学びたかったので本を買いました。

予想家や熟練の方からすると、「フン」っと鼻で笑われる内容かもしれません。
それでも、自分はまだこれから上達していきたいという駆け出しのところですので、温かいアドバイスを頂ければ幸いです。


この記事が気に入ったらサポートをしてみませんか?