0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

競馬予想をPytorchのディープラーニングでやってみた_続編

Last updated at Posted at 2024-10-26

概要

詳しくは前回の記事(https://qiita.com/kai_sana/private/673915b8e88599a407b4)
をお読みください

前回のモデルの問題点

競馬には'着差'という概念がある。
前の馬、もしくは勝ち馬とその馬が何メートル離れているかを評価する指標だ。
競馬の世界では馬一頭分の長さを'1馬身'といい、〇馬身で表す(〇には分数が入る事もある)。

競馬では接戦の決着となることも多くある。
JRAのタイム測定法では1/100秒までしか図れないため、着差がそれ以下となる事も多くある。

そのため、既存のタイムを推定する手法では、そこまでの差を推定できない。

また、それだけでなく、タイムへの影響が最も大きいのは距離だ。
競馬場、距離ごとの基準タイムのようなものを出している場合、すでに実績のあるタイム指数を使う方がよいのであって、機械学習を使うメリットが薄い。

変更点

目的変数を以下の式の計算結果に変更する。

 \frac{タイム(s)}{距離(m)}\times10

10倍する理由として、この全データの内99%以上が少数第二位になってしまい、sigmoid系の活性化関数で扱いづらくなってしまう為。

なお、実際にタイムを求める際はこの計算結果に距離の1/10を掛ける。

機械学習モデル

前回と違い、教師データは全て0~1.0の区間にある。
しかし、教師データの99%以上が0.5~0.7の間に収まっているため、それ以外の値は0.4もしくは0.8にスケーリングする。

そして、ニューラルネットワークの構造を単純化させる事にも成功した。
269→100→50→1
なお、最初の層の活性化関数はsigmoid、最後(50→1)の活性化関数は

 0.2\times\frac{1}{1+exp(-5(x-0.5))}+0.5

とした。
それ以外の活性化関数は全てreluとした。
なお、損失関数、最適化手法、学習率は前回と変わらない。

学習結果

学習曲線を以下に示す。

ver8.0.0.png

また横軸を推定値、縦軸を教師データとしたグラフを次に描く

ver8.0.0_2.png

この時の相関係数は0.85程度になり、うまく推定できている事が分かる。

また、目的変数と説明変数の関係を表したグラフを以下に示す。

ダウンロード.png

これはレース間隔とタイムのグラフで、非線形な関係だと分かる。
だがこれはタイムとの比較の為、距離を考えると、レース間隔が伸びるほどタイムが速くなっている事が分かる。

ダウンロード (2).png

これは年齢とタイムを表している。
距離に関して同様の事を考えると、地方競馬では能力のピークは早い馬で三歳、そうでなくても四歳時にはピークに達し、九歳以降は落ちていく事が分かる。

ダウンロード (3).png

これは横軸距離、縦軸タイムのグラフである。
やはりタイムと距離は比例する傾向にあると言える。

ダウンロード (4).png

最後に、ラスト3ハロン(600m)のタイムと走破タイムを比較したものだ。
同様に距離を考えると、緩やかではあるが、ラスト3ハロンのタイムと走破タイムは相関関係があると言える。

ダウンロード (1).png

最後に、x軸が前走の目的変数の計算結果、y軸が2走前の目的変数の計算結果、z軸が今走の目的変数の計算結果のグラフを示す。
時折大きく調子を変えている馬がいるが、ほとんどの馬は一定のタイムで能力が変動している事が分かる。

実用

前回と同様に、6日間同条件で馬券を買って検証したが、回収率はほぼ同じだった。
6日間、72レース程度では十分な検証量ではないといえる。

コード

前回のコードのニューラルネットワークの構造を少し変更しただけのため、なし

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?