Začněte nyníZačněte zdarma

Výpočet řídkosti

Jak už víš, ALS funguje dobře s řídkými datovými sadami. Podívejme se, kolik z matice ratings je ve skutečnosti prázdných.

Připomeňme, že řídkost se počítá jako podíl počtu buněk v matici, které obsahují hodnocení, a celkového počtu hodnot, které by matice mohla mít při daném počtu uživatelů a položek (filmů). Jinak řečeno: vydělíme počet přítomných hodnocení součinem počtu uživatelů a filmů v matici a výsledek odečteme od 1 — tím získáme řídkost, tedy procentuální podíl prázdných buněk v matici ratings.

Toto cvičení je součástí kurzu

Tvorba doporučovacích systémů s PySparkem

Zobrazit kurz

Pokyny k cvičení

  • Vypočítej numerator (čitatel) metriky řídkosti tak, že spočítáš celkový počet hodnocení obsažených v matici ratings.
  • Vypočítej počet distinct() userIds a distinct() movieIds v matici ratings.
  • Vypočítej denominator (jmenovatel) metriky řídkosti vynásobením počtu uživatelů počtem filmů v matici ratings.
  • Vypočítej a vypiš řídkost tak, že vydělíš numerator hodnotou denominator, výsledek odečteš od 1 a vynásobíš 100. Hodnota 1.0 je přidána proto, aby byl výsledek vrácen jako desetinné číslo, a ne jako celé číslo.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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.")
Upravit a spustit kód