Calcolare la sparsezza
Come sai, ALS funziona bene con insiemi di dati sparsi. Vediamo quanta parte della matrice ratings è effettivamente vuota.
Ricorda che la sparsezza si calcola come il numero di celle in una matrice che contengono una valutazione diviso per il numero totale di valori che la matrice potrebbe contenere dato il numero di utenti e di elementi (film). In altre parole, dividendo il numero di valutazioni presenti nella matrice per il prodotto tra utenti e film nella matrice e sottraendo il risultato da 1, otterrai la sparsezza, cioè la percentuale della matrice ratings che è vuota.
Questo esercizio fa parte del corso
Costruire motori di raccomandazione con PySpark
Istruzioni dell'esercizio
- Calcola il
numeratordella metrica di sparsezza contando il numero totale di valutazioni contenute nella matriceratings. - Calcola il numero di
distinct()userIdsedistinct()movieIdsnella matriceratings. - Calcola il
denominatordella metrica di sparsezza moltiplicando il numero di utenti per il numero di film nella matriceratings. - Calcola e stampa la sparsezza dividendo il
numeratorper ildenominator, sottraendo da 1 e moltiplicando per 100. Il1.0è aggiunto per assicurare che la sparsezza sia restituita come decimale e non come intero.
esercizio interattivo pratico
Prova questo esercizio completando questo codice di esempio.
# 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.")