CommencerCommencer gratuitement

Partitionner des données avec un effet de groupe

Avant de pouvoir exécuter des modèles, vous devez partitionner vos données en ensembles d’entraînement et de test. Il y a une particularité avec cet ensemble de données, qui fait que vous ne pouvez pas simplement appeler sdf_random_split(). La difficulté vient du fait que toutes les pistes d’un même artiste doivent apparaître dans le même ensemble ; votre modèle semblera plus précis qu’il ne l’est réellement si des pistes d’un artiste servent à l’entraîner puis réapparaissent dans l’ensemble de test.

L’astuce consiste à ne partitionner que les identifiants d’artistes, puis à faire une jointure interne de ces identifiants partitionnés avec l’ensemble de données d’origine. Notez que artist_id est plus fiable que artist_name pour la partition, car certains artistes utilisent des variantes de leur nom d’une piste à l’autre. Par exemple, Duke Ellington a parfois un nom d’artiste "Duke Ellington", mais d’autres fois "Duke Ellington & His Orchestra", ou encore l’une de plusieurs variantes orthographiques.

Cet exercice fait partie du cours

Introduction à Spark avec sparklyr en R

Afficher le cours

Instructions

Une connexion Spark a été créée pour vous sous le nom spark_conn. Une tibble reliée aux métadonnées de pistes et aux données de timbre combinées et filtrées stockées dans Spark a été pré-définie sous le nom track_data_tbl.

  • Partitionnez les identifiants d’artistes en ensembles d’entraînement et de test, et assignez le résultat à training_testing_artist_ids.
    • Sélectionnez la colonne artist_id de track_data_tbl.
    • Obtenez les lignes distinctes.
    • Partitionnez cela en 70 % entraînement et 30 % test.
  • Faites une jointure interne de l’ensemble d’entraînement avec track_data_tbl par artist_id, et assignez le résultat à track_data_to_model_tbl.
  • Faites une jointure interne de l’ensemble de test avec track_data_tbl par artist_id, et assignez le résultat à track_data_to_predict_tbl.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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
  ___
Modifier et exécuter le code