Inizia subitoInizia gratis

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

Visualizza corso

Istruzioni dell'esercizio

  • Calcola il numerator della metrica di sparsezza contando il numero totale di valutazioni contenute nella matrice ratings.
  • Calcola il numero di distinct() userIds e distinct() movieIds nella matrice ratings.
  • Calcola il denominator della metrica di sparsezza moltiplicando il numero di utenti per il numero di film nella matrice ratings.
  • Calcola e stampa la sparsezza dividendo il numerator per il denominator, sottraendo da 1 e moltiplicando per 100. Il 1.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.")
Modifica ed esegui il codice