今回のテーマ

今回は競馬データを使って、基本的な計算をいくつか試してみたいと思います。

スペック、ツール等はこちら

スペック概要

  • cpu: core i7-4770
  • メモリ:20GB

 

データ・ツール等

  • EXCEL (Microsoft 365)
  • ACCESS (Microsoft 365)
  • JRA-VAN Datalab.
  • TARGET frontier JV
  • Google Colab Pro (python 3.7.12)

 

データの取り込み

JRA-VAN Datalab. からいったん TARGET frontier JV に取り込んだものを CSV で出力します。

今回は簡単な計算をさせるだけなので、データは少量でいいでしょう。

サンプルは

2022.3.13(日) 2回中京2日目

11R 第58回 金鯱賞 芝2000m 馬場状態:良

のレース結果を使用します。

 

TARGET frontier JV

 

 

CSV

 

 

 

この CSV を pandas で読み込みます。

 

1.colab へ CSVファイルをアップロード

2.下記のコードで確認

 

3.結果

 

 

 

取り込み自体はうまくいきましたが正直ちょっと見づらい…

 

そこで print を外してみます。

 

 

結果

これで見やすくなりました。

 

表の定義の再確認

まず初歩的なことの確認。

表形式で使われる「行」と「列」について。ときどき「どちらが縦向き?横向き?」と迷うことがあります。

今回の競馬データに関しては

「行」は横のならび:青のところから横へ「0の行」「1の行」…

「列」は縦のならび:赤のところから縦へ「馬番の列」「人気の列」…

と覚えましょう。

 

上記の表でいうと

「0の行」→

3,1,ジャックドール 1.57.2 …

「馬名の列」↓

ジャックドール、レイパパレ、アカイイト、 …

 

となります。

競馬に詳しくない方のための用語の意味

「上がり3F」って何のこと?

と思った方は↓

表示する

馬番:競馬場のインコース側を1番としてレースに出場する馬に番号を振っています。馬券はこの馬番で投票することになります。

 

人気:馬券を投票する人全体が「この馬が勝ちそう」と思った順位、と考えればいいと思います。

タイム(タイムS):レースが行われた際の所要時間の記録。タイムは分秒表示、タイムSは秒表示、としています。

上がり3F:レースのコースのある地点からゴールまでの距離のことを「上がり」といいます。競馬で距離を表す単位でF(ハロン、1F=約200m)が使われます。「上がり3F」というのは、競馬場のコースのうちゴール手前約600mからゴールまでの距離のことです。この表では所要時間を記載しています。正確には「上がり3Fタイム」というべきところですが、「上がり3F」だけでタイムのことをいっている、と考えてOKです。

なぜゴール前600m地点なのか?

理由はよくわかりません。

各競走馬の通過のタイムが記録される地点は、スタート、上がり3F地点、ゴールとなります。

小倉競馬場を例にします。矢印の地点が「上がり3F」地点です。(ゴール手前約600m)ここの地点からゴールまでの所要時間が「上がり3Fタイム」です。(通常「上がり3F○○秒」という言い方をします)

 

 

 




基本的な特徴量の計算

機械学習はいろいろ複雑な計算をすることになります。そのためにまずは初歩的な計算をさせてみることにします。

 

平均

今回のデータの中で平均の計算ができる項目は、タイム(タイムS)、上がり3Fになります。

タイムSの平均を出してみましょう。

まず、タイムSの列だけ抽出してみます。

 

結果

抽出できました。

続いて平均を計算します。

平均値は「118.1」となりました。

 

標準偏差

データのばらつき具合を調べます。標準偏差が「0」であれば、データはすべて同じ数値を意味します。ばらつき具合が大きくなれば数値も大きくなります。偏差値の計算に必要。

結果

 

偏差値

平均値と標準偏差がわかれば偏差値が出せます。

公式:「(自分の数値-平均値)÷標準偏差×10+50」

ただ、今回のデータの場合、時間の記録なので数値が少ないほうが優秀となります。

というわけで

平均値 -自分の数値)÷標準偏差×10 +50」

とします。

 

結果

こうなりました。競馬のレース結果としては1着と2着のタイム差は「0.4秒」ですが、このレース限定の偏差値は差が約「9.2」となりました。

 

一括で表示

ちょっと手間をかけて計算させてみましたが一括で計算させることもできます。

 

 

表示の意味

count:データの個数

mean:平均値

std:標準偏差

min:最小値

25%:下位から25%の値

50%:中央値

75%:下位から75%の値

max:最大値

 

データ全体の基本統計量を確認するときに使うといいでしょう。

 

まとめ

今回できたこと。

  • CSVはファイルの読み込み
  • 基本統計量の計算(平均、標準偏差)
  • 偏差値の計算

こんなところです。

では、次回まで。