CommencezCommencez gratuitement

Calculer la parcimonie

Comme vous le savez, ALS fonctionne bien avec des jeux de données clairsemés. Voyons quelle proportion de la matrice ratings est en fait vide.

Rappelez‑vous que la parcimonie se calcule par le nombre de cellules d'une matrice qui contiennent une note, divisé par le nombre total de valeurs que cette matrice pourrait contenir compte tenu du nombre d'utilisatrices et d'utilisateurs et d'articles (films). Autrement dit, diviser le nombre de notes présentes dans la matrice par le produit du nombre d'utilisatrices et d'utilisateurs et du nombre de films dans la matrice, puis soustraire ce résultat de 1, vous donnera la parcimonie, c'est‑à‑dire le pourcentage de la matrice ratings qui est vide.

Cette activité fait partie du cours

Créer des moteurs de recommandation avec PySpark

Voir le cours

Instructions de l’exercice

  • Calculez le numerator de la mesure de parcimonie en comptant le nombre total de notes présentes dans la matrice ratings.
  • Calculez le nombre de distinct() userIds et de distinct() movieIds dans la matrice ratings.
  • Calculez le denominator de la mesure de parcimonie en multipliant le nombre d'utilisatrices et d'utilisateurs par le nombre de films dans la matrice ratings.
  • Calculez et affichez la parcimonie en divisant le numerator par le denominator, en soustrayant le résultat de 1 et en multipliant par 100. Le 1.0 est ajouté pour s'assurer que la parcimonie est renvoyée sous forme de décimal et non d'entier.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Count the total number of ratings in the dataset
numerator = ____.select("____").count()

# Count the number of distinct userIds and distinct movieIds
num_users = ____.select("____").____().count()
num_movies = ____.select("____").____().count()

# Set the denominator equal to the number of users multiplied by the number of movies
denominator = ____ * ____

# Divide the numerator by the denominator
sparsity = (1.0 - (____ *1.0)/____)*100
print("The ratings dataframe is ", "%.2f" % sparsity + "% empty.")
Modifier et exécuter le code