ComeçarComece de graça

Particionando dados com efeito de grupo

Antes de executar qualquer modelo, você precisa particionar seus dados em conjuntos de treinamento e teste. Há uma complicação neste conjunto de dados que impede você de simplesmente chamar sdf_random_split(). A questão é que todas as faixas de um mesmo artista devem aparecer no mesmo conjunto; seu modelo pode parecer mais preciso do que realmente é se faixas de um artista forem usadas para treinar o modelo e depois aparecerem no conjunto de teste.

O truque aqui é particionar apenas os IDs de artista e, em seguida, fazer um inner join desses IDs particionados com o conjunto de dados original. Observe que artist_id é mais confiável do que artist_name para particionar, já que alguns artistas usam variações do nome entre faixas. Por exemplo, Duke Ellington às vezes aparece como "Duke Ellington", mas em outras vezes como "Duke Ellington & His Orchestra", ou com algumas variantes de grafia.

Este exercício faz parte do curso

Introdução ao Spark com sparklyr em R

Ver curso

Instruções do exercício

Uma conexão Spark foi criada para você como spark_conn. Uma tibble vinculada aos metadados de faixa combinados/filtrados e aos dados de timbre armazenados no Spark foi predefinida como track_data_tbl.

  • Particione os IDs de artista em conjuntos de treinamento e teste, atribuindo o resultado a training_testing_artist_ids.
    • Selecione a coluna artist_id de track_data_tbl.
    • Obtenha apenas as linhas distintas.
    • Particione em 70% para treinamento e 30% para teste.
  • Faça um inner join do conjunto de treinamento com track_data_tbl por artist_id, atribuindo o resultado a track_data_to_model_tbl.
  • Faça um inner join do conjunto de teste com track_data_tbl por artist_id, atribuindo o resultado a track_data_to_predict_tbl.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# track_data_tbl has been pre-defined
track_data_tbl

training_testing_artist_ids <- track_data_tbl %>%
  # Select the artist ID
  ___ %>%
  # Get distinct rows
  ___ %>%
  # Partition into training/testing sets
  ___

track_data_to_model_tbl <- track_data_tbl %>%
  # Inner join to training partition
  ___

track_data_to_predict_tbl <- track_data_tbl %>%
  # Inner join to testing partition
  ___
Editar e executar o código