ПочатиПочніть безкоштовно

Обчислення розрідженості

Як ви знаєте, ALS добре працює з розрідженими наборами даних. Подивімося, яка частка матриці ratings насправді порожня.

Пам'ятайте, що розрідженість обчислюється як кількість клітинок у матриці, що містять оцінку, поділена на загальну кількість значень, які ця матриця могла б містити з огляду на кількість користувачів і елементів (фільмів). Іншими словами, якщо поділити кількість наявних у матриці оцінок на добуток кількості користувачів і кількості фільмів у матриці та відняти це значення від 1, отримаємо розрідженість, тобто відсоток порожніх клітинок у матриці ratings.

Ця вправа є частиною курсу

Створення рушіїв рекомендацій у PySpark

Переглянути курс

Інструкції до вправи

  • Обчисліть numerator метрики розрідженості, підрахувавши загальну кількість оцінок у матриці ratings.
  • Обчисліть кількість distinct() userIds і distinct() movieIds у матриці ratings.
  • Обчисліть denominator метрики розрідженості, помноживши кількість користувачів на кількість фільмів у матриці ratings.
  • Обчисліть і виведіть розрідженість: поділіть numerator на denominator, відніміть результат від 1 і помножте на 100. Додайте 1.0, щоб гарантовано отримати десяткове число, а не ціле.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# 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.")
Редагувати та запускати код