見出し画像

【データ分析ハンズオン】pythonでサッカーのデータを集計/可視化【statsbomb】

この記事はスポーツアナリティクス Advent Calendar 2020 9日目の記事です。また、昨年度の同カレンダーでのエモい記事は下記リンクからたどれます。

何を書こうと色々悩んだのですが、今年はみなさんにも是非手を動かしながら使ってもらえるコンテンツになればいいなという思いで、「pythonでサッカーのデータを集計/可視化」できるハンズオンに決めました。加えて、今年はサッカーのデータのオープン化や、ライブラリ整備等が進んだ1年だったと思うので、それらも上手く使いながら進めていきます。

本noteでは、下記のように対象者をDivisionで分割して、別のコンテンツを参照していただく形を取ろうと思います。また、ハンズオン自体はGoogleが提供しているpython実行環境である「Google Colab」にて行っていただく形にします。昇格を目指して!

-------------------------------------------------------------------
■ Division.3 オープンデータの整形とダウンロード
  - 対象 = サッカーが好きで、データ分析もやってみたいけれど、どこから手をつけていいか分からない...
-------------------------------------------------------------------
■ Division.2 イベントデータの基礎集計と可視化
  -対象 = pythonの勉強のネタとして、スポーツアナリティクスに取り組んでみたい...
-------------------------------------------------------------------
■ Divison.1 イベントデータのピッチ上への可視化
  - 対象 = pythonも使えるし、スポーツアナリティクスもばりばりやってみたいけれど、どんな便利ライブラリがあるか知らない〜
-------------------------------------------------------------------
■ その他
  - やらないこと = 機械学習を用いた高度な分析、トラッキングデータの分析・可視化
  - 必要なもの = Googleアカウント(Googleが提供してくれているGoogle Colabというpython実行環境を利用するため)、好奇心と強い気持ち

Division.3 オープンデータの整形とダウンロード

10/11 LaLiga Real Madrid vs BarcelonaのイベントデータがDLできた!

「サッカーが好きで、データ分析もやってみたいけれど、どこから手をつけていいか分からない...」なあなたはこちらから。statsbomb社のオープンデータの中から、試合idを指定すると、json形式というとっつき辛いデータをcsv形式へ変換して、PCのローカルフォルダへダウンロードすることができる。どんなデータが取得されている?というところの確認から、エクセルやスプレッドシートでの集計など、煮るなり焼くなりして触ってみて欲しい。

また、最初に実行する(再生ボタンを押す)際は下記のようなポップアップが表示されるが、筆者を信じて「このまま実行」をクリックして欲しい。

Division.2 イベントデータの基礎集計と可視化

時間ごとパス本数が可視化できた!

「pythonの勉強のネタとして、スポーツアナリティクスに取り組んでみたい...」というあなたにはこちら。Division.3 で行うデータの取得に加えて、pandasという表形式のデータを集計するためのライブラリや、plotlyというグリグリ動かせるグラフを作成することのできるライブラリを使いながら、イベントデータの基礎集計とその可視化を行う。ハンズオン自体は「分析」と呼べるような記載(可視化したグラフからインサイトを発見する、もしくは仮説を検証する)は行っていない。Google Colabもといjupyter notebookには、markdownという形式でコメントを追記する機能が用意されている。是非、ハンズオンの過程で見つかったインサイトや検証できた仮説があればコメントを残して、共有していって欲しい。また、他の大会や試合のデータを見る中での発見があれば是非シェアしていって欲しい。

Division.1 イベントデータのピッチ上への可視化

選手ごとのボールタッチエリアのヒートマップが自分の手で可視化できた!

「pythonも使えるし、スポーツアナリティクスもばりばりやってみたいけれど、どんな便利ライブラリがあるか知らない〜」なあなたには、こちら。基礎集計によるEDAを挟みながら、mplsoccerという、matplotlibベースのサッカーのデータの可視化のためのライブラリを触りながら、ピッチ上へイベントデータの情報をプロットしていって欲しい。mplsoccerには、今回のハンズオンでカバーできていないメソッドがたくさんある。是非公式docのexamplesを参考にしながら、他のものも試していって欲しい。

最後に

今回は、「pythonでサッカーのデータを集計/可視化」と題して、divisionに分けてハンズオンへ取り組んでいただく形にした。ここ最近は海外を中心にデータのオープン化が進みつつあるスポーツ界である。国内ではdata stadium社が既存のグラフを使いながらマッチレポ/プレビューを書くことのできる「SPORTERIA」というWebサイトを運営しているなど、流れはきている。仮にJでもデータがオープンになった時に、定性的な分析をデータで検証できる準備は進めておきたい。

これまでの/これからのアドベントカレンダーは下記リンクから。全日程終了したら全部読みます!笑

#spoana #スポーツアナリティクス #アドベントカレンダー #python #statsbomb #googlecolaboratory

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