Grup etkisiyle veriyi bölme
Herhangi bir model çalıştırmadan önce, verilerini eğitim ve test kümelerine ayırman gerekir. Bu veri kümesinde, sadece sdf_random_split() çağırmana engel olan bir durum var. Sorun şu: Tek bir sanatçının tüm parçaları aynı kümede yer almalı; eğer bir sanatçının parçaları modelin eğitiminde kullanılıp sonra test kümesinde de görünürse, modelin gerçekte olduğundan daha isabetliymiş gibi görünebilir.
Bunu çözmenin püf noktası, yalnızca sanatçı kimliklerini (artist ID) bölmek ve ardından bu bölünmüş kimlikleri orijinal veri kümesiyle inner join yapmaktır. artist_id, parçalar arasında bazı sanatçıların adlarında varyasyonlar kullandığı için, bölme işlemi için artist_name'den daha güvenilirdir. Örneğin, Duke Ellington bazen "Duke Ellington" sanatçı adına sahipken, diğer zamanlarda "Duke Ellington & His Orchestra" ya da birkaç yazım varyantından birini kullanır.
Bu egzersiz, kursun bir parçasıdır
R ile sparklyr kullanarak Spark’a Giriş
Egzersiz talimatları
spark_conn olarak bir Spark bağlantısı senin için oluşturuldu. Spark'ta depolanan, birleştirilmiş ve filtrelenmiş parça metadataları/tını verisine bağlı bir tibble track_data_tbl olarak önceden tanımlandı.
- Sanatçı kimliklerini eğitim ve test kümelerine ayır ve sonucu
training_testing_artist_idsolarak ata.track_data_tbliçindekiartist_idsütununu seç.- Tekil satırları al.
- Bunu %70 eğitim ve %30 test olacak şekilde böl.
- Eğitim veri kümesini
artist_idiletrack_data_tblüzerine inner join yap ve sonucutrack_data_to_model_tblolarak ata. - Test veri kümesini
artist_idiletrack_data_tblüzerine inner join yap ve sonucutrack_data_to_predict_tblolarak ata.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
# 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
___