ホーム / 競馬理論 / データマイニング

データマイニング

歴史
データマイニングの根幹は人工知能の構築にあり、その概念は計算機が誕生した1940年代と言われています。
1980年代には大規模なデータベース、データ情報を動的に操作するPC言語『SQL』が誕生し、データ量は飛躍的に増加しました。
そして、1990年前後、IBMはチェスで人間に勝利するためのスーパーコンピューター『ディープ・ブルー』の開発を開始しました。
『ディープ・ブルー』は高速な情報処理能力を有し、人間的な問題処理能力を発揮する側面、データマイニングの進化にも貢献しました。
そして1990年代、こうした技術と機械の発展からデータマイニングは誕生したのです。

概要
データマイニングとは、大量のデータから様々なデータ解析の手法を用いて、そこからデータの関連性や知識を発見することを総じた名称です。
様々な方法でデータの関連性を見出す手法が存在するため、データマイニングが活用されている場面は広義に渡ります。
また一意の意味に留まらないため、使用されるアルゴリズムは目的によって分別されており、全ての用途に当てはまるものではありません。

しかし、もともとの発想は同じところから始まりました。それが『機械学習』です。
機械学習とは、コンピュータに人間と同じ学習能力をもたらすための手法です。
データマイニングと同様、データの解析から関連性やルールなどを取り出します。
使用用途は広く、皆さんもよく使う検索エンジンやスパムメールの検出、またスマートフォンにも搭載されている音声認識や文字の認識といったパターン認識、大義では金融市場の予測にも用いられています。
そこから様々な概念が生まれそれをさらに総称したものがデータマイニングになります。

競馬に活用されたのは2000年頃で、JRA-VANというJRAの子会社がデータマイニングによる競馬予想を提供しております。
データマイニングの数ある解析手法の中で、競馬に使われているアルゴリズムは『ニューラルネットワーク』になります。
ニューラルネットワークとは、機械学習の一分野を切り取って付けられた名称で、人間の脳機能の特性を表現することを目的とした数学モデルです。
ニューラルネットワークを用いた手法では、以下の予測モデルが運用されています。

走破速度を予測するモデル
競走馬の勝敗を予測するモデル


またこれらの予測モデルを算出するため、以下のデータが使用されます。(※JRA-VANより抜粋)

1.対象レース情報
競馬場:競馬場の特性を学習する要素として使用
距離:距離が他の因子やタイムとのどのような因果関係があるのかを学習させる
コース区分:同じ競馬場・同じ距離でも内コース・外コース・直線では走はタイムが大きく異なるため、それらを学習する要素として使用
レース条件(グレード):レースの格が他の因子やタイムとのどのような因果関係があるのかを学習させる
重量種別:レース斤量が他の因子やタイムとのどのような因果関係があるのかを学習させる
天候:天候が他の因子やタイムとのどのような因果関係があるのかを学習させる
馬場状態:馬場状態が他の因子やタイムとのどのような因果関係があるのかを学習させる

2.出走メンバー情報
出走頭数:出走頭数が他の因子やタイムとのどのような因果関係があるのかを学習させる
逃げ馬・先行馬の割合:逃げ先行馬が出走頭数に占める割合を利用し、レースのペースとの因果関係を学習させる

3.予測対象馬/今回情報
枠番:レースコースとの因果関係を学習させるために使用
馬体重:馬体重が他の因子やタイムとのどのような因果関係があるのかを学習させる
馬体重増減割合:一日あたりの増減差を計算して入力し、年齢やその他の項目との因果関係を導き、学習させる
負担重量:負担重量がタイムに与える影響を学習させる
負担重量率:負担重量は馬体重と因果関係があることは既知の事実なので、関連性を外側でつけてから因子として利用する
騎手勝率:騎手の直近100レースの勝率が結果に与える影響を学習させる
騎手3着内率:騎手の直近100レースの3着内率が結果に与える影響を学習させる

4.予測対象馬/背景情報
性別:性別が他の因子やタイムとのどのような因果関係があるのかを学習させる
馬齢:年齢が他の因子やタイムとのどのような因果関係があるのかを学習させる
調教師勝率:調教師の直近100レースの勝率が結果に与える影響を学習させる
調教師3着内率:調教師の直近100レースの3着内率が結果に与える影響を学習させる
生産者:生産者の特性を学習する要素として使用
馬主:馬主の特性を学習する要素として使用
父:父馬の特性を学習する要素として使用
母父:母父馬の特性を学習する要素として使用

5.予測対象馬/過去走実績
出走回数:競走馬の経験値として使用
1着回数:競走馬の経験値として使用
3着内回数:競走馬の経験値として使用
出走回数(同トラック):競走馬の経験値として使用
1着回数(同トラック):競走馬の経験値として使用
3着内着回数(同トラック):競走馬の経験値として使用
出走回数(同距離):競走馬の経験値として使用
1着回数(同距離):競走馬の経験値として使用
3着内着回数(同距離):競走馬の経験値として使用
重賞出走回数:競走馬の経験値として使用
重賞勝利数:競走馬の経験値として使用
重賞3着内回数:競走馬の経験値として使用
脚質(逃げ・先行):これまでのレースで逃げもしくは先行した割合。馬の脚質として使用
前走のレース条件:競走馬の格を代用する要素として使用
前走からの間隔:ローテーションを示す要素として使用
前走のレースのレベル:前走の情報として使用
前走のレースタイム比:前走のレース平均タイム/自身のタイム。前走での該当競走馬の実績として使用
前走の上がりタイム比:前走の上がり平均レースタイム/自身の上がりタイム。前走での該当競走馬の実績として使用
前2走のレースのレベル:前走と同様
前2走のレースタイム比:前走と同様
前2走の上がりタイム比:前走と同様
前3走のレースのレベル:前走と同様
前3走のレースタイム比:前走と同様
前3走の上がりタイム比:前走と同様
直近1年のベストタイム比:該当競走馬のベストパフォーマンスを示す要素として使用
直近1年のベスト上がりタイム比:該当競走馬のベストパフォーマンスを示す要素として使用

6.予測対象馬/坂路調教実績
過去1ヶ月の平均調教本数:調教の実績を示す要素として使用
過去1ヶ月の最高ラップタイム:該当競走馬のベストパフォーマンスを示す要素として使用

7.目的変数
走破速度:該当競走馬の対象レースでの走破速度


これらのデータを基に、以下のような加工を行います。そして加工されたデータと走破速度の関係をニューラルネットを使用し、学習させ予測モデルを作成します。


1.中央競馬成績データの抽出

2.データのクレンジング

異常値成績(極端に速い/遅い/データなし、などを除去)
異常レース(スタート後に競走中止、落馬、降着等があったケース)の場合、対象馬だけでなく同時に走った他馬の成績にも影響があった可能性があるため、そのレース全体に関するデータを除去

3.カテゴリデータの処理
父馬、母父馬、生産者、馬主など、カテゴリー区分値が多数あるものについては、データ中の出現頻度順の上位はそのまま使用し、残りは1区分に一括しました。

4.集計/比率化処理
元データのうち、そのまま使用するものもあれば、様々な集計処理や、比率を計算して、その値を入力値として使用したものもあります。

例えば、予測するためには競走馬、騎手、調教師等がそれぞれどの程度の能力を持っているのかを表すデータが必要となります。
競走馬の前走の着順、騎手の勝率、調教師の勝率などが考えられますが、予測モデルで走破速度を予測対象としているように、過去成績の評価にも主に走破速度を使用しました。
しかし、競馬場、コース、距離等で走破速度が大きく異なっており走破速度そのままでは過去成績を評価できません。
そこで、過去に出走したレースの条件を加味した上で過去成績を評価するために、競馬場、コース、距離等により走破速度の基準値を設定し基準値に対する比率を計算することで全ての過去成績を同列に評価できるようにしています。
この基準値の求め方についても様々な方法があり、今までの開発のなかで試行・評価を行っています。以下はその一例です。

過去の同条件のレースでの上位着馬の走破速度平均値を基準とする。
ニューラルネット(BPN)で基準値を求める。


このように、データマイニングとは、膨大なデータを使用してそこから宝石を掘り出すような作業を意味しているのです。

余談
現存する競馬理論の中では、非常に高い予想精度を誇る部類に入ります。
また、JRAのデータを基に構築されているので信頼性も高く、予想データもしっかり公表されているので、巷に溢れるにわか予想理論とは一線を画します。
一定数の予想と検証が出来ない競馬関係者の予想は、理論でもなんでもなくただの空想論とお考えください。
その予想を買うことが一番の危険なギャンブルです。

裏話
開発当初、データマイニングでの競馬予想を構築する際に、速度を予測モデルにすることを目的としていました。
しかし、どうゆう考え方の基に速度を競走馬の能力として使用するかという疑問にぶつかりました。
そこで、当時唯一、速度を競馬に活用していた予想家に話を持ち込みました。
現在も、データマイニングと遜色ない予想データを提供する予想家の理論は、数量化理論と多変量解析というものでした。
その個人の意見を参考にして、現在の大規模な予想システムが構築されているのです。