見出し画像

パターン類似度を使ったパターン分け

こんにちは、トモヒトです。

今回は、パターン類似度を使ったパターン分けに挑戦してみました。

パターン類似度の算出については、下の論文を参考にしています。

Tennis Patterns: Player, Match and Beyond


算出方法

データ収集

自作ツールで、ショットごとに以下のデータを取得します。

自作ツール
  • 何ショット目か

  • ヒッティングポジション(ショットを打ったポジション)

  • ショットの種類
    サーブ:1stサーブ、2ndサーブ
    フォアハンド:フォアハンド、フォアハンドスライス、フォアハンドドロップショット、フォアハンドロブ
    バックハンド:バックハンド、バックハンドスライス、バックハンドドロップショット、バックハンドロブ
    ネットプレー:ボレー、スマッシュ

  • ショットスピード(fast、normal、slow)

  • バウンド地点

  • ポイント結果(ポイントを獲得したのはサーバーorレシーバー)

ヒッティングポジション、バウンド地点は目視で位置を確認し、コートキャンパス上でポインティング、ショットスピードも主観による判断で実施しています。

パターン類似度の算出方法

ヒッティングポジション、ショットの種類、ショットスピード、バウンド地点の4項目を使用して、パターン類似度を算出しています。

任意のポイントを2つ抽出し、同じショット数同士(サーブ同士、3球目同士など)で項目ごとにスコアをつけます。
その合計点が任意の数値(ここでは0.6 × 4項目=2.4)以上の場合は合計点を、下回る場合は0を「ショット類似度」とします。
また、ショット類似度の合計を計算し、任意の数値(2.4 × 比較ショット数)以上のときは合計点を、下回る場合は0を「パターン類似度」とします。

各項目のスコア設定基準は、以下となります。

ヒッティングポジション

比較ショットでのヒッティングポジション間の距離を計算します。
その距離に応じてスコアを決定します。

ヒッティングポジション間の距離が
=>1m未満:スコアは1
=>1m以上1.5m未満:スコアは0.7
=>1.5m以上2m未満:スコアは0.5
=>2m以上:スコアは0

バウンド地点

比較ショットでのバウンド地点間の距離を計算します。
その距離に応じてスコアを決定します。

バウンド地点間の距離が
=>0.5m未満:スコアは1
=>0.5m以上1m未満:スコアは0.7
=>1m以上1.5m未満:スコアは0.5
=>1.5m以上:スコアは0

ショットの種類

ショットの種類が
=>同じ:スコアは1
=>フォアハンドとフォアハンドスライス、またはバックハンドとバックハンドスライスの組:スコアは0.7
=>上記以外:スコアは0

ショットスピード

ショットスピードが
=>同じ:スコアは1
=>fastとnormal、またはnormalとslowの組:スコアは0.7
=>fastとslowの組:スコアは0

パターン類似度を算出した結果、類似度のスコアが0でないものを「類似パターン」とみなします。

類似パターンの発生頻度が多かったパターン

今回は、2023年ATPツアーファイナルのラウンドロビン J. Sinner vs N. Djokovicの試合を対象に類似パターンを調べてみます。

パターン類似度を3ショット目までで算出し、類似パターンの頻度が多かったパターンをいくつか挙げていきます。
(図は奥側がサーバーです)

デュースサイド

センター寄りのサーブ=>センターへのリターン=>来たコースへそのまま3球目を返す

センター寄りのサーブ=>センター(バックハンド寄り)へのリターン=>オープンコートへ3球目

センターへのサーブ=>センター(バックハンド寄り)へのリターン=>フォアサイドへ3球目

センターへのサーブ=>センター(フォアハンド寄り)へのリターン=>オープンコートへ3球目

ボディへのサーブ=>センターへのリターン=>オープンコートへの3球目

ワイド寄りのサーブ=>センターへのリターン=>オープンコート(センター寄り)への3球目

ボディへのサーブ=>センター(フォアハンド寄り)へのリターン=>オープンコートへの3球目

アドサイド

ボディへのサーブ=>バックサイドへのリターン=>アドサイド(センター寄り)への3球目

センターへのサーブ=>センターへのリターン=>フォアサイドへの3球目

今後の展望

今回は、1試合のみでしたが、様々なプレーヤーを対象に試合数を増やしていくことで、共通するパターンを検出できるのでは?と考えています。
また、各パターンでのポイント獲得率を算出することで、効果的な組み立てがどのようなものか、ショット選択がどうだったかの判断材料にもなると考えています。

あとは、自動でデータ収集できるようにしたいです(精度、処理時間ともに改善したいところ)。


最後までお読みいただきありがとうございました。
ご意見ご感想あれば、コメントにお願いします。

この記事が気に入ったらサポートをしてみませんか?