ÎncepețiÎncepe gratuit

Calculează densitatea datelor

Cum știi deja, ALS funcționează bine cu seturi de date rare (sparse). Să vedem cât de mult din matricea ratings este, de fapt, goală.

Reține că densitatea datelor (sparsity) se calculează ca numărul de celule din matrice care conțin o evaluare, împărțit la numărul total de valori pe care matricea le-ar putea conține, ținând cont de numărul de utilizatori și de filme (articole). Cu alte cuvinte, împărțind numărul de evaluări prezente în matrice la produsul dintre utilizatori și filme, apoi scăzând rezultatul din 1, obținem densitatea datelor – adică procentul din matricea ratings care este gol.

Acest exercițiu face parte din cursul

Construiește motoare de recomandare cu PySpark

Vezi cursul

Instrucțiuni pentru exercițiu

  • Calculează numerator-ul metricii de densitate a datelor numărând totalul evaluărilor din matricea ratings.
  • Calculează numărul de userIds distinct() și de movieIds distinct() din matricea ratings.
  • Calculează denominator-ul metricii de densitate a datelor înmulțind numărul de utilizatori cu numărul de filme din matricea ratings.
  • Calculează și afișează densitatea datelor împărțind numerator la denominator, scăzând rezultatul din 1 și înmulțind cu 100. Valoarea 1.0 este adăugată pentru a te asigura că rezultatul este returnat ca număr zecimal, nu ca număr întreg.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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.")
Editează și rulează codul