Oblicz rzadkość macierzy
Jak wiesz, ALS dobrze sprawdza się w przypadku rzadkich zbiorów danych. Sprawdźmy, jak duża część macierzy ratings jest w rzeczywistości pusta.
Pamiętaj, że rzadkość oblicza się jako stosunek liczby komórek macierzy zawierających ocenę do łącznej liczby wartości, które ta macierz mogłaby przechowywać, biorąc pod uwagę liczbę użytkowników i filmów. Innymi słowy, aby uzyskać rzadkość – czyli odsetek pustych komórek macierzy ratings – podziel liczbę ocen przez iloczyn liczby użytkowników i filmów, a następnie odejmij wynik od 1.
To ćwiczenie jest częścią kursu
Budowanie silników rekomendacji w PySpark
Instrukcje do ćwiczenia
- Oblicz
numerator(licznik) miary rzadkości, zliczając łączną liczbę ocen zawartych w macierzyratings. - Oblicz liczbę
distinct()wartościuserIdsidistinct()wartościmovieIdsw macierzyratings. - Oblicz
denominator(mianownik) miary rzadkości, mnożąc liczbę użytkowników przez liczbę filmów w macierzyratings. - Oblicz i wyświetl rzadkość, dzieląc
numeratorprzezdenominator, odejmując wynik od 1 i mnożąc przez 100. Wartość1.0jest dodana, aby wynik był zwrócony jako liczba dziesiętna, a nie całkowita.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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.")