【競馬データ分析】ExcelVBAとAccessDBを使って独自の指数を構築する- PERT 2 データ収集編-

競馬_VBA

前回記事の概要編に引き続き、今回はデータ収集編。

 

データ分析はデータの準備が8割

データ収集は地獄です。

収集したいデータを淡々と機械的に集める作業となります。

一説によるとデータ分析の工程のうちデータを集める段階に7,8割くらいかかるみたいです。

逆にいうとこれさえやってしまえば後が楽になります。

データ収集にかかる時間は、取得したいデータの数が多ければ多いほど大変です。

今回は時間の関係もあり、過去3年分のデータを収集することにしました。

過去の経験から、あまりデータが古すぎても参考にならないと感じていたので、3年くらいが妥当かなと思います。

 

収集⇒加工⇒取込

データ収集は細かくわけると3段階になります。

収集

データを単純に拾ってくる作業となります。

収集編が1番大変なので20時間くらいは必要。

webスクレイピングなどいろいろやり方はありますが、今回使ったのは次のとおり。

①グリーンチャンネルの先週の結果分析データ

先週の結果分析 | Victory Road (ittai.net)を使わせてもらっています。一つ一つテキストに出力(一括でまとめてあると助かります・・・)

TARGET frontier JVより開催タイム分析

⇒以下から取得。1年ごとにあるので3個のファイル取得でOK

TARGET frontier JVより出馬表&オッズ

⇒以下の画面から開催を切り替えて手動で出力。

TARGET frontier JVより成績表

⇒以下の画面から開催を切り替えて手動で出力。

TARGET frontier JVより1レースごとの詳細成績

⇒以下の画面から開催を切り替えて手動で出力。ここが地獄です。

なぜかというと1レースごとにデータを取る必要があるため、1年間約3000レース×3年=9000レース必要だから…。

加工

収集してきたデータがそのまま使えるとは限らないので、使える形式に加工してあげます。

例えば、「TARGET frontier JVより1レースごとの詳細成績」で取ってきたCSVファイルを開催ごとに1個にまとめてあげる作業です。

以下の1~12が個別に取ってきたもので、最後に「CSV結合.bat」を叩いてresult.csvとしてまとめています。

batの中身は他サイトから丸パクリしたもので、ただCSVファイルを結合しているだけです。

1ファイル目だけヘッダー出力ありで2ファイル目以降はヘッダーが取り除かれるので汎用性あって便利です。ソースも貼っておきます。何も考えず使えます。

@echo off
setlocal enabledelayedexpansion

set /a counter=0

for /f %%i in (‘dir /b *.csv’) do (

echo %%i
if !counter!==0 (
set /p _head=<%%i
echo !_head!>>result.csv
)
set /a counter=!counter!+1

for /f “tokens=* skip=1” %%b in (%%i) do (
echo %%b>>result.csv
)
)
pause

出典:複数のcsvファイルを結合するバッチ(1個目のファイル以外は1行目を削除) – Qiita

取込

最後に取り込みですが、上記で別々に取ってきた各ファイルを紐づけて意味のあるデータにします。

先週の結果分析=出馬表&オッズ=成績

が全てイコールとなって結び付けてあげる感じです。

ここはプログラミングかExcelでやるなら関数が必要になります。

例えば、2022年有馬記念に固有のレース番号を持たせて、仮に001としたときに、

どのデータにも001を持たせてあげないと一意に特定できませんのでやってあげます。

取込作業からやっとプログラミングに入れるイメージですね。

ここまで到達すれば、後はデータをこねくり回すだけです。。。

コメント

タイトルとURLをコピーしました