工学系大学院生のブログ

2人の大学院生による雑記ブログ

第3-1回 競馬予測の自動化[python]



第3回では、これまで作成してきた競馬予測システムを自動化し、出走10分前になったら、メールで予測結果を送るシステムを構築します。


また、新たな賭け方での予測精度についても記載していきます。

使用したプログラムは下記Githubに挙げています。

https://github.com/hide-dog/horse_racing_automation




これまでと今後の記事は下記にあります。これまでの機械学習モデル等を使用します。

第1回 競馬予想プログラムを作りたい
第2-1回 オッズの見積方法(競馬予想)
第2-2回 様々な賭け方の予測精度
第3-1回 競馬予測の自動化 (ここ)
第3-2回 様々な賭け方の予測精度 2(競馬予想)
機械学習による競馬予測ツール (ツールを無料公開しています)




構築までの大まかな流れとしては下記の通りです。

1 当日のレース開始時刻の取得とプログラムの実行予約
2 データ取得と機械学習による予測
3 予測結果のメール送信
4 後処理と補足


1 当日のレース開始時刻の取得とプログラムの実行予約

まず、基本的に競馬は土日に行われるため、今回は土日にのみ動くようにしました。(祝日に行われるケースも取得したい場合は、毎日実行すれば問題ありません)


そのため、土曜日の09:30と日曜日の09:30になったら、当日の試合状況を取得します。

実行プログラム:main.py


scheduleというライブラリを使用することで予約実行することができます。




ネット競馬様のページにアクセスし、当日の競馬が行われる場所と各レースの発走時刻を得たら、その情報を元に発送10分前に動作するようプログラムを予約します。

ジョブ予約:job.py

当日の発走時刻取得:get_info_scraping.py



2 データ取得と機械学習による予測


さあ、発走10分前になりました。
そうしましたら、データの取得と機械学習を始まります。

当日の馬データ取得:scraping_today.py

機械学習用の前処理:pre_today.py

機械学習による予測:hr_macine_learning_today.py


このあたりは第1回、第2回で実施した内容を自動化用にまとめました。



3 予測結果のメール送信


ここまでで機械学習による予測を行いました。
この結果をそのままメールで送信します。

python を用いることでe-mailを自動送信することができます。
詳しい方法はこちらを参考にさせていただきました。

メール送信:send_email_today.py


プログラムにエラーが生じた際に送信されるメールも設定しましょう。


4 後処理と補足


これにより、機械学習による競馬の自動予測が完了しました。

ただし、今後のために当日の結果がどうだったか、最終的なオッズがどうだったか取得します。

結果取得:scraping_result.py

オッズ取得:scraping_odds.py


また、プログラムを改変しやすいようにパラメータを外側に出しておきます。

パラメータ:param.py



あとは、メールが来たら購入すればよいわけです。

購入までを自動化する勇気はなかったので、とりあえずはメール送信まで。



さて、メールで予測結果がくるようにしましたが、第2回でお話した賭け方では賭けるだけ損をすると考えられます。

次回は、予測結果に対しどのように賭ければ儲けが期待できるか記載します。
回収率が100%を超える方法もありました.




ここまで読んでくださり、ありがとうございます。

仕事ください~

hide

このエントリーをはてなブックマークに追加

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です