女子卓球レーティング

囲碁将棋などで有名な実力計算方式である"イロレーティング"を卓球に応用し、ITTFランキングでは測れない「実力」を試算しました。イロレーティングをもとに、トーナメントドローに応じたモンテカルロシミュレーションを加えた勝敗予想を提供します。さらにイロレーティングを超える「AIレーティング」を開発しています。

【テクニカル】AIレーティング初版完成・イロレーティングを上回る

女子卓球レーティングのディープラーニング版について、特徴量を増やして精度を上げてみました。結果として、初期実装版よりも的中率3ポイント向上し、純粋なイロレーティングに対してもわずかですが+1〜2ポイント上回るモデルを作ることができました。

ランキングが意外とイロレーティングを補完する指標として機能していることを発見したり、予想外の「中国プレミアム」効果も発見したりと、面白い結果になっています。

これを「AIレーティング」初版として、3月初旬に出る2月ランキングデータをもとに検証し、今後の予想に使っていきながら鍛えていきたいと思います。

以降、AIレーティング初版完成までの詳細を説明します。

初期実装版に対して、特徴量を付加してモデル改善を試みてみました。こういった改善は「特徴量エンジニアリング」や「特徴選択」などと呼ばれています。「特徴選択とは?機械学習の予測精度を改善させる必殺技「特徴選択」を理解しよう」に少し書かれていますが、要は、ちょっとずつ特徴量を増やしたり減らしたりして精度が上がる方向の選択を採用していく、という泥縄的手法のようです。

ということで、以下の20種の特徴量候補をもとに「前進ラッパー法」を行ってみました。

  1. 選手の試合当時(月初)のイロレーティング(基本採用)× この試合の2選手
  2. 選手の試合当時のランキング × この試合の2選手
  3. 選手の所属国が中国かどうか × この試合の2選手
  4. 選手の所属国が日本かどうか × この試合の2選手
  5. 選手の過去1年のワールドツアー本戦試合数 × この試合の2選手
  6. 選手の過去1年の全試合数 × この試合の2選手
  7. 選手の過去1年の勝利数 × この試合の2選手
  8. 同じ相手に対する1年以内の勝利数 × この試合の2選手
  9. 同じ相手に対する1年以内の得セット数 × この試合の2選手
  10. この試合の日付(年月)
  11. この試合がワールドツアー本戦かどうか

もともと、イロレーティングの弱点として、「【テクニカル】イロレーティングからディープラーニングへ・事前知識 - 女子卓球レーティング」では、下位大会での勝利が多いとレーティングが高くなりすぎること、推移率を前提としているためカットに弱いといった相性が表せないこと、をあげています。よって、下位大会補正と相性補正に有効と思われる特徴量を候補にする方針としています。項2のランキング、項5〜6のワールドツアー本戦率は、下位大会勝利偏重な選手を見極める特徴量になると思います。項8〜9は選手同士の相性を見極める特徴量になると思います。選手の戦型そのもののデータはITTFの新たなページのスクレイピングが必要となり準備が大変なので、今回は採用しませんでした。その他の特徴量は簡単に取得できるため、役立てば儲け物と考えて採用しました。なお、所属国という「カテゴリ値」はそのままでは特徴量として利用できないため、所属国が中国か、日本か、というイチゼロの値として表現しています。このイチゼロ化の手法は「ワンホットエンコーディング」と呼ばれています。もちろん、全ての値は正規化して0〜1におさまる小数値にして、学習を行っています。正規化をしないとうまく学習できません。

結果として、基本採用しているイロレーティングに加え、ランキングと、中国選手かどうか、の合計6種(2選手分)の特徴量を追加することで、的中率の改善が見られました。他の特徴量ははっきりとした改善は見られませんでした。

下位大会補正については、ITTFランキングを特徴量として加えることが最も有効でした。ランキングも馬鹿にできないですね。また相性補正については、12か月以内の特定選手同士の試合結果を特徴量として期待しましたが、この特徴量は、ほとんど試合結果が無いというスパース(疎)な情報であり、十分に機能しなかったようです。これについては、今後、戦型データの入手を検討していきたいと思います。

逆に当初効果を期待していなかった「所属国が中国かどうか」が特徴量改善に寄与しました。中国選手は試合数が少ないながら強豪です。そのため、試合時点のイロレーティングやランキングが、実力よりも低くなる傾向があります。「所属国が中国かどうか」を特徴量として加えることで、これを補正するいわゆる「中国プレミアム効果」があるものと思います。

特徴量の選択が終わった後、ディープラーニングの層の深さや、各層の次元数についても、同様に少しずつ変えて最適化してみます。結果として、層は初期実装から減らして、隠れ層1層だけの状態が最適でした。もはやディープではないですね。

こちらが最終的な改善後の学習結果です。的中率が73〜74%になっており、前回結果(70〜71%)よりもはっきりと改善するとともに、イロレーティング実績平均(約72%)よりも上回っています。

f:id:miumima:20200227094753p:plain

結果グラフ

前回「【テクニカル】イロレーティングからディープラーニングへ・初期実装 - 女子卓球レーティング」の結果も貼っておきます。なお横軸のEpochsは、今回は前回の3倍にしてみました。

f:id:miumima:20200224105232p:plain

前回の結果グラフ

今後は、今回作り上げたモデルを「AIレーティング」と呼んで、検証していきたいと思います。3月初旬に出揃う2月実績や、3月以降の試合への適用を通して、特に、イロレーティングとAIレーティングとで予想が食い違う試合およびその結果を詳しく観察することで、AIレーティングの実力と、今後の強化方向(どういった特徴量を追加すべきか)が判明してくるものと期待します。