第3回の記事では競馬のデータ解析をするために必要なデータ収集の選択肢とその特徴について書いていきます。
データ元の重要性
データ解析をする上で対象となるデータは全ての根幹です。
データ提供サービスによって扱っているデータの種類や更新タイミング、信頼性は異なります。どんなに優秀なアルゴリズムを作ったとしても、無い情報からは何も予測できないですし、間違った情報からは間違った答えしか導けません。
また適しているデータ取得先は、その人の実現したい目的によって変わります。遊びでデータ解析したい人ならばなるべく手軽で最低限のデータが取得できる方法を選ぶべきですし、本格的に毎週運用していきたいのであれば多少手間がかかる方法だとしてもデータの種類が豊富なデータ元を選ぶべきでしょう。
今回はデータ取得先として「JRA-VAN DataLab.」「netkeiba.com」「JRDB」の3サービスを紹介します。
JRA-VAN DataLab.
DataLab.はJRAシステムサービス株式会社が運営するJRA-VANの有料サービスで、競馬ソフト用データ取得API「JV-Link」を通してDataLab.のデータベースの情報を取得できます。JRAシステムサービス株式会社は日本中央競馬会(JRA)の子会社であるので、実質の公式データとなります。そのためデータ更新の早さと信頼性の高さは1番と言えるでしょう。
提供されている主なデータは以下の通りです。
- レース詳細(コース、グレード、頭数、賞金、ラップタイムなど)
- 馬毎レース情報(馬番、騎手、負担重量、走破タイム、前後3Fタイム、コーナー順位、脚質など)
- 払戻
- オッズ・得票数
- 時系列オッズ(単複、枠連、馬連のみ)
- 競走馬マスタ
- 騎手・調教師・生産者・馬主マスタ
- 繁殖馬・産駒マスタ
- 出走別着度数
- 坂路調教
- セリ価格
- 馬体重
- 天候・馬場状態
- 騎手変更
取得できるデータの詳細はこちらの仕様書をご覧下さい。
得票数や時系列オッズを提供しているのはおそらくDataLab.だけだと思われます。また騎手変更や天候・馬場状態などの速報データの更新の早さも強みです。
DataLab.のデータを取得する方法は大きく分けて2種類あります。
1つは、既存の競馬ソフトを使ってDBを構築するかcsvなどのファイル形式でデータを取得する方法です。この方法は時間をかけずに手軽にデータが取得でき、試しにデータ解析したいという人にとっては良い選択肢です。デメリットとしては、取得できるデータが専用ソフトがサポートしている種類に限られることと、データを取得するために専用ソフトをいちいち実行しなければならないので、完全自動化が難しいということです。
もう1つの選択肢は、開発者用APIを使ってデータ取得のプログラムを自分で書く方法です。JV-Linkからデータ種別とレースキーを指定してリクエストを投げると固定長テキスト形式の文字列が取得できます。その文字列を、提供されているSDKでパースするか、上記の仕様書に従ってパースする必要があります。本格的に毎週運用していきたいという人は多少面倒でも、自由にカスタマイズできるこちらの方法をおすすめします。
しかし注意が必要なのは、JV-Linkの動作環境はWindowsのみということです。またAPIはVC#、VC++、VB、DelphiなどのWindowsアプリケーションの開発環境でしか動作しないため、PythonやRを使ったデータ解析とは相性が悪いです。使うにはそれなりの時間と覚悟が必要でしょう。
netkeiba.com
netkeiba.comは株式会社ネットドリーマーズが運営する競馬総合ポータルサイトです。
netkeiba.comのデータを取得するためには、JRA-VANの場合とは異なり、ウェブスクレイピングすることでデータを抽出します。ウェブスクレイピングとはプログラムによって普段我々が眺めているHTMLページから必要な情報を自動的に収集する技術です。ウェブ・クローラーやウェブ・スパイダーと呼ばれることもあります。スクレイピングは環境の縛りが無いので、Python、Ruby、PHPなど自分の開発しやすい言語を選べます。例えばScalaに関しては、stockedgeさんがnetkeiba-scraperをGitHubで公開しています。
競馬新聞に乗っているデータはほぼ無料で取得できます。netkeiba.comが提供する主な独自データは以下の通りです。
- 本調教タイム(有料)
- 特別・新馬レースの厩舎コメント(有料)
- 馬場指数・タイム指数(有料)
- 馬毎掲示板
馬毎掲示板は有益な情報が抽出できるかわかりませんが、自然言語処理のアプローチで解析している人は滅多にいないので、やってみると面白いかもしれません。
JRDB
最後に紹介するのがAlphaImpactプロジェクトでも採用している1JRDBです。JRDBのデータは馬券裁判で有名な卍氏も使っていたようです2。
JRDBのデータはURLを直接叩いてlzh形式に圧縮された固定長テキストデータをダウンロードして取得します。lzhは主にWindowsで使われるデータの圧縮形式ですが、OSXやLinuxでもコマンドライン上で解凍することができるので、Windows環境を必要としません。
JRDBは独自データを多く提供しています。主なデータ種類は以下の通りです。
- 出遅れ、不利
- レース位置取り
- 直前パドック情報(馬具変更、脚元)
- 蹄の形
- IDM
- 馬場差
- 芝種類・草丈・中間降水量・転圧・凍結防止剤
- 本追切データ
- 中間調教データ
- 情報・専門紙の印数
- 10時の単勝複勝オッズ
データの詳細な仕様はこちらをご覧下さい。
JRDBはレースの出遅れや不利、内外の位置取り情報や、蹄の形、馬具といった泥臭くデータ化が難しい情報を提供しているのが特徴です。また、リアルタイムにオッズを取得するのには向きませんが、専門紙の印などから算出した基準オッズという独自に算出した想定オッズが前日に提供されるので、前日に馬券の組み立てをするのに役に立ちます。さらにインデックスメモリー(IDM)と呼ばれる馬場差や出遅れなどの影響を排除したスピード指数のような指標を提供しています。
データの豊富さと開発環境を選ばないという点でJRDBのデータはデータ解析には向いているデータだと言えるでしょう。
まとめ
あなたに適したデータ取得方法は見つかったでしょうか?もちろんデータ取得先は1つだけに絞る必要はなく、不足しているデータがあれば複数のサービスを利用してデータを揃えるということもできます。泥臭く軽視されがちなデータ収集ですが、ここで地道に努力した分だけ他者との差になります。是非自分専用の競馬データベースを構築して、競馬を骨の髄まで楽しんで下さい。
サービスごとの特徴
JRA-VAN DataLab. | netkeiba.com | JRDB | |
---|---|---|---|
月額料金 | 2,052円 | 0〜934円 | 1,980〜2,480円 |
開発環境 | Windows・Visual Studio | なんでもOK | なんでもOK |
信頼度 | ◎ | ◯ | ◯ |
データ種類 | ◯ | △ | ◎ |
手軽さ | △ | ◎ | ◯ |
おすすめの人 | 本格的な運用を考える人・ オッズ解析がしたい人 |
安く手軽に競馬解析をしたい人 | 趣味〜本格的な運用をしたい人・ 豊富なデータで解析したい人 |
なお、各種競馬情報提供サービスからプログラムによりデータを取得する際は、利用規約を守り、サーバに負荷がかからないようにご注意下さい。
-
「AlphaImpactプロジェクトでも採用している」の部分を削除(更新日:2019/04/19) ↩︎
-
『1億5000万円稼いだ馬券裁判男が明かす 競馬の勝ち方 - 株式会社ガイドワークス』(追記日:2021/05/22) ↩︎