テスト/トレイン分割を作成して ALS モデルを構築する
前の章ですでに ALS モデルの作り方を学びました。ここでも同様に進めますが、今回はクロスバリデーション済みのモデルを完成させるために、いくつか追加の手順を踏みます。
まず、必要な関数をインポートし、クロスバリデーションの準備としてトレイン/テストのデータセットを作成しましょう。
この演習はコースの一部です
PySpark で作る Recommendation Engines
演習の手順
ml.evaluationからRegressionEvaluator、ml.recommendationからALSアルゴリズム、ml.tuningからParamGridBuilderとCrossValidatorをインポートします。ratingsデータに対してrandomSplitメソッドを使い、0.80/0.20 のトレイン/テスト分割を作成します。データセット名はtrainとtestとし、ランダムシードは1234に設定します。- ALS モデルを構築し、
ratingsデータフレーム内でuserCol、itemCol、ratingColに対応する列名を Spark に指定します。nonnegative引数はTrue、coldStartStrategyは"drop"、implicitPrefsではないことを示すためにimplicitPrefs引数はFalseに設定します。モデル名はalsとします。 alsに対してtype()関数を呼び出し、モデルが作成されたことを確認します。出力はモデルの型を示すはずです。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import the required functions
from pyspark.ml.evaluation import ____
from pyspark.ml.recommendation import ____
from pyspark.ml.tuning import ____, ____
# Create test and train set
(train, test) = ratings.___([0.____, 0.____], seed = ____)
# Create ALS model
als = ALS(userCol="____", itemCol="____", ratingCol="____", nonnegative = ____, implicitPrefs = ____)
# Confirm that a model called "als" was created
type(____)