ComenzarEmpieza gratis

Particionar datos con un efecto de grupo

Antes de poder ejecutar cualquier modelo, necesitas particionar tus datos en conjuntos de entrenamiento y de prueba. Hay una complicación con este conjunto de datos que impide que simplemente llames a sdf_random_split(). La complicación es que cada pista de un mismo artista debería aparecer en el mismo conjunto; tu modelo parecerá más preciso de lo que realmente es si usas pistas de un artista para entrenarlo y luego otras del mismo artista aparecen en el conjunto de prueba.

El truco para manejar esto es particionar solo los IDs de artista y después hacer un inner join de esos IDs particionados con el conjunto de datos original. Ten en cuenta que artist_id es más fiable que artist_name para particionar, ya que algunos artistas usan variaciones de su nombre entre pistas. Por ejemplo, Duke Ellington a veces tiene un nombre de artista "Duke Ellington", pero otras veces "Duke Ellington & His Orchestra", o alguna de varias variantes ortográficas.

Este ejercicio forma parte del curso

Introducción a Spark con sparklyr en R

Ver curso

Instrucciones del ejercicio

Se ha creado una conexión de Spark para ti como spark_conn. Se ha predefinido un tibble adjunto a los metadatos de pistas y a los datos de timbre combinados y filtrados almacenados en Spark como track_data_tbl.

  • Particiona los IDs de artista en conjuntos de entrenamiento y de prueba, asignando el resultado a training_testing_artist_ids.
    • Selecciona la columna artist_id de track_data_tbl.
    • Obtén las filas únicas.
    • Particiona esto en 70% entrenamiento y 30% prueba.
  • Haz un inner join del conjunto de entrenamiento con track_data_tbl por artist_id, asignando el resultado a track_data_to_model_tbl.
  • Haz un inner join del conjunto de prueba con track_data_tbl por artist_id, asignando el resultado a track_data_to_predict_tbl.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# 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 y ejecutar código