Avaliação do modelo usando MSE
Depois de gerar as classificações previstas a partir dos dados de teste usando o modelo ALS, nesta parte final do exercício, você preparará os dados para calcular o erro quadrático médio (MSE) do modelo. O MSE é o valor médio do (original rating – predicted rating)**2 para todos os usuários e indica o ajuste absoluto do modelo aos dados.
Para fazer isso, primeiro você organizará os RDDs ratings_final e predictions para formar uma tupla de ((user, product), rating)). Em ambos os RDDs, o mapeamento é:
0: user
1: product
2: rating
Em seguida, você unirá os RDDs transformados e, por fim, aplicará uma função de diferença ao quadrado junto com mean() para obter o MSE.
Lembre-se de que você tem um SparkContext sc disponível em seu espaço de trabalho. Além disso, ratings_final e predictions RDD já estão disponíveis em seu espaço de trabalho.
Este exercício faz parte do curso
Fundamentos de Big Data com PySpark
Instruções do exercício
- Organize o RDD
ratingspara criar((user, product), rating). - Organize o RDD
predictionspara criar((user, product), rating). - Faça a junção do RDD de previsão com o RDD de classificações.
- Avalie o modelo usando o MSE entre a classificação original e a classificação prevista e imprima.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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(____))