前回記事の概要編に引き続き、今回はデータ収集編。
データ分析はデータの準備が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 enabledelayedexpansionset /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!+1for /f “tokens=* skip=1” %%b in (%%i) do (
echo %%b>>result.csv
)
)
pause
取込
最後に取り込みですが、上記で別々に取ってきた各ファイルを紐づけて意味のあるデータにします。
先週の結果分析=出馬表&オッズ=成績
が全てイコールとなって結び付けてあげる感じです。
ここはプログラミングかExcelでやるなら関数が必要になります。
例えば、2022年有馬記念に固有のレース番号を持たせて、仮に001としたときに、
どのデータにも001を持たせてあげないと一意に特定できませんのでやってあげます。
取込作業からやっとプログラミングに入れるイメージですね。
ここまで到達すれば、後はデータをこねくり回すだけです。。。
コメント