始める無料で始める

MSE を用いたモデル評価

テストデータから ALS モデルで予測評価値を生成したら、この演習の最後のパートでは、モデルの Mean Square Error (MSE) を計算するためのデータ準備を行います。MSE は、すべてのユーザーに対する (original rating – predicted rating)**2 の平均で、モデルがデータにどれだけ適合しているか(絶対的な当てはまり)を示します。

そのために、まず ratings_finalpredictions の両方の RDD を、((user, product), rating) のタプルになるように整理します。両方の RDD におけるマッピングは次のとおりです。

0: user
1: product
2: rating

次に、変換後の RDD を結合し、最後に二乗差の関数を適用してから mean() を使って MSE を求めます。

ワークスペースには SparkContext sc が用意されています。また、ratings_finalpredictions の RDD もすでに利用可能です。

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

PySparkで学ぶBig Data入門

コースを見る

演習の手順

  • ratings RDD を ((user, product), rating) の形に整理します。
  • predictions RDD を ((user, product), rating) の形に整理します。
  • prediction RDD を ratings RDD と結合します。
  • 元の rating と予測 rating の MSE を用いてモデルを評価し、結果を出力します。

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

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

# Prepare ratings data
rates = ratings_final.____(lambda r: ((r[0], r[1]), ____))

# Prepare predictions data
preds = predictions.____(lambda r: ((____, ____), ____))

# Join the ratings data with predictions data
rates_and_preds = rates.____(preds)

# Calculate and print MSE
MSE = rates_and_preds.____(lambda r: (r[1][0] - r[1]____)**2).mean()
print("Mean Squared Error of the model for the test data = {:.2f}".format(____))
コードを編集して実行