Market ひろしまQuest2020プロ野球配球予測【予測部門】

難易度:★★★★☆

  • 業種
  • エンタメ・レジャー
  • テーブル
  • 分類問題
  • 決定木

昨今、スポーツ業界でもデータ分析や人工知能を用いる例が増えてきています。 テニス、バレーボール、サッカーといった対戦型スポーツではデータをリアルタイムに収集し、 監督やコーチが収集データから試合状況を分析して、より効果的な戦術を見つけ出して試合中の選手に伝えるという取り組みがあります。 選手のコンディション管理や調子の推定に人工知能を用いる事例などもあります。 そこで、本Questでは過去SIGNATEで開催されたコンペ「ひろしまQuest2020」(https://signate.jp/competitions/274)の上位入賞者の解法を元に球種予測を行う分類モデルの作成方法についてを学んでいきます。

  • 5 時間
  • 2,700 Exp
  • 0 Videos
  • 9 Slides
  • 4 Missions
  • 15 Tasks
  • 45 Operations

Introduction 50 Exp

過去SIGNATE上で「ひろしまQuest2020#stayhome:プロ野球データを用いた配球予測」というひろしまサンドボックス推進協議会事務局に主催していただいたコンペが開催されました。
そのコンペでは過去3年分のプロ野球データを用いて球種を予測するというアルゴリズムを競うというものでした。
では、球種をうまく予測するためにはどんな特徴量が必要となるでしょうか?
投手の利き手や試合中の得点差など様々な要素が関係しそうですね。
上位者がどのようにコンペに挑んでいたのかも含めて、野球に詳しい方も詳しくない方も特徴量作成の仕方や複数のモデリングの仕方などの中級者向けの精度向上のテクニックを学んでいきましょう。

Slideを見る

Mission 1

データの読み込み

コンペティションに参加する場合やデータ分析を行う場合で1番大切なことはデータを入念に確認することです。
今回のコンペでの提供データでは投球単位のデータと選手単位のデータの2つのデータが存在しました。
その中で個別にどんな情報を持ったデータなのか、2つのデータはどのように関係付けることができるのかなど確認するべきことが様々あります。
データを読み込んで今回の題材となるデータの概要を確認しましょう。

Slide 1
データの読み込み
    50 Exp
    Task 1
    データの読み込み
    150 Exp

    Task 1

    データの読み込み

    • 1 時間
    • 3 Operations
    • 150 Exp


    予測アルゴリズムなどを作成する場合でも一番大切なことはデータを入念に調べることです。
    実際にデータを読み込んで今回の題材となるデータの概要を確認しましょう。

    Task 2
    データの詳細確認
    150 Exp

    Task 2

    データの詳細確認

    • 1 時間
    • 3 Operations
    • 150 Exp


    データ全体を確認し、どんなデータを使っているか確認できました。
    次は様々な条件によってデータに対して絞り込みを行い、詳細を確認してみましょう。

    Task 3
    目的変数についての確認
    100 Exp

    Task 3

    目的変数についての確認

    • 1 時間
    • 2 Operations
    • 100 Exp

    データの絞り込みを行い、データの大枠については理解できたと思います。
    次は球種予測モデルを作成する際に必要不可欠である球種のデータについての確認を行いましょう。

    Mission 2

    探索的分析と特徴量作成

    コンペを闘って行く上で大切な工程が2つあり、その2つを探索的分析と特徴量作成と言います。
    探索的分析とは欠損値や重複データの確認、データの分布、データ間の関係性やそのばらつきを見ることを言います。
    特徴量作成とはモデルの精度向上のために与えられたデータから新たな特徴を作成することを言います。
    今回はひろしまコンペにて上位になった人たちの探索的分析や特徴量作成も踏まえて、様々な観点から手法や観点を学んでいきましょう。

    Slide 1
    探索的分析と特徴量作成
      50 Exp
      Task 1
      探索的分析
      200 Exp

      Task 1

      探索的分析

      • 1 時間
      • 4 Operations
      • 200 Exp


      今回はデータを様々な観点から見ながら、ユニークな値の確認や欠損値の確認を行なっていきましょう。

      Task 2
      データを横に組み合わせた特徴量作成
      100 Exp

      Task 2

      データを横に組み合わせた特徴量作成

      • 1 時間
      • 2 Operations
      • 100 Exp


      今回は与えられたデータを横に組み合わせて、新たな特徴量を作成してみましょう。

      Task 3
      データを縦に組み合わせた特徴量作成
      150 Exp

      Task 3

      データを縦に組み合わせた特徴量作成

      • 1 時間
      • 3 Operations
      • 150 Exp


      今回は与えられたデータを縦に組み合わせて、新たな特徴量を作成してみましょう。

      Task 4
      ドメイン知識を使った特徴量作成
      150 Exp

      Task 4

      ドメイン知識を使った特徴量作成

      • 1 時間
      • 3 Operations
      • 150 Exp


      ドメイン知識ははっきり限定された、ある専門分野に特化した分野の知識であり、コンペ題材データのドメイン知識を使って特徴量を作成することも重要なタスクとなります。
      今回であれば野球関しての知識がドメイン知識となります。

      Task 5
      外部データを使った特徴量作成
      150 Exp

      Task 5

      外部データを使った特徴量作成

      • 1 時間
      • 3 Operations
      • 150 Exp


      コンペによっては提供データ以外に、外部データの使用を許可している場合もあります。
      その場合では様々なwebサイトからデータをスクレイピングしてくることでデータ利用が可能となります。

      Mission 3

      球種予測モデルの作成

      通常コンペでは予測ファイルをコンペサイトでサブミットしないとスコアを確認することができません。
      しかし精度向上のために施策を打って、その結果をサブミットしないと確認できないとなると少し不便ではありませんか?
      そのような場合に備えて、モデルの妥当性を検証する方法の1つとしてクロスバリデーション(CV)と呼ばれる検証方法が存在します。
      CVは実務でもAIの精度をちゃんと評価するために重要な設計の1つになります。
      今回はこのCVと呼ばれる検証方法を使いながら、複数のアルゴリズムのモデルを作成していきます。
      いつものクエストに比べると複雑ではありますが、この工程を学ぶことができれば様々なテーブルデータコンペで対応することができる重要なミッションとなります。
      ぜひ少しずつでも良いので噛み砕いていきながら学んでいきましょう。

      Slide 1
      球種予測モデルの作成
        50 Exp
        Task 1
        データ概要の理解
        200 Exp

        Task 1

        データ概要の理解

        • 1 時間
        • 4 Operations
        • 200 Exp


        コンペの形式に寄せたデータを使った、ここから実際に球種予測を行うモデルを作成していきます。

        Task 2
        クロスバリデーションの設定
        100 Exp

        Task 2

        クロスバリデーションの設定

        • 1 時間
        • 2 Operations
        • 100 Exp

        コンペは通常2-3ヶ月開催など比較的長いものが主流となっています。その長い期間を過ごしていく上でクロスバリデーションを設定することは大変重要なタスクとなります。

        Task 3
        LightGBMを使ったモデリング
        350 Exp

        Task 3

        LightGBMを使ったモデリング

        • 1 時間
        • 6 Operations
        • 350 Exp

        コンペ上位者のほぼ全員が使っていたLightGBMというモデルを使って、球種予測モデルを作成していきましょう。

        Task 4
        kNNを使ったモデリング
        150 Exp

        Task 4

        kNNを使ったモデリング

        • 1 時間
        • 2 Operations
        • 150 Exp

        scikit-learnに実装されているkNNというモデルを使って、球種予測モデルを作成していきましょう。

        Task 5
        NNを使ったモデリング
        200 Exp

        Task 5

        NNを使ったモデリング

        • 1 時間
        • 3 Operations
        • 200 Exp

        深層学習用のフレームワークであるKerasを使って、NNを使った球種予測モデルを作成していきましょう。

        Mission 4

        球種予測モデルの改善

        精度向上のためには様々な方法があります。
        今回は複数のモデルの推論結果を使ってアンサンブルと呼ばれる手法と複数のモデルの積み上げを行う手法のスタッキングを学習していきます。
        ひろしまコンペの上位者も必ずといっていいほど、アンサンブルもしくはスタッキングを使用してスコアブーストをしていましので上位に入り込むための大切な手法となりますので丁寧に学んでいきましょう。

        Slide 1
        球種予測モデルの改善
          50 Exp
          Task 1
          アンサンブルを使った精度改善
          150 Exp

          Task 1

          アンサンブルを使った精度改善

          • 1 時間
          • 3 Operations
          • 150 Exp

          アンサンブルと呼ばれる複数モデルを融合させて1つの予測を作成する方法を学んでいきましょう。

          Task 2
          スタッキングを使った精度改善
          100 Exp

          Task 2

          スタッキングを使った精度改善

          • 1 時間
          • 2 Operations
          • 100 Exp

          スタッキングと呼ばれる複数モデルの予測結果を利用して、再度新しいモデルを作成する方法を学んでいきましょう。

          Conclusion 50 Exp

          今回のコンテンツでは、過去のコンペの上位解法のエッセンスを元に学習していくことでクロスバリデーションを使って複数モデルを作成し、精度向上のための方法を学ぶことが目標でした。
          まずデータの読み込みを行い、データを確認しながらどんなことができるかを確認していきました。
          その次に実際に提供されたデータを横や縦に組み合わせたり、ドメイン知識を使って新たな特徴量を作成してきました。
          その後、コンペの概要や評価関数について理解し、球種予測モデル作成ならびに精度向上のためのアンサンブルやスタッキングなどの手法を学んできました。
          コンペで実際に上位になるためには試行錯誤することがたくさんあり大変ではありますが、しっかりコンペと向き合うことで実力が格段と上がっていきます。
          ぜひ、このコンテンツを学習した後にSIGNATEで開催しているコンペティションに参加していただき、今回の内容を元に精度向上を狙っていきましょう。

          Slideを見る