最近、ラグビーの魅力を紹介されたので、ラグビーに関するデータを分析してみようと思います。
何を目標にするのか
今回は、「ニュージーランドの選手についてデータを収集し、分析してみる!」とことにします。
なぜニュージーランドかというとラグビーがもっとも強い国だからです。
450万人の人口にも関わらず、フランスよりもオーストラリアよりも強いのです。
データを集める
そんな都合よくラグビーのデータは用意されていません。
データを集めることは大事
データサイエンティストのブログなどを見ていると、必要なデータは十分に用意されていないのが現実のようです。
下手すると部署ごとの政治に踏み入れ、エラい方々を説得して、やっとアクセスできるというケースもあるようです。
下記の例は理想なのでしょうね。
機械学習チームにおけるエンジニアの道は2つある――クックパッドの伊藤敬彦氏が語る生存戦略【デブサミ2018 夏】 (1/2):CodeZine(コードジン)
Webスクレイピング
それはさておき、今回は、ESPNが提供しているデータをWebスクレイピングして収集しました。
- Python3でやる上で使うライブラリ周りは、Python3で、urllibとBeautifulSoupを使ってWebページを読み込む - minus9d's diaryを参考に
- 肝心のWebスクレイピングはPython Webスクレイピング 実践入門 - QiitaやPythonとBeautiful Soupでスクレイピング - Qiitaを参考に
- そして、よしなに取得した情報を保存します。Pythonでファイルの読み込み、書き込み(作成・追記) | note.nkmk.me
データを分析する
今回はWebスクレイピングしたデータをpandasの基本関数で軽く扱ってみることにします。
データの概要(describe)
データが多すぎて、よくわからないのですがPtsが得点で、Matが試合数です。
1598得点した男
やはり、スポーツで一番注目されるのは得点でしょう。
あのニュージーランド代表の選手の平均は18得点。
にも関わらず、1598得点もしてしまう人がいますね。
すごい……。そのお方はわかっているのですが。
Queryで調べてみます。
dan_carter = data.query('Pts == 1598')
dan_carter.head()
そう、ダン=カーターです。ラグビー界のメッシ!と言われる選手です。
それが日本で見れるのですから、ラグビーファンからするとたまらないのがわかります。
ダン=カーターに続く男を探せ
単純に試合数と得点の散布図を作ってみます。
右上に君臨するお方が、ダン=カーター。
彼の存在がダントツなのですが、これから試合数を順調に重ねれば届きそうな好位置にいる選手がいるようです。
400点以上を取っている選手をピックアップしてみました。
その中で、27歳と、まだまだこれから可能性を持っているのがBeauden Barett(ボーデン=バレット)です。
今後も期待!
他のデータも使い、機械学習も使い、ボーデン=バレットがダン=カーターを超える総得点を残せるのか予測してみたいですね。
今日はこれくらいで。
おまけ
ポジションごとの得点も散布図で出してみました。
Fly-Half(スタンドオフ)が得点が高いのですね。
追記
Webスクレイピングについては注意することがあります。