Quest スポーツのチケット価格の最適化

難易度:★★☆☆☆

  • 業種
  • エンタメ・レジャー
  • 回帰問題
  • データ前処理

観客数や集客率は、プロスポーツビジネスにおいて収益を考える上で重要な数字です。例えばJリーグクラブの収益割合は、入場料収入が広告料収入に次いで2割を占めています。入場料収入は観客数に比例するので、クラブは観客数を一人でも増やしたいと考えています。観客数をあらかじめ予測することができれば、観客数が少ないと予測された試合は、チケット価格を下げて観客数を増やしたりといった施策を打つことができます。そこで本クエストでは、この課題への取り組みの1つとして、Jリーグの試合の観客数を予測するモデル作成に挑戦します。本クエストを通じて、データ分析の基本的な手順やモデルの作成方法、さらに、モデルの予測精度向上のために重要な特徴量加工について学びます。クエスト最後のチャレンジミッションでは、クエストで学んだデータ分析の流れ等について理解できているか確認するために、また、新しい特徴量を上手く作成出来るかを確認するために、ゼロから分析にチャレンジします。

  • 9 時間
  • 4,500 Exp
  • 17 Videos
  • 0 Slides
  • 5 Missions
  • 14 Tasks
  • 73 Operations

Introduction 50 Exp

Jリーグのチケット価格を決めているチケット会社SIGNATEは、チケット価格を状況に応じて変動させるために、観客数を予測できないかと考えています。過去に、チケットが全て売り切れて、スタジアム周りにもチケットを買えなかった人が来ているといった事例や、チケットが売れずに空席が目立つといった事例がありました。もしあらかじめ、観客数が分かっていれば、観客数が多い時はチケット価格を少し高めに設定し、逆に観客数が少ない時はチケットを安くして、観客数を増やすといった施策を打つことができます。そこで、過去の試合情報(2012年3月~2014年4月)とその時の観客数のデータを使って、今後の試合の観客数(2014年5月から7月)を予測するモデルを作成します。※現在は2014年4月30日という設定です。

Videoを再生する

Mission 1

試合データの読み込み・結合

チケット会社SIGNATEでは毎試合、試合情報を記録していたので、それらのデータを使うことにしました。しかし、複数のファイルでデータを管理していたため、予測を行う上でデータを扱いやすいようにこれらを1つにまとめる必要があります。本ミッションでは、分析の第一歩として重要なデータの読み込み方、複数データの結合の仕方を学びます。

Video 1
試合データの読み込み・結合
    50 Exp
    Task 1
    データ読み込み
    200 Exp

    Task 1

    データ読み込み

    • 1 時間
    • 3 Operations
    • 200 Exp

    データ分析を始めるにあたって、まずはPython上で扱えるようにデータを取り込まなくてはなりません。
    このタスクでは、ライブラリのimport方法と、データ分析のための様々なツールが用意されているライブラリ`pandas`を使ったcsvデータの読み込み方法を学びます。

    Task 2
    データ精査
    150 Exp

    Task 2

    データ精査

    • 1 時間
    • 3 Operations
    • 150 Exp

    `DataFrame`形式で読み込むことで、各種データについて様々な処理を行う準備ができました。
    このタスクでは、読み込んだデータについて、その大きさを調べたり、不要なカラムを削除する方法を学びます。

    Task 3
    データの結合・整形
    750 Exp

    Task 3

    データの結合・整形

    • 2 時間
    • 14 Operations
    • 750 Exp

    このQuestではデータが1つだけではなく、複数存在します。それらのデータをうまく使うために、データを結合したり、整形したりする方法を学びます。

    Task 4
    欠損値の確認・対応
    150 Exp

    Task 4

    欠損値の確認・対応

    • 1 時間
    • 2 Operations
    • 150 Exp

    このタスクでは、データに紛れ込んでいる欠損値の確認と、その対応方法を学びます。
    欠損値とはデータの欠落のことです。
    欠損値をそのままにしておくと、統計的な処理や学習が上手く行かなかったり、分析において様々な弊害の温床になりえます。
    これを回避するために、欠損値の存在確認と、それに対処することが必要になります。

    Mission 2

    観客数に影響のある要素を探索

    複数管理されていたデータを1つにまとめることができました。観客数を予測するために、どのような要素が観客数に影響するのかを調べてみましょう。天気やチームは観客数に影響しそうだという風に、ある程度仮説を立てることができます。観客数に影響する要素の仮説を立て、正しいかどうか確認していきましょう。その為の方法論として本ミッションでは、探索的分析について学びます。データ分析ではデータの分布や数値等からデータの特徴を抽出し、それに基づき仮説を立てたり仮説の検証を行います。基本統計量や可視化の方法論についても学んでいきましょう。

    Video 1
    観客数に影響のある要素を探索
      50 Exp
      Task 1
      変数の分布・値の確認
      600 Exp

      Task 1

      変数の分布・値の確認

      • 2 時間
      • 10 Operations
      • 600 Exp

      このタスクでは、データに含まれる各変数について、基本統計量を確認したりヒストグラムを描画することで、その分布の特徴を知る方法を学びます。

      良い分析を行うにあたって、データの特徴を知ることは不可欠です。このタスクを通してその基本的な方法を学び、未知のデータに対しても活用できるようになりましょう。

      Task 2
      変数間の相関
      400 Exp

      Task 2

      変数間の相関

      • 1 時間
      • 7 Operations
      • 400 Exp

      予測に使えそうな説明変数を決めるためにも、目的変数と説明変数の間にどのような関係性があるかを見る必要があります。<br>
      2変数間の関係性を相関といい、関係性が強いことを相関が強いと言います。<br>
      目的変数と説明変数間の相関の確認方法を学びましょう。

      Mission 3

      試合データの加工

      観客数に影響する要素がわかったので、次は実際に観客数予測モデルの作成を実施することになりました。モデルを作成するためには、モデルが扱えるような形にデータを加工する必要があります。そこで本ミッションではデータ前処理について学びます。ここでの前処理とはモデリングのための前処理についてです。適切な前処理をすることで、モデリングの精度を上げることができます。前処理の種類や、方法にどのようなものがあるのか学んでいきましょう。

      Video 1
      試合データの加工
        50 Exp
        Task 1
        特徴量選択
        50 Exp

        Task 1

        特徴量選択

        • 1 時間
        • 1 Operations
        • 50 Exp

        「ある事柄を説明するためには、必要以上に多くを仮定するべきでない」という指針を「オッカムの剃刀」と言います。これまでの分析結果をもとに、有効そうな変数のみを特徴量として選択しましょう。

        Task 2
        特徴量生成・加工
        450 Exp

        Task 2

        特徴量生成・加工

        • 1 時間
        • 8 Operations
        • 450 Exp

        データに対して、新しい特徴量を加えたり、モデリングできるように特徴量を加工する方法があります。
        このタスクではこれらの具体的なやり方を見ていきましょう。

        Mission 4

        観客数予測モデルの作成

        データの前処理が出来たため、モデリングが出来る状態になりました。いよいよ本クエストのメインである、観客数の予測をする為のモデル作成を実施することになりました。本ミッションではモデリング手法の1つ、重回帰モデルについて学びます。モデルを作成することで、過去の実績から将来の値を予測することができるようになります。具体的なモデルの作り方や作ったモデルの正しい評価方法について学んでいきましょう。

        Video 1
        観客数予測モデルの作成
          50 Exp
          Task 1
          学習・評価データの分割
          250 Exp

          Task 1

          学習・評価データの分割

          • 1 時間
          • 4 Operations
          • 250 Exp

          このタスクでは、機械学習を行う前の最後のステップとして、与えられたデータを説明変数と目的変数、学習データと評価データに分割する方法を学びます。

          Task 2
          評価関数の定義
          150 Exp

          Task 2

          評価関数の定義

          • 1 時間
          • 2 Operations
          • 150 Exp

          このタスクでは、予測モデルの評価指標として幅広く用いられるRMSE(Root Mean Squared Error, 二乗平均平方根誤差)について学びます。

          RMSEは最もよく用いられる評価指標です。定義とPython上での計算方法をしっかり覚えていきましょう。

          Task 3
          モデルの学習
          250 Exp

          Task 3

          モデルの学習

          • 1 時間
          • 4 Operations
          • 250 Exp

          このタスクでは、データ分析において最も基本的なツールである**重回帰モデル**の概念を学び、その`scikit-learn`上の実装である`LinearRegression`を用いて実際に学習を行います。

          これまで長々と前処理や下準備の話をしてきましたが、ついに、本格的な統計分析、機械学習の第一歩を踏み出すことになります。

          Task 4
          モデルの精度評価
          400 Exp

          Task 4

          モデルの精度評価

          • 1 時間
          • 8 Operations
          • 400 Exp

          このタスクでは、学習済みモデルの精度を評価するための基礎的な手法を学びます。

          予測モデルの評価には、学習データに対する予測精度と評価データに対する予測精度が用いられます。これらを算出し、また予測精度についても可視化を行うことで、予測モデルの精度をより高めるための知見を得ることができます。

          Mission 5

          観客数予測モデルの改善

          観客数を予測するベンチマークモデルを作成することができましたが、観客数の予測結果を施策に活用していく為には、更に精度の高い予測が必要であるという判断がされました。改善案としてはモデル作成時に残差分析を行っていた為、その結果を手掛かりにもう少し予測精度の高いモデルを作成する方針となりました。本ミッションでは、残差分析の結果得られた知見を活かして、モデルの改善を行いましょう。

          Video 1
          観客数予測モデルの改善
            50 Exp
            Task 1
            残差分析をもとに改善
            200 Exp

            Task 1

            残差分析をもとに改善

            • 1 時間
            • 4 Operations
            • 200 Exp

            このタスクでは残差分析で得た知見を活かして、制度が上がるように新しく特徴量の生成と加工を行いましょう。

            Task 2
            モデルの再構築
            150 Exp

            Task 2

            モデルの再構築

            • 1 時間
            • 3 Operations
            • 150 Exp

            ここまでで、精度が上がるように特徴量の生成を行いました。このタスクでは、もう一度モデリングを行い実際に精度が上がるかどうかを確認しましょう。
            そして、最後にこのQuestのゴールである、対象データに対する予測を行いましょう。

            Conclusion 50 Exp

            本クエストでは、Jリーグの観客数を予測するモデルを作成しました。ただ予測モデルを作るだけでなく、予測モデルの精度を上げるために、観客数に影響しそうな要因を仮説を立てて検証し、予測精度を改善する試みも行いました。クエストを通じて学んだこと、そしてクエストの成果をおさらいしましょう。

            Videoを再生する

            Competition

            Jリーグの観客動員数予測

            これまで学習したことを元に、SIGNATEの練習問題に挑戦してみましょう。このコンペでは、2012年~2014年シーズン前半までのデータを使用し、「2014年後半戦J1,J2全試合の観客動員数を予測するモデル」作成にチャレンジします。

            Competitionに挑戦する