PR

競馬予想ソフト概要

この記事は約8分で読めます。
スポンサーリンク
スポンサーリンク

初めに

題名の通り、競馬予想プログラムソフト開発をすべてPythonでやったろ!というものです。

前提

基本はPython(ver 3.10.5)を使って開発していきます。実際の完成イメージはWebアプリ形式を想定しています。できることとしては、データの収集~モデル作成~モデルの分析~競馬予想モデルの運用~モデル成績の確認あたりかなと

個人開発であり、しがないSE職であることから、結構なローペースで開発が進んでいきます。特にセカンドモデル以降の開発がカオスになるかと、、、

使ってみたいよって方がいらっしゃることを願って地道に開発進めて行きます。

ロードマップ

以下の順序で開発を進めて行きます。

  1. 競馬データの収集
  2. データ確認&簡易分析
    1. パート1:障害レースと不正レースとNoneデータの扱い
    2. パート2:タイム関連データの分析
    3. パート3:オッズの仕組み
  3. ファーストモデル開発
    1. パート1:ベース前処理の実装
    2. パート2:ファーストモデルの実装
    3. パート3:モデルの評価方法詳細
    4. パート4:モデル分析管理クラスの使い方サンプルコード
  4. データ分析基盤の開発
    1. パート1:Djangoプロジェクトの作成からメインページの作成まで
    2. パート2:モデルインポート機能のモデル+フォームの作成まで
    3. パート3:インポートフォーム画面のモーダル化+レスポンス表示の作成まで
    4. パート4:モデル一覧のリスト表示の作成まで
    5. パート5:モデル選択機能と分析画面ページの開発
    6. パート6:モデルの収支グラフをGoogle Chartで表示する機能
    7. パート7:モデルの回収率と的中率のテーブルをGoogle Chartsで表示する機能
    8. パート8:モデルの人気別ベット回数の円グラフ表示機能
    9. パート9:モデル情報一覧確認画面の開発
    10. パート10:オッズグラフスコアの確認画面の開発
  5. セカンドモデル以降の開発
    1. セカンドモデル作成編
      1. 24年分の競馬データで血統分析パート1
      2. 24年分の競馬データで血統分析パート2
          番外編: 血統から産駒の適正距離や馬場を知る方法
      3. 24年分の血統データで予想モデル作成
    2. サードモデル作成編
      1. 脚質を教師なし学習で分類しランク学習で予測する方法
      2. 脚質と持ちタイムからレース展開を予測
      3. 脚質と持ちタイムから上り3F最速馬の予測
      4. LightGBMで扱うカスタムObjectの実装
      5. 回収率重視の競馬AIの作成
    3. 深層学習×競馬AI開発編
      1. 【初学者対象】深層学習 超解説
      2. 【全解説】深層学習で必要なデータ前処理
      3. 深層学習でLightGBMの特徴量重要度的なものを出す方法
  6. モデル運用基盤の開発
  7. 競馬実践(予想動画公開予定)
スポンサーリンク

宣伝

Youtubeチャンネル

YouTubeしてます!YouTubeではゆっくり解説として、競馬予想ソフト開発の制作過程を投稿しています。

ゆっくりと作る競馬予想ソフト開発の再生リスト

競馬予想ソフトのソースコード

競馬予想ソフトのプログラムは誰でも使えるように公開しますが、一部は有料となっています。

以下のサービスでコードを販売していますので、自分も作ってみたい!という方がいらっしゃれば一緒に開発していきましょう!!

スポンサーリンク

開発の背景・目的

背景

かねてより、競馬予想を機械学習を用いてやってみたいと思っていましたが、幾度も手を出しては上手なモデルが出来ずに挫折を繰り返してきました。

しかし、一度やったら最後までやってみたいという思いがぬぐい切れず、、、

やるなら挫折しない形でやろうと、サイトの立ち上げからYouTubeチャンネルで解説動画の投稿まで行い、進捗や何をやったかなどを備忘録的に残していきます。

最終的には予想動画の投稿を目指したいと思っています。

目的

本ソフトでは、主に2つの機能を有したものを作ります。

  • モデル分析機能
  • モデル運用機能

モデル分析機能では、作成したモデルの性能を既存のモデルと比較できる機能になります。

競馬予想プログラムの開発を行ってきた人であれば、「自分が作ったこのモデルはなにがしたかったのか?」や「いろいろ特徴量やハイパーパラメータを変更したけど、今なにをしているのかわからない…」などの状態に陥ったことが一度でもあるかと思います。

そして、最終的には、どう頑張っても回収率が100%を超えず、開発を断念…という残念な結末を迎えた人も少なくないと思います。

そのため、本ソフトのモデル分析機能では、このような状態に陥らないために、自分が作ったモデルは何を目的として作ったのかどのような効果を期待して前回のモデルから改編したのかをしっかりと把握できることを目的としています。(みんなやってるのかもしれませんが…)

よって、モデル分析機能というのは、そのようなモデルの概要だったり、既存モデルとの比較ができるような機能を持つことを最低限目指します。

次に、モデル運用機能では、モデル分析を通して採用したものを使って競馬予想を行うものを想定しています。

良いモデルが出来れば、それを使って競馬予想してみたいのが普通の感覚だと思います。毎週推論するプログラムを手動で動かすのも面倒なので、WEBアプリとして作ってしまおうというのが目的です。

主に、Web画面上からボタンを押せば、対象レースの予想結果を表示してくれるものを作ります。

そもそも有用なモデルができないと、この機能を作るモチベが起きないため、ロードマップ1から5まで出来てから取り組もうと思います。

※ここで回収率100%を超える見込みがあると嬉しいですが、とりあえず運用機能までは作ります。

スポンサーリンク

競馬予想ソフトの設計

取り入れたい機能一覧

モデル分析画面機能一覧

基礎分析

モデルリストで選択したモデルから以下の情報を馬券別に参照できる

  • 回収率グラフ
  • 人気別ベット回数の表
  • 回収率、的中率の早見表

また、train, valid, testと3種類の結果で分かれていること

オッズグラフスコア

馬券別に以下を確認できること

  • モデルリストから複数のモデルを選択して、OGSの確認・比較ができる
  • モデルリストの選択では、ベースラインモデルと比較対象の複数モデルを選択できる

また、train, valid, testと3種類の結果で分かれていること

モデル管理画面機能一覧

モデルのインポート

モデル分析管理クラスからエクスポートしたモデル情報ファイルをインポートしてDBへ登録する。

以下の情報を入力してインポートする

  • モデル情報ファイル
  • モデル名
  • モデルの説明
  • メモ
モデルリスト

インポートしたモデルを一覧として参照でき、以下の機能を持つ

  • モデル情報の参照:モーダルかなにかでモデルの内容を確認できる
  • モデルの削除:削除ボタンからインポートしたモデルの削除ができる。DBからレコードを消す
  • モデルの更新:モデル情報ファイルに変更があった場合、再度インポートして情報の更新ができる
タイトルとURLをコピーしました