Začněte nyníZačněte zdarma

Rozdělení dat s ohledem na skupinový efekt

Předtím než spustíš jakýkoli model, je potřeba rozdělit data na trénovací a testovací sadu. Tento dataset ale přináší jeden háček, který znamená, že nemůžeš jednoduše zavolat sdf_random_split(). Problém spočívá v tom, že všechny skladby od jednoho umělce by měly skončit ve stejné sadě — pokud by se skladby stejného umělce objevily jak v trénovací, tak v testovací sadě, model by vypadal přesnější, než ve skutečnosti je.

Řešením je rozdělit pouze ID umělců a tato rozdělená ID pak inner joinem připojit k původnímu datasetu. Všimni si, že artist_id je pro rozdělení spolehlivější než artist_name, protože někteří umělci používají napříč skladbami různé varianty svého jména. Například Duke Ellington vystupuje někdy jako "Duke Ellington", jindy jako "Duke Ellington & His Orchestra", nebo v některé z dalších pravopisných variant.

Toto cvičení je součástí kurzu

Úvod do Sparku se sparklyr v R

Zobrazit kurz

Pokyny k cvičení

Spark připojení je pro tebe již připraveno jako spark_conn. Tibble připojená ke kombinovaným a vyfiltrovaným metadatům skladeb a datům o témbru uloženým ve Sparku je předem definována jako track_data_tbl.

  • Rozděl ID umělců na trénovací a testovací sadu a výsledek přiřaď do training_testing_artist_ids.
    • Vyber sloupec artist_id z track_data_tbl.
    • Získej unikátní řádky.
    • Rozděl je na 70 % trénovacích a 30 % testovacích dat.
  • Připoj trénovací dataset k track_data_tbl pomocí inner joinu podle artist_id a výsledek přiřaď do track_data_to_model_tbl.
  • Připoj testovací dataset k track_data_tbl pomocí inner joinu podle artist_id a výsledek přiřaď do track_data_to_predict_tbl.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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
  ___
Upravit a spustit kód