ग्रुप इफेक्ट के साथ डेटा का पार्टिशनिंग
किसी भी मॉडल को चलाने से पहले, आपको अपने डेटा को training और testing सेट में पार्टिशन करना होगा। इस डेटासेट में एक जटिलता है, जिसका मतलब है कि आप बस sdf_random_split() नहीं चला सकते। दिक्कत यह है कि किसी एक ही कलाकार के सभी ट्रैक एक ही सेट में होने चाहिए; यदि किसी कलाकार के ट्रैक्स से मॉडल train किया जाए और वही कलाकार testing सेट में भी आ जाए, तो आपका मॉडल हकीकत से ज्यादा सटीक दिखाई देगा।
इससे निपटने की तरकीब यह है कि पहले सिर्फ artist IDs को पार्टिशन करें, फिर उन पार्टिशन किए गए IDs को मूल डेटासेट से inner join कर दें। ध्यान दें कि पार्टिशनिंग के लिए artist_id, artist_name से ज्यादा भरोसेमंद है, क्योंकि कुछ कलाकार अलग-अलग ट्रैक्स में अपने नाम के रूपांतर इस्तेमाल करते हैं। उदाहरण के लिए, Duke Ellington कभी "Duke Ellington" के रूप में आता है, तो कभी "Duke Ellington & His Orchestra" या वर्तनी के अन्य रूपों में।
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में sparklyr के साथ Spark परिचय
अभ्यास निर्देश
आपके लिए spark_conn नाम से एक Spark कनेक्शन बना दिया गया है। Spark में स्टोर की गई संयुक्त और फ़िल्टर की गई track metadata/timbre डेटा पर आधारित एक tibble पहले से track_data_tbl के रूप में परिभाषित है।
- artist IDs को training और testing सेट में पार्टिशन करें, और परिणाम
training_testing_artist_idsको असाइन करें।track_data_tblकेartist_idकॉलम को चुनें।- distinct पंक्तियाँ लें।
- इसे 70% training और 30% testing में पार्टिशन करें।
- training डेटासेट को
artist_idके आधार परtrack_data_tblसे inner join करें, और परिणामtrack_data_to_model_tblको असाइन करें। - testing डेटासेट को
artist_idके आधार परtrack_data_tblसे inner join करें, और परिणामtrack_data_to_predict_tblको असाइन करें।
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# 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
___