データを探索して、新しいひらめきや隠された知見を探し当てた時、心がときめきますね。Tableauを使うとプログラミングいらずのドラッグアンドドロップ操作で簡単にデータ探索ができますよ!
では早速データ探索を始めてみましょう。
今回は、アメリカのプロバスケットボール選手 Kobe Bryant の20年間にわたるシュートのデータをもとに何が見えるか探索していきたいと思います。
という私はバスケットボールについての知識が全くないのですが、
こんなバスケットボールど素人の私がデータからどのようなことを発見できるでしょうか・・・
早速やってみましょう。
まずKaggleからデータセット( Kobe Bryant Shot Selection )をお借りします。
Tableau から接続し、ざっとデータ項目を眺めるところところから始めます。
どんな情報があるでしょう?
Shot ID があるので、一つ一つのショットが1レコードになっているようです。
Game IDは行われた試合のID、試合が行われた日付もGame Dateとしてあるようです。
Action Typeはそのショットがどのようなタイプだったか(ダンクシュートとか)のようです。
位置情報のようなものもありますね。
早速可視化を進めてみましょう。
§ 1.時系列の切り口で分析
まず、時系列の切り口で何が見えるか分析してみましょう。
Game Dateを右クリックしながら列にドラッグし、Month/Yearを選択、
Shot IDを右クリックしながら行にクリックし、COUNTを選択します。
すると、年月ごとのショット数が表示できます。
棒グラフでも表せます。
周期的に波があるようですし、ショットのない月もあります。
Seasonを列に入れてみると、NBAのシーズンは毎年5月頃始まり10月頃に終わるようです。
Seasonの切り口で見たほうがわかりやすそうですね。
2013年には極端にショット数が減っていますが、これは2014年12月グリズリーズ戦で相手選手との接触プレーで右膝を負傷しその後の試合に欠場を余儀なくされたことによるようです。(ウィキペディア)
Shot Made Flagを色にドラッグします。
表計算の合計に対する割合、セルを使用して計算とするとシーズンごとの得点率がわかります。現役生活を通して40パーセントを超えるシュートの成功率です。引退が迫るにつれて成功率は落ちていることがわかります。
§2.シュートのタイプによる分析
シュートがどのようなタイプだったのかの情報があるので、こちらを可視化してみましょう。このような場合、ツリーマップを利用すると数の割合が感覚として理解しやすいです。Combined Shot で色分けします。
Jump Shot が多くの割合を占めていることが分かります。さらに細かい分類はAction Typeに情報があるようです。階層構造を作っておくとドリルダウンもできますね。
ショットごとの成功率を比較すると、Dunkの成功率が高く、Jump Shot は意外と低いことが分かります。
時系列の変化をこちらも表計算を使って考察すると、年を経るにつれ、DunkやLay Up が減ってJump Shotに集中しているようです。
§ 3. シュートが打たれた位置情報の可視化
このデータの面白いところとして、シュートが打たれた位置情報らしきもの(LocX,LocY)が存在するところです。これを利用して可視化を行ってみましょう。操作はとても簡単です。LocXを列に、LocYを行に、ShotIDを詳細に入れて個々のデータを個々のポイントとして表示します。なんとなくバスケットボールのコートの形が見えてきましたね・・・・。
Shot Made Flag を列に入れた方がわかりやすいですね。ゴールからの距離が遠いとミスショットになるものが多いようです。
シュートタイプごとに色分けしてみます。
シュートの数が密集していてわかりにくいので、ヘキサゴナルビニングを使ってヒートマップにしてみます。密度によって色の濃さが変わります。Jump Shotのなかでも、オレンジ色の濃い部分が薄っすらと見えてきました。Jump Shotの打ちやすい得意なコート位置がありそうです。
§ 4. 可視化、もうひと工夫
もう一工夫加えて、可視化に面白みを加えてみましょう。
シュートの位置情報にバスケットコートの画像をバックグラウンドのイメージとして追加してみましょう。ちょっとリアルな感じになりますね。
ダッシュボードを使うと作成した今まで作成してワークシートを並べて表示したり、ダッシュボードアクションを使って関連したWebページを表示させることができます。Dunkシュートって何?というときにGoogle画像検索した結果や、YouTubeの結果を表示させることができますよ。
ページの機能を利用すると、時系列の動きがアニメーションのとなって表示できるので、これも面白いかもしれません。
最終的に作成したワークシートやダッシュボードをストーリーとしてスライドショーのようにまとめることができます。
Tableau Public にてワークブックを共有するとブラウザーからワークブックにアクセスしてもらうことが可能です。
Tableauを使うと無機質なデータが語り掛けてくるように、様々な情報を引き出して、それを伝えることができますね。バスケットボールの知識が皆無の私でも、データを通してCobe Bryant選手の選手としての人生を垣間見ることができ、バスケットボールに少し興味をもつことができました。皆さんも周りにある身近なデータを使って、データ探索を楽しんでくださいね!
追伸:
今回の記事作成に当たり、実践的機械学習勉強会を主宰されている東京大学大学院 新領域創成科学研究科 メディカル情報生命専攻 鈴木瑞人 さんにご協力いただきました。実践的機械学習勉強会では定期的にRやPythonによるデータ解析を学ぶ、データサイエンス講習会を開催されているので、こちらも是非ご参照ください!! → データサイエンス講習会