1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wprowadzenie do Spark z pakietem sparklyr w R

Connected

ćwiczenie

Podział danych z uwzględnieniem efektu artysty

Zanim uruchomisz jakikolwiek model, musisz podzielić dane na zbiór treningowy i testowy. Ten zbiór danych kryje jednak pewną pułapkę – nie możesz po prostu wywołać sdf_random_split(). Problem polega na tym, że wszystkie utwory danego artysty powinny trafić do tego samego zbioru. Jeśli niektóre utwory artysty zostaną użyte do trenowania modelu, a inne znajdą się w zbiorze testowym, model będzie wyglądał na dokładniejszy, niż jest w rzeczywistości.

Rozwiązaniem jest podzielenie wyłącznie identyfikatorów artystów, a następnie połączenie tych podzielonych identyfikatorów z oryginalnym zbiorem danych za pomocą łączenia wewnętrznego. Warto pamiętać, że artist_id jest bardziej wiarygodne niż artist_name przy podziale danych, ponieważ niektórzy artyści używają różnych wariantów swojego imienia w różnych utworach. Na przykład Duke Ellington bywa zapisywany jako "Duke Ellington", ale w innych przypadkach pojawia się jako "Duke Ellington & His Orchestra" lub w jednym z kilku wariantów ortograficznych.

Instrukcje

100 XP

Połączenie ze Sparkiem zostało już utworzone i jest dostępne jako spark_conn. Tibble powiązana z połączonymi i przefiltrowanymi danymi o utworach (metadane i cechy barwy dźwięku) przechowywanymi w Sparku jest wstępnie zdefiniowana jako track_data_tbl.

  • Podziel identyfikatory artystów na zbiory treningowy i testowy, przypisując wynik do zmiennej training_testing_artist_ids.
    • Wybierz kolumnę artist_id z track_data_tbl.
    • Pobierz unikatowe wiersze.
    • Podziel dane na 70% treningowych i 30% testowych.
  • Wykonaj łączenie wewnętrzne zbioru treningowego z track_data_tbl po kolumnie artist_id, przypisując wynik do track_data_to_model_tbl.
  • Wykonaj łączenie wewnętrzne zbioru testowego z track_data_tbl po kolumnie artist_id, przypisując wynik do track_data_to_predict_tbl.