難易度:★★★★☆
服や家電製品等を購入したり、ホテルやレストランを予約するなどの購買行動は我々の日常生活の大半を占めます。しかし世の中には多種多様な商品が存在し、その中で自分が求めている商品を選ぶことは困難を極める場合が多いです。このような状況で商品を売る側にとって、ユーザーに対して常に最適な商品を推薦することは売り上げを改善するうえで非常に重要な問題となります。特にECサイト上で訪れたユーザーに対して、商品をどのように表示すれば購買してくれるかを考えることはサイト運営者にとって最も重要な事柄の一つといえます。もし、それぞれのユーザーがこれからどの商品に対してどのような行動をとるかを事前に予測できれば、非常に有効な情報となります。そこで、本クエストではユーザーの過去のECサイト上における行動履歴データから将来とる行動を予測するアルゴリズムを作成することに挑戦していただきます。
※本クエストはSIGNATEで過去実施されたコンペティション(https://signate.jp/competitions/45)の結果得られた知見を参考に作成されています。
あなたはあるECサイトの運営者で、購買率を上げるためにサイトのUI/UXの改善に取り組んでいましたが、なかなか効果が得られていません。そこで推薦エンジンの導入を検討しています。ユーザーが本当に欲しい商品が見やすい場所にあればまずはクリックしてくれてより購買につながるのではないかと考えたあなたは、サイト上におけるユーザーの行動履歴データをとっていたことを思い出し、これを分析することでユーザーの行動が予測でき、推薦エンジンの構築に生かすことができるのではないかと思いました。本クエストではユーザーの行動履歴データをもとに将来購入してくれそうな商品を推薦するアルゴリズムを作成することに挑戦していただきます。
Mission 1
まず最初のMissionでは与えられたユーザーの行動履歴データを読み込む方法と読み込んだデータに対する簡単な確認の仕方を学びます。シンプルなテーブルデータの読み込み方と、データの性質を理解していただきます。
ここではpandasというPythonのライブラリを用いて、tsvファイルとして与えられたユーザーの行動履歴データを読み込む方法を学びます。
ここでは前回のTaskで読み込んだユーザーの行動履歴データをPython上でその内容を確認する方法を学びます。
ここでは読み込んだユーザーの行動履歴データに対してユーザーや商品に関する数の集計を行い、性質や傾向を確認します。
Mission 2
このMissionでは、読み込んだデータをもとにして、より細かくそれぞれのユーザーがどのような商品に対してどのような行動をとったかを時系列で並べるなどの分析の仕方を学びます。分析結果をみて、その行動の性質を把握していただきます。
ここでは読み込んだユーザーの行動履歴データに対してそれぞれのユーザーの行動の推移を分析します。
ここでは読み込んだユーザーの行動履歴データに対してそれぞれの商品に対する行動の推移を分析します。
ここでは読み込んだユーザーの行動履歴データに対してそれぞれのユーザーと商品の両方に対する行動の推移を分析します。
Mission 3
このMissionでは、前のMissionで行った分析をもとにして、ユーザーの将来の行動を予測するために効きそうな特徴量の作成の仕方を学びます。この特徴量作成のステップはその後に行う機械学習モデリングにおいて精度を大きく左右する大事なステップとなります。
ここでは読み込んだユーザーの行動履歴データに対して、モデリングの準備として学習用のデータと検証用のデータを作成します。
ここでは前のTaskで作成したデータを用いて、特徴量データを作成します。
ここでは前のTaskで作成したデータを用いて目的変数データを作成し、特徴量データに紐づける形でマージして最終的なデータを作成します。
Mission 4
このMissionでは、前のMissionで作成した特徴量を用いて、機械学習モデルを構築し、学習させてユーザーに商品を推薦するモデルを作成する方法を学びます。選択する機械学習モデルによって精度が変わるため、モデルの選択も重要になります。
ここでは前のTaskで作成したデータを用いてユーザーに対して関連度が高い順に商品を出力する機械学習モデルを学習させます。
ここでは前のTaskで作成した機械学習モデルを用いてユーザーに対して関連度が高い順に商品を出力し、その精度を評価します。
Mission 5
最後のMissionでは前のMissionで作成したモデルの精度をさらに改善する方法を学びます。具体的には、データ作成とモデルの学習パラメータの調整に関して工夫を行うことになります。
ここでは前のTaskで作成した機械学習モデルの精度を改善するためにデータ量とモデルの学習パラメータを調整する方法を見ます。