Kom igångKom igång gratis

Beräkna glesheten

Som du vet fungerar ALS bra med glesa datamängder. Låt oss se hur stor del av ratings-matrisen som faktiskt är tom.

Kom ihåg att gleshet beräknas som antalet celler i en matris som innehåller ett betyg dividerat med det totala antalet värden som matrisen skulle kunna hålla givet antalet användare och objekt (filmer). Med andra ord: dividera antalet betyg i matrisen med produkten av användare och filmer i matrisen, och subtrahera sedan resultatet från 1 – det ger oss glesheten, det vill säga andelen av ratings-matrisen som är tom.

Den här övningen är en del av kursen

Bygg rekommendationsmotorer med PySpark

Visa kurs

Övningsinstruktioner

  • Beräkna numerator (täljaren) för glehetsmåttet genom att räkna det totala antalet betyg i ratings-matrisen.
  • Beräkna antalet distinct() userIds och distinct() movieIds i ratings-matrisen.
  • Beräkna denominator (nämnaren) för glehetsmåttet genom att multiplicera antalet användare med antalet filmer i ratings-matrisen.
  • Beräkna och skriv ut glesheten genom att dividera numerator med denominator, subtrahera från 1 och multiplicera med 100. 1.0 används för att säkerställa att glesheten returneras som ett decimaltal och inte ett heltal.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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.")
Redigera och kör kod