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
Instrucțiuni pentru exercițiu
- Calculează
numerator-ul metricii de densitate a datelor numărând totalul evaluărilor din matricearatings. - Calculează numărul de
userIdsdistinct()și demovieIdsdistinct()din matricearatings. - Calculează
denominator-ul metricii de densitate a datelor înmulțind numărul de utilizatori cu numărul de filme din matricearatings. - Calculează și afișează densitatea datelor împărțind
numeratorladenominator, scăzând rezultatul din 1 și înmulțind cu 100. Valoarea1.0este 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.")