AlphaImpact 会社概要 事業内容 開発情報 お問い合わせ

PageRankによる対戦ネットワークの分析

2017/07/13更新

NUKUI

今回は競走馬同士の対戦ネットワークにPageRankを適用して、馬の強さを数値化する手法を紹介します。

PageRank

PageRankとはウェブページのリンク関係からページの重要度を測るアルゴリズムです。PageRankは、1998年にGoogle創業者のラリー・ペイジセルゲイ・ブリンにより発明されたもので、一時代のGoogle検索エンジンの中核を担っていた技術として有名です。

ページランクの基本的な概念は

多くの良質なページからリンクされているページは、やはり良質なページである

という再帰的な考え方です。

これを数式にすると、ページAの重要度 $ PR(A) $ は以下のように表されます。

$$ PR(A) = (1 - d) + d \sum_{i=1}^{n} \frac{PR(T_i)}{C(T_i)} \tag{1}$$

ただし、式(1)において、 $ PR(T_n) $ はページAにリンクを張っているページの重要度、 $ C(T_i) $ はページ $ T_n $ 内のリンクの総数を表します。また、 $ d $ はダンピング・ファクターと呼ばれる値で、被リンクによる重要度の影響度を調整するパラメータです。通常は0.85に設定されます。

実際のPageRankを計算するにはページの数だけ存在する式(1)から成る連立方程式を解くことになりますが、厳密解を得るのは多大な計算コストが掛かるため、数値的に近似解を計算することになります。

対戦ネットワークへの適用

ここまでの説明では、PageRankは競馬との関連が全く無いように見えるでしょう。しかし、ウェブページのリンク関係は、向きのあるエッジにより連結している有向ネットワークとして一般化できるため、ウェブページに限らず、有向ネットワークとして表されるデータ構造ならば何にでも適用することが可能です。

そこで、競走馬の対戦ネットワークに適用することを考えてみましょう。PageRankが競走馬の強さに対応するように、「ウェブページ」=「競走馬」、「ページAからBへのリンク」=「競走馬AはBに負けた」と読み替えてみます。そうしたとき、PageRankの定義を競走馬の対戦ネットワークに当てはめると**「多くの強い競走馬に勝った競走馬は、やはり強い競走馬である」**ということになり、強い競走馬の定義として自然であると言えるでしょう。対戦ネットワークのPageRankにより競走馬を評価する方法は、初対戦の馬同士であっても、間接的に対戦関係を辿っていくことで優劣を明らかにすることができるメリットがあります。

2017年宝塚記念を予測する

今回はPageRankの有用性を確認するために、2017年宝塚記念(GI)の予測を試してみます。

対戦ネットワークの構築方法としては着差で重みをつけるなども考えられますが、今回はシンプルに競走馬Aが競走馬Bに一度でも負けた実績がある場合はA→Bの有向エッジを張るという方法を採ります。宝塚記念が芝2200mの条件で開催されることを踏まえ、2016/1/1~2017/06/24の芝1800~3200mのOP戦(81レース)の対戦履歴によりネットワークを構築します。PageRankの実装にはnetworkxを利用しました。

対戦ネットワークから宝塚記念出走馬のPageRankを計算した結果は以下の図の通りです。

pagerank_takaraduka

実際のレース結果は以下の通りです。

着順 馬番 馬名 人気
1 11 サトノクラウン 3
2 2 ゴールドアクター 5
3 8 ミッキークイーン 4
4 6 シャケトラ 2
5 7 レインボーライン 7
6 1 ミッキーロケット 8
7 3 スピリッツミノル 9
8 5 シュヴァルグラン 6
9 10 キタサンブラック 1
10 4 クラリティシチー 11
11 9 ヒットザターゲット 10

PageRankの評価では1番人気のキタサンブラックが抜けた評価になっており、また、PageRankのスコア上位に実力馬が固まっていることから、人間の直感に近い妥当な評価順位になっていることが読み取れます。さらに、5番人気で2着に入線したゴールドアクターを3番手に評価できていることから、予測精度もそれなりに高いことがうかがえます。詳細な特徴量を一切使っていないのにも関わらず、これ程良い予測ができるというのは興味深い結果です。

また、構築した対戦ネットワークの一部を可視化した図は以下の通りです。

pagerank_battle_network

赤い点は宝塚記念出走馬、青い点は出走馬の8頭以上と対戦実績がある馬を表しており、点の大きさはPageRankのスコア、先端が太いエッジは過去に負けたことがある馬を示しています。PageRankの上位馬のキタサンブラック、シュヴァルグラン、ゴールドアクターは内向きのエッジが多く接続しており、対戦に勝利した実績が多いということが読み取れます。また、図中右下のクラリティシチーは今回の出走馬との対戦実績がありませんが、トーセンレーヴと間接的に他出走馬と繋がっているため、強さの比較が可能となっていることがわかります。

まとめ

今回はPageRankを応用して対戦ネットワークから競走馬の強さを数値化する方法を紹介しました。2017年宝塚記念の予測では、実力馬を上位に評価できる結果が得られ、PageRankの手法が競馬予測で有効であることが確認できました。

前回記事のNMFによるコース適性分析や今回のPageRankによる対戦ネットワークの分析のように、一見して競馬予測には関係無さそうなアルゴリズムでも、競馬を様々な視点から捉えることによって意外な応用が可能なのです。このことからも競馬がいかにデータサイエンスの題材として面白いのかということがお分かりいただけたのではないでしょうか。是非みなさんもオリジナリティあふれる競馬予測のアプローチを試してみて下さい。