始める無料で始める

ALS モデルを作成する

最初の ALS モデルを指定しましょう。以下のコードを完成させて、最初の ALS モデルを構築します。

ratings データフレームでは .columns メソッドを使うと、ユーザー、映画、評価データを含む列名を確認できます。Spark が ALS を正しく実行するには、これらの列名を指定する必要があります。

この演習はコースの一部です

PySpark で作る Recommendation Engines

コースを見る

演習の手順

  • ALS モデルを構築する前に、データを学習用とテスト用に分割します。randomSplit() メソッドを使い、ratings データフレームをそれぞれ 0.8/0.2 の比率で training_datatest_data に分割し、乱数生成器の seed42 に設定します。
  • どの列が userColitemColratingCol を含むかを Spark に伝えます。必要に応じて .columns メソッドを使ってください。ハイパーパラメータも設定します。rank は 10、maxIter は 15、regParam(ラムダ)は 0.1、coldStartStrategy"drop"nonnegativeTrue、そしてデータは明示的な評価を含むので、implicitPrefsFalse に設定します。
  • 提供された training_data に対して als.fit() メソッドを呼び出し、ratings データの学習用部分に als モデルを当てはめます。学習済みモデルは model と名付けます。
  • 提供された test_data に対して model.transform() メソッドを呼び出し、ratings データのテスト用部分で予測を生成します。予測は test_predictions と名付けます。.show() メソッドで test_predictions を表示して確認しても構いません。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Split the ratings dataframe into training and test data
(training_data, test_data) = ratings.____([____, ____], seed=42)

# Set the ALS hyperparameters
from pyspark.ml.recommendation import ALS
als = ALS(userCol="____", itemCol="____", ratingCol="____", rank =____, maxIter =____, regParam =____,
          coldStartStrategy="____", nonnegative =____, implicitPrefs = ____)

# Fit the mdoel to the training_data
____ = ____.fit(____)

# Generate predictions on the test_data
____ = ____.transform(____)
test_predictions.show()
コードを編集して実行