Hataraita.net

馬鹿なこととITと馬鹿なことと競馬と変な資格が好きです。でも馬鹿なことはもっと好きです。

競馬ハッカソンで前半戦終了。負け続けている原因と言い訳。

f:id:bananawoma:20170314144616j:plain

はてさて、前の記事でも書いた通り競馬ハッカソンに参戦中です。

まだまだ折り返し地点ですが、結果は決して芳しくありません。

8チーム中7位、四日連続的中なしという不名誉な記録を更新しております。

笑ってください。わーっはっはっは。わーっはっはっは。

京子ー!笑えー!口を開けろー!

 

ただ、外し続けるというのは逆にいいもので、開き直れるというものです。

このまま最後まで0%というのも面白いかなと思い始めております。

 

前半戦を振り返って

さて、前半戦の結果ですが、回収率35%、26R中1レース的中という面白結果を返しております。的中率は3.8%。一レース当り約10点買っているので馬券当たりの的中率は0.4%ほどでしょうか。

あまり芳しい結果ではありません。

お恥ずかしい限りです。

穴があったら、「穴あるよー!みんな気を付けてー!」と、慈善活動を始めたくなるような惨状です。

 

なんでこうなったのか

なんでこうなったのか、その原因についてですが、こうなるようなソフトだったと言わざるを得ません。決して悲観的な話ではなくなるべくしてなっているという事です。

このソフトは回収率を目標とするソフトとして開発した経緯もあり的中率を重視していません。そういう意味では何も不思議な結果ではありません。

しかし前半余りにもふがいなかったので逆にこのまま行くという決意ができました。

とりあえず、大会終了までは手を入れることもないので、私のソフトのロジックの概要を公開できる範囲で公開したいと思います。

 

ソフトの処理フロー

ソフトの処理フローに関しては何も特殊なところはありません。システムでも人間でも次の流れで予想すると思います。私のソフトもその流れに沿って予想しています。

  1. その週に出走する馬の能力を数値化する
  2. 各レースにおける馬の相対的な能力分布を検証する
  3. 買う馬券を選ぶ
  4. そのレースを買うか買わないか判断する

ごくごく一般的なフローです。もしかしたら3,4については逆の人もいるかもしれません。

 

1.その週に出走する馬の能力を数値化する

まず、馬の能力を数値化するところから始まります。私のロジックは様々なファクターを基にした重回帰分析なのでファクターとして何が大きいかはわからないのですが、ベースになっているのは走破タイムを数値化したスピード指数という指標です。

それを基に騎手や血統、枠順などを加味して発揮可能なスピード指数(以下PSP)を重回帰分析により算出するという手法をとっています。

ちなみに私は普段自分で予想するときはスピード指数は使いません。

では、なぜそのような方法をとっているかというと2の「相対的な能力分布の検証」と「買う馬券を選ぶ」につながってくるのですが、限られたファクターの中でロジックを単純化するには距離や馬場を無視して共通の指標にできるスピード指数が使いやすかったためです。

2.各レースにおける馬の相対的な能力分布を検証する

2番目に行っている処理は各レースにおける馬の相対的な能力分布の検証です。

PSPを基に、各馬の勝率、連対率、3着内率を算出し、どの馬がどれぐらいの確率で馬券に絡むかを計算しています。

ここがこのソフトの強みだと思っているのですが、レース内のPSPの分布と、各馬の勝率、連対率、3着内率の相関はそれぞれR2乗値で0.9以上と強い相関を示しています。

そのため、まあ多分大体PSP自体の出方は間違っていないのかなと考えています。

 

3.買う馬券を選ぶ

3番目に行っている処理は買う馬券を選ぶという処理です。ここがこのシステムの肝であり、逆に泣き所です。

2で計算した勝率等のデータとオッズを照らし合わせおいしい馬券をチョイスするシステムです。

馬券の発生確率と、オッズを見比べておいしいと判断したら買い目に入れますし、当たってもおいしくないと判断したら容赦なく買い目から外します。

ところで、私のシステム上、当たってもおいしくない馬券で決着する確率はどれぐらいだと思いますか?

容赦なく外しているのだから30%ぐらいだと思われるかもしれませんが、競馬はギャンブルです。胴元が儲けるようになっているため控除率というものが存在します。

さらに、おいしくない馬券というのを言い換えると過剰人気している馬券と言い換えることもできるため、的中率自体は高めの馬券が多いのです。

そのため、私のシステム上おいしくない馬券で決着するレースは全体の60%弱となっています。

泣き所といったのは上の理由です。そもそもこのソフトは的中率が40%を超えることはあり得ないのです。

恐るべし控除率です。

4.そのレースを買うか買わないかを判断する

そもそも60%のレースは当たらないソフトですからレース選びが何より重要です。

ただ、私のソフトはそこが弱いのです。この部分にリソースを投入したかったのですが大した仕組みになっていないのが現状です。

単純にオッズカットしている馬券の数が少ないものを選んでいます。

それでも大体10%強ぐらいの確率で的中馬券が出る計算になっています。

ただ、今回のハッカソンは一日5レースという指定があります。多くの対象レースの中からどのレースを選ぶのかが重要になってきます。

その時、考えるべきは的中率と回収額です。

的中率ベースの設定にした場合、計算上は上位500レースを対象で16%的中の回収率150%になります。

一方回収額ベースの設定にした場合、同様に上位500レースを対象に的中率5%回収率440%になります。

具体的に言うと月に1回5000%回収のレースがあり、季節に一回15000%回収のレースが出るような感じです。

 

回収額を選びました!

馬鹿な私は迷わず下を選びました。

その結果現在ブービーです。

さっき計算したのですが、このまま最後まで外し続ける確率は20%強です。全然あり得ます。

「当てに行かないソフト」というコンセプトで作ったこのソフトですが、このまま当たらず終わってしまったら、みんなで大笑いしてください。