【機械学習で競馬予想⑦】機械学習で導き出された勝率を分析して儲かるのかを検証してみた
機械学習で勝つ確率を予測してみた
AzureMLから出力されるのは馬ごとに勝つ確率が出る。
2019年芝1200メートルを走った馬について、のべ3800頭についてそれぞれ勝つ確率は〇〇%って出力される。
そのまま集計しても良かったんだけど、競馬はオッズで考えるのがしっくりくるので、予想オッズを勝率から逆算して出している。
例えば機械学習で勝率50%と出たら、1/0.5*0.8=1.6倍と出している。
オッズとの比較すると雰囲気使えるかなと思っている。
予想オッズ | 出走頭数 | 勝ち数 |
1~2倍 | 4 | 3 |
2~3倍 | 47 | 16 |
3~5倍 | 264 | 62 |
5~10倍 | 632 | 81 |
10~20倍 | 649 | 49 |
20~50倍 | 760 | 31 |
50~1000倍 | 1353 | 22 |
それ以上 | 97 | 0 |
機械学習で予測された勝ちそうな馬をそのまま買う
予想オッズの平均値を書いておくんだったと思いつつ、回収率と的中率を出してみた。
1倍台の予想が少なく4件中3件だったので回収率が高くてもたまたまだと思われる。
2〜3倍も47件しかないのでブレ幅が大きそうだけど、まあ参考程度には使えそうな感じだった。
ただ回収率が100%を超えていないのでこのモデルでは競馬で儲けるのは不可能ということが分かった。
予想オッズ | 回収率 | 的中率 |
1~2倍 | 285.0% | 75.0% |
2~3倍 | 98.9% | 34.0% |
3~5倍 | 72.2% | 23.5% |
5~10倍 | 73.2% | 12.8% |
10~20倍 | 80.7% | 7.6% |
20~50倍 | 77.3% | 4.1% |
50~1000倍 | 86.2% | 1.6% |
全体 | 0.0% | 0.0% |
オッズ>予想オッズだけを買ったとき
オッズと言うのは参加者が思う勝率と同義なので、機械学習で予想したオッズよりも高ければお得ということでお得と予想された馬だけ買ったとしたらどうなるかと分析してみた。
例えば機械学習では50%勝つと出ているのに実際のオッズが10倍だったらお得な状態としている。
そういうお得な状態は全体の3割程度起きていた。
出走頭数 | 勝ち数 | |
お得 | 1111 | 59 |
お得ではない | 2695 | 205 |
お得な状態はホントにお得だったのか
回収率を求めると全然お得ではなくてむしろ逆転していた。
機械学習を使って競馬で儲けるためにはこの実際のオッズとの乖離をいかに見つけるかだと思っているんだけど、難しそうだ。
オッズ | 回収率 | 的中率 |
お得 | 69.7% | 5.3% |
お得ではない | 82.2% | 7.6% |
まとめ
高確率で勝ちそうと予想した部分に関しては若干回収率が高くなって意味がありそうなモデルだけど、中間層は全然当たっていない。
また勝たないと予想した馬は逆に勝つことがあり、ランダムにかけるよりも少しマシな回収率になった。
azureMLはずっと前に解約したのでこれ以上の分析はできないけど、次はgoogleのBigQUERYを使ってデータの可視化から機械学習までやってみたいと思っている。
過去記事
オマケ
シルクホースクラブで出資しているピクシーナイトは入厩もして、7月の新馬戦に向けて調教を進めていたけど、腫れが出てしまって治療に専念するため次相が未定になりました。
残念だけどあまりひどい怪我ではなさそうなのでゆっくり進めてもらいたい。