南関AIの説明書

Q.これは何?

A.競馬好きでAI専攻の大学生が作った南関競馬の予測1AI(@nankan_AI)の説明書です。





概要

南関競馬でレースが行われる5分前2になるとそれぞれの馬の勝率を算出し、勝率上位5頭単勝の買い目をツイートします。
↓こんな感じ。


自分(人間側)が操作しなくても、5分前になるとデータ収集・予測・ツイートを全自動でやってくれるようにセットしてあるので、仮に今日自分が死んでもこの子は半永久的に予測し続けてくれます。




AIについて

2014年1月1日~2018年12月31日の南関競馬(大井・川崎・船橋・浦和)で行われた全てのレースデータをAIに学習させています。
どの手法を使ってどんなパラメータでAIに学習を行ってるかについてはここでは秘密です。(ごめんなさい...)
このAIを用いて、個々の馬に対し「強さ指数」なるものを算出しています。
そんでもって、各馬の「強さ指数」から「勝率」を算出→「勝率」と「オッズ」から「期待値」を算出→「期待値」から「買い目」を決定、みたいな感じですね。

2019年の南関レースで「強さ指数」1位の馬に賭けた場合の回収率は87.4%、「期待値」が1以上のもののみに絞って賭けた場合の回収率は120.1%を叩き出しています。
ただし、これはあくまでも2019年の例であって、2020年以降のレースでも通用するとは限らないので、この子の予測通りに賭ければ必ずもうけが出るわけではありません。損失が出ても責任は負えませんので、あくまでも参考程度にしてくださいね。

予測結果は随時Google Driveに保管しているので、それをうまく分析しながらさらに良いAIが作れるように日々改造しています...。



システムの流れ

ざっくりとしたシステムの流れはこんな感じ。

herokuというのは簡単に言えば、プログラムやWebアプリケーションを定期・常時実行させられる無料のサービスです。ここに全部のデータを置いてあります。
上画像にも書いてありますが、予測するレースのデータはkeiba.go.jpやnankankeiba.comではなく、楽天競馬のWebサイトの馬柱から全部引っこ抜いてきています。

ということで、一つのツイートをするのに裏でいろんなサービスを利用してます。
なので、herokuが突然有料化したり、楽天競馬の馬柱の表示方法が変わったりすると、その瞬間にうちのシステムは全部死にます...。




募集

色々募集しています。
・AIの名前募集
AIに名前を付けたいんですが、なかなかいい名前が思い浮かびません...。誰かこの子にかわいいorかっこいい名前をつけてください...。
・情報共有者募集
他の競馬AIを作っている人はどのような手法や計算方法で勝ち馬を決めているかがが知りたいので、教えていただきたいです...。教えていただいたら、もちろんこちらからもどのような手法を使っているか開示します。
・2013年以前の南関のオッズデータ募集
勝率算出のために過去レースに出走した馬(負け馬も)の単勝オッズデータが欲しいのですが、どこを探しても見つかりません...。見れる場所がありましたら教えてください...。よろしくおねがいします。




今後の改良点

ツイートを見てもらえばわかりますが4レースに1レースほど「買い」の馬が出てきません。
それは非常にもったいないため、回収率は下げずに手広く買えるように、勝率計算や期待値計算の部分を改造していきたいと思います。
あとは単勝以外の買い方にも対応できるようにしたいですね。
他には、競走除外馬を予測から除外してなかったのでそこもそのうち直したいと思います。





南関AIの歩み

2020年4月28日 開発開始。

2020年7月20日 ~ 7月24日 ver0.1稼働。
・予測勝率上位5頭をレース前にTwitterに投稿。
・半手動3
・予測対象レースは大井・川崎・船橋・浦和のみ。

ver0.1戦績
・本命単勝
的中率:24.1% [7 / 29レース]
回収率:60.3%
・1番人気以外を本命に挙げた場合の単勝
的中率:37.5% [3 / 8レース]
回収率:133.8%

2020年7月25日 ~ 8月1日 ver0.1.1稼働
・出走取消の馬がいると、予測がツイートされないバグを修正。
・予測ツイート時に発走時刻を併記。
・期待値を「うまみ度」として5段階で表示。

2020年9月29日 ~ 現在 ver0.2稼働中
・全自動化
・「うまみ度」表示の廃止。
・本命か対抗の単勝期待値が1を超えたものを「買い目」として投稿。(~ 12月23日)
・9割ほどのレースで単勝期待値が1を超えず、買い目なしとツイートされてしまい、TLを無駄に荒らしてしまうと判断した為、買い目投稿を停止(12月24日 〜)






  1. 競馬的には"予想"といいますがAI的には"予測"なのでAIが絡んだ文脈の時には"予測"の方で表記を統一しています。どっちでもいいんだけどね。

  2. 発走時刻が変更になった場合は前後±2~3分のズレがあります。

  3. 「予測実行」ボタンを毎レース前に手動で押してた。今考えると超馬鹿馬鹿しいね…。


(c) 2018 - 2020 POI All Rights Reserved.