第2回の記事では競馬データがデータサイエンスの題材としていかに魅力的なのかについて書いていきます。

データサイエンス学習者にとっての競馬データ

機械学習の初学者によく使われるデータに、アヤメの品種ごとの花弁と萼のサイズのデータセットやワイン品種ごとの成分のデータセットがあります。 それらのデータセットは始めからcsv形式などの扱いやすいテーブル形式で提供されていて、ダウンロードしてしまえばすぐにアルゴリズムに与えることができる点で、サンプルのデータとしては優秀です。

では、機械学習を一から勉強しようと参考書を読み終えたあと、さあアルゴリズムを使ってみよう、と現実の問題に取り組むところまで行けた人がどれほどいるでしょうか。 せっかく面白いデータマイニング技術を身につけられたとしても、アヤメやワインの分類しかすることがなければ全く意味がないですし、学習意欲の持続も困難になるでしょう。

またkaggleのようなデータ解析のコンペもありますが、大概の場合はあらかじめ用意されたデータから決められた正解を導けるかというもので、現実味が薄く、さらに答えが発表されるまでに数週間かかることもよくあります。

しかしその点『競馬予測』という問題は違います。

毎週解くべき問題となるデータは新しく追加され、正解データは何日も待たずともレース結果としてすぐに手に入ります。 それだけではなくそのレース結果は映像やライブで観ることができます。 さらに自分が開発したアルゴリズムを使って実際に馬券を買って楽しむこともできますし、もしそれが良いアルゴリズムならばお金を儲けることもできます。

そしてなにより競馬予測は非常に難易度の高い問題です。 数ヶ月や数年取り組んだけで攻略できるものではなく、高度なデータ分析技術が要されるため、この上なく取り組み甲斐があります。

これほどまでに臨場感と娯楽としての面白さを体験しながら、高度なデータ解析技術を身につけられる題材に競馬データ以上のものは存在しないのではないでしょうか。

では次に競馬データでは具体的にどのようなデータ解析技術を身につけることができるのかということについて見ていきましょう。

『どのように』競馬を予測するか?

競馬の一番の目的は馬券を当てて儲けることでしょう。 しかし、勝てる馬券を計算で求めるためには様々なアプローチが考えられます。 そしてそのアプローチごとに必要となる技術も異なります。 裏を返すと、今使っている技術、あるいはこれから学ぼうしている技術の多くを競馬に適用することができるということです。 そのため競馬データはデータ解析の題材として汎用性が高く、多くのデータサイエンス学習者にとって魅力的なデータと言えるでしょう。

では競馬データに対するアプローチとそれに使う技術の一例をいくつか紹介します。

着順・タイム予測

競馬を予測すると聞いて、まず最初に思い付くのが出走馬の着順・タイムを予測することでしょう。

これまで走ってきた馬の実績、走るコース、天候や馬場状態、騎手など様々な要素から着順やタイムといった数値を予測することを回帰分析(Regression Analysis)と呼びます。

データから数値に変換するための回帰モデルにもバリエーションがあります。 代表的なアルゴリズムは線形回帰、サポートベクトルマシン、決定木、ニューラルネットワークなどが挙げられます。 もちろん回帰モデルとしてディープニューラルネットワークを用いることも可能です。

また着順の数値を予測するのではなく、勝ち負けや上位、中位、下位にグループ分けをして、多クラス分類(Multiclass Classification)として考えることも可能です。 その場合にはロジスティック回帰や分類器として決定木やニューラルネットワークを使う方法が一般的です。

各アルゴリズムの詳細については今後の理論解説記事の中で紹介していきたいと思います。

時系列オッズ解析

海外の競馬では、オッズはブックメーカーが独自に決めた固定の数値のため変動しません。 しかし、日本競馬ではオッズは1分刻みに投票数に従って変動し、投票締め切りまで確定しません。

この特徴は日本競馬で勝つのを難しくする要因の1つになっていますが、それを逆手に取って活用することもできます。 それはオッズの変動から他の馬券購入者の動きを読み取れるということです。

例えば、異常検知という機械学習技術を使うと馬券の大口購入などの異常事象を発見することができます。 そのように多額な金額が投入されることには何かしらの意図が存在するものです。 そこから勝ち馬のシグナルを見抜けるようになれば競馬で勝つための情報を取得できる可能性があります。

Twitterや掲示板から勝ち馬予測

Twitterやnetkeibaの掲示板などのWeb上には多くの競馬ファンが書いたテキストデータが溢れています。 全国のネット上にいる競馬のファンの数を考えれば、それらの大量のテキストデータは集合知として十分使えるデータであり、解析してみる価値があると考えられます。 オッズも馬券購入者の集合知ですが、ネット上で発言する競馬ファンと全国の馬券購入者の集合が異なるため、オッズ以上の有益な情報を得られる可能性があります。 しかもリアルタイム性もあり、レース直前のメディアに公開された情報など、整備されているデータでは表しにくい情報を考慮できるという点で、他の解析手法に対して優位な面があります。

テキストデータから有益な情報を抽出する技術はテキストマイニング(Text Mining)と呼ばれます。 例えば、テキストマイニングの一つである感情分析(Sentiment Analysis)のアルゴリズムを適用すると、ある出走馬に対してポジティブな意見が多いのか、ネガティブな意見が多いのかというのを定量的に分析することができます。

騎手や調教師の対人関係を分析

競馬界はとても狭い社会です。 そのため競馬において人間関係はレースに大きく影響を及ぼします。

たとえば師弟や血縁者のように親密な関係にある騎手あるいは調教師の有力馬が同じレースに出馬していたら、展開の駆け引きの中で援護射撃をすることがあります。

特に逃げ馬が2頭いるレースでは、協力したい人の有力馬が逃げていたらそれを邪魔しないように抑えたり、反対に敵対関係にある騎手が逃げていた場合はそれを邪魔するように競っていって、超ハイペースになるということもあります。

このような人間関係を分析するのに有効なのが社会ネットワーク分析(Social Network Analysis)です。 社会ネットワークは人を点(node)、関係を繋がり(link)として表したネットワークです。 社会ネットワーク分析を使えば、親密さを定量的に表すことができたり、親密な繋がりをもつグループ(コミュニティ)を発見することが可能です。

人間関係を分析することで競馬の予測が有利になるのはもちろんですが、競馬を「馬がただ走っている競技」ではなく「人間の意思や欲のぶつかり合い」という別の視点で観ることができるようになり、競馬がもっと面白くなるかもしれません。

さいごに

データ分析における競馬データの魅力を感じられたでしょうか? ここで紹介した競馬データのアプローチはほんの一部であり、血統の解析や行動心理学による馬券購入者心理の分析など説明しきれていない競馬データの可能性はたくさん残されています。

本記事を読んで競馬のデータ解析をしてみたいと思った人は、ここで紹介しなかったような独自の競馬へのアプローチを見つけて競馬データマイニングに挑戦してみてはいかがでしょうか。

来週の理論記事はお休みしますが、代わって12/23(金)に行われる第2回ウマナリティクスで発表予定の『競馬AIによる時代を超えた幻の有馬記念』についての特別記事を更新予定ですので、ご期待下さい。