難易度:★★☆☆☆
観客数や集客率は、プロスポーツビジネスにおいて収益を考える上で重要な数字です。例えばJリーグクラブの収益割合は、入場料収入が広告料収入に次いで2割を占めています。入場料収入は観客数に比例するので、クラブは観客数を一人でも増やしたいと考えています。観客数をあらかじめ予測することができれば、観客数が少ないと予測された試合は、チケット価格を下げて観客数を増やしたりといった施策を打つことができます。そこで本クエストでは、この課題への取り組みの1つとして、Jリーグの試合の観客数を予測するモデル作成に挑戦します。本クエストを通じて、データ分析の基本的な手順やモデルの作成方法、さらに、モデルの予測精度向上のために重要な特徴量加工について学びます。
Jリーグのチケット価格を決めているチケット会社SIGNATEは、チケット価格を状況に応じて変動させるために、観客数を予測できないかと考えています。過去に、チケットが全て売り切れて、スタジアム周りにもチケットを買えなかった人が来ているといった事例や、チケットが売れずに空席が目立つといった事例がありました。もしあらかじめ、観客数が分かっていれば、観客数が多い時はチケット価格を少し高めに設定し、逆に観客数が少ない時はチケットを安くして、観客数を増やすといった施策を打つことができます。そこで、過去の試合情報(2012年3月~2014年4月)とその時の観客数のデータを使って、今後の試合の観客数(2014年5月から7月)を予測するモデルを作成します。※現在は2014年4月30日という設定です。
Mission 1
チケット会社SIGNATEでは毎試合、試合情報を記録していたので、それらのデータを使うことにしました。しかし、複数のファイルでデータを管理していたため、予測を行う上でデータを扱いやすいようにこれらを1つにまとめる必要があります。本ミッションでは、分析の第一歩として重要なデータの読み込み方、複数データの結合の仕方を学びます。
データ分析を始めるにあたって、まずはPython上で扱えるようにデータを取り込まなくてはなりません。
このタスクでは、ライブラリのimport方法と、データ分析のための様々なツールが用意されているライブラリ`pandas`を使ったcsvデータの読み込み方法を学びます。
`DataFrame`形式で読み込むことで、各種データについて様々な処理を行う準備ができました。
このタスクでは、読み込んだデータについて、その大きさを調べたり、不要なカラムを削除する方法を学びます。
このQuestではデータが1つだけではなく、複数存在します。それらのデータをうまく使うために、データを結合したり、整形したりする方法を学びます。
Mission 2
複数管理されていたデータを1つにまとめることができました。観客数を予測するために、どのような要素が観客数に影響するのかを調べてみましょう。天気やチームは観客数に影響しそうだという風に、ある程度仮説を立てることができます。観客数に影響する要素の仮説を立て、正しいかどうか確認していきましょう。その為の方法論として本ミッションでは、探索的分析について学びます。データ分析ではデータの分布や数値等からデータの特徴を抽出し、それに基づき仮説を立てたり仮説の検証を行います。基本統計量や可視化の方法論についても学んでいきましょう。
このタスクでは、データに含まれる各変数について、基本統計量を確認したりヒストグラムを描画することで、その分布の特徴を知る方法を学びます。
良い分析を行うにあたって、データの特徴を知ることは不可欠です。このタスクを通してその基本的な方法を学び、未知のデータに対しても活用できるようになりましょう。
予測に使えそうな説明変数を決めるためにも、目的変数と説明変数の間にどのような関係性があるかを見る必要があります。<br>
2変数間の関係性を相関といい、関係性が強いことを相関が強いと言います。<br>
目的変数と説明変数間の相関の確認方法を学びましょう。
Mission 3
観客数に影響する要素がわかったので、次は実際に観客数予測モデルの作成を実施することになりました。モデルを作成するためには、モデルが扱えるような形にデータを加工する必要があります。そこで本ミッションではデータ前処理について学びます。ここでの前処理とはモデリングのための前処理についてです。適切な前処理をすることで、モデリングの精度を上げることができます。前処理の種類や、方法にどのようなものがあるのか学んでいきましょう。
Mission 4
データの前処理が出来たため、モデリングが出来る状態になりました。いよいよ本クエストのメインである、観客数の予測をする為のモデル作成を実施することになりました。本ミッションではモデリング手法の1つ、重回帰モデルについて学びます。モデルを作成することで、過去の実績から将来の値を予測することができるようになります。具体的なモデルの作り方や作ったモデルの正しい評価方法について学んでいきましょう。
このタスクでは、機械学習を行う前の最後のステップとして、与えられたデータを説明変数と目的変数、学習データと評価データに分割する方法を学びます。
このタスクでは、データ分析において最も基本的なツールである**重回帰モデル**の概念を学び、その`scikit-learn`上の実装である`LinearRegression`を用いて実際に学習を行います。
これまで長々と前処理や下準備の話をしてきましたが、ついに、本格的な統計分析、機械学習の第一歩を踏み出すことになります。
このタスクでは、学習済みモデルの精度を評価するための基礎的な手法を学びます。
予測モデルの評価には、学習データに対する予測精度と評価データに対する予測精度が用いられます。これらを算出し、また予測精度についても可視化を行うことで、予測モデルの精度をより高めるための知見を得ることができます。
Mission 5
観客数を予測するベンチマークモデルを作成することができましたが、観客数の予測結果を施策に活用していく為には、更に精度の高い予測が必要であるという判断がされました。改善案としてはモデル作成時に残差分析を行っていた為、その結果を手掛かりにもう少し予測精度の高いモデルを作成する方針となりました。本ミッションでは、残差分析の結果得られた知見を活かして、モデルの改善を行いましょう。
このタスクでは残差分析で得た知見を活かして、制度が上がるように新しく特徴量の生成と加工を行いましょう。
本クエストでは、Jリーグの観客数を予測するモデルを作成しました。ただ予測モデルを作るだけでなく、予測モデルの精度を上げるために、観客数に影響しそうな要因を仮説を立てて検証し、予測精度を改善する試みも行いました。クエストを通じて学んだこと、そしてクエストの成果をおさらいしましょう。
Competition
これまで学習したことを元に、SIGNATEの練習問題に挑戦してみましょう。このコンペでは、2012年~2014年シーズン前半までのデータを使用し、「2014年後半戦J1,J2全試合の観客動員数を予測するモデル」作成にチャレンジします。
Competitionに挑戦する