Kom igångKom igång gratis

Partitionering av data med gruppeffekt

Innan du kan köra några modeller behöver du dela upp dina data i tränings- och testmängder. Det finns en komplikation med den här datamängden som gör att du inte bara kan anropa sdf_random_split(). Komplikationen är att alla spår av en och samma artist bör hamna i samma mängd – modellen kommer att verka mer träffsäker än den egentligen är om spår av en artist används vid träning och sedan dyker upp i testmängden.

Lösningen är att enbart partitionera artist-ID:n och sedan inner-joina de partitionerade ID:na till den ursprungliga datamängden. Observera att artist_id är mer tillförlitligt än artist_name för partitionering, eftersom vissa artister använder varianter av sitt namn på olika spår. Duke Ellington har till exempel ibland artistnamnet "Duke Ellington", men andra gånger "Duke Ellington & His Orchestra" eller någon av flera stavningsvarianter.

Den här övningen är en del av kursen

Introduktion till Spark med sparklyr i R

Visa kurs

Övningsinstruktioner

En Spark-anslutning har skapats åt dig som spark_conn. En tibble kopplad till den kombinerade och filtrerade spårmetadata/klangfärgsdatan som lagras i Spark har fördefinieras som track_data_tbl.

  • Partitionera artist-ID:na i tränings- och testmängder och tilldela resultatet till training_testing_artist_ids.
    • Välj kolumnen artist_id i track_data_tbl.
    • Hämta distinkta rader.
    • Partitionera detta i 70 % träning och 30 % testning.
  • Gör en inner join av träningsdatamängden med track_data_tblartist_id och tilldela resultatet till track_data_to_model_tbl.
  • Gör en inner join av testdatamängden med track_data_tblartist_id och tilldela resultatet till track_data_to_predict_tbl.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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
  ___
Redigera och kör kod