LoslegenKostenlos starten

Sparsamkeit berechnen

Wie du weißt, funktioniert ALS gut mit dünn besetzten (sparsity) Datensätzen. Schauen wir uns an, wie viel der ratings-Matrix tatsächlich leer ist.

Erinnere dich: Die Sparsamkeit berechnet sich aus der Anzahl der Zellen in einer Matrix, die eine Bewertung enthalten, geteilt durch die Gesamtzahl der Werte, die die Matrix basierend auf der Anzahl der Nutzer und Items (Filme) aufnehmen könnte. Anders gesagt: Wenn du die Anzahl der vorhandenen Bewertungen in der Matrix durch das Produkt aus Nutzern und Filmen in der Matrix teilst und das Ergebnis von 1 subtrahierst, erhältst du die Sparsamkeit bzw. den Prozentsatz der ratings-Matrix, der leer ist.

Diese Übung ist Teil des Kurses

<Kurs>Recommendation Engines mit PySpark erstellen</Kurs>
Kurs ansehen

Übungsanweisungen

  • Berechne den numerator der Sparsamkeitsmetrik, indem du die Gesamtzahl der Bewertungen in der ratings-Matrix zählst.
  • Ermittle die Anzahl der distinct() userIds und distinct() movieIds in der ratings-Matrix.
  • Berechne den denominator der Sparsamkeitsmetrik, indem du die Anzahl der Nutzer mit der Anzahl der Filme in der ratings-Matrix multiplizierst.
  • Berechne und gib die Sparsamkeit aus, indem du den numerator durch den denominator teilst, von 1 subtrahierst und mit 100 multiplizierst. Das 1.0 wird hinzugefügt, um sicherzustellen, dass die Sparsamkeit als Dezimalzahl und nicht als ganze Zahl zurückgegeben wird.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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.")
Code bearbeiten und ausführen