Evaluación del modelo mediante el MSE
Después de generar las valoraciones previstas a partir de los datos de prueba utilizando el modelo ALS, en esta última parte del ejercicio prepararás los datos para calcular el error cuadrático medio (MSE) del modelo. El MSE es el valor medio de (original rating – predicted rating)**2
para todos los usuarios e indica el ajuste absoluto del modelo a los datos.
Para hacer esto, primero organizarás los RDD ratings_final
y predictions
para formar una tupla de ((user, product), rating)). En ambos RDD, la asignación es:
0: user
1: product
2: rating
A continuación, unirás los RDD transformados y, por último, aplicarás una función de diferencia de cuadrados junto con mean()
para obtener el MSE.
Recuerda que tienes sc
de SparkContext disponible en tu espacio de trabajo. ratings_final
y el RDD predictions
también están ya disponibles en tu espacio de trabajo.
Este ejercicio forma parte del curso
Fundamentos de big data con PySpark
Instrucciones de ejercicio
- Organiza el RDD
ratings
para hacer((user, product), rating)
. - Organiza el RDD
predictions
para hacer((user, product), rating)
. - Une el RDD de previsión con el RDD de valoraciones.
- Evalúa el modelo utilizando el MSE entre la valoración original y la valoración prevista e imprímelo.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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(____))