Comece agoraComece grátis

Calcular a esparsidade

Como você sabe, o ALS funciona bem com conjuntos de dados esparsos. Vamos ver quanto da matriz de ratings está realmente vazia.

Lembre-se de que a esparsidade é calculada pelo número de células em uma matriz que contêm uma avaliação dividido pelo total de valores que essa matriz poderia ter, dado o número de usuários e itens (filmes). Em outras palavras, dividir o número de avaliações presentes na matriz pelo produto de usuários e filmes na matriz e subtrair esse valor de 1 nos dá a esparsidade, ou a porcentagem da matriz de ratings que está vazia.

Este exercicio faz parte do curso

Construindo mecanismos de recomendação com PySpark

Ver curso

Instruções do exercicio

  • Calcule o numerator da métrica de esparsidade contando o número total de avaliações contidas na matriz ratings.
  • Calcule o número de distinct() userIds e distinct() movieIds na matriz ratings.
  • Calcule o denominator da métrica de esparsidade multiplicando o número de usuários pelo número de filmes na matriz ratings.
  • Calcule e imprima a esparsidade dividindo o numerator pelo denominator, subtraindo de 1 e multiplicando por 100. O 1.0 é adicionado para garantir que a esparsidade seja retornada como decimal e não como inteiro.

exercicio interativo prático

Tente este exercicio completando este código de exemplo.

# 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.")
Editar e Executar Código