ALS モデルを作成する
最初の ALS モデルを指定しましょう。以下のコードを完成させて、最初の ALS モデルを構築します。
ratings データフレームでは .columns メソッドを使うと、ユーザー、映画、評価データを含む列名を確認できます。Spark が ALS を正しく実行するには、これらの列名を指定する必要があります。
この演習はコースの一部です
PySpark で作る Recommendation Engines
演習の手順
- ALS モデルを構築する前に、データを学習用とテスト用に分割します。
randomSplit()メソッドを使い、ratingsデータフレームをそれぞれ 0.8/0.2 の比率でtraining_dataとtest_dataに分割し、乱数生成器のseedは42に設定します。 - どの列が
userCol、itemCol、ratingColを含むかを Spark に伝えます。必要に応じて.columnsメソッドを使ってください。ハイパーパラメータも設定します。rankは 10、maxIterは 15、regParam(ラムダ)は 0.1、coldStartStrategyは"drop"、nonnegativeはTrue、そしてデータは明示的な評価を含むので、implicitPrefsはFalseに設定します。 - 提供された
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()