सतत वैरिएबल्स को श्रेणीय में बदलना (2)
पिछले ट्रांसफॉर्मेशन का एक खास रूप यह है कि किसी सतत वैरिएबल को ऐसे बकेट्स में काटा जाए जिनकी सीमाएँ उसी वैरिएबल के क्वांटाइल्स से तय हों. इस ट्रांसफॉर्मेशन का आम उपयोग सर्वे प्रतिक्रियाओं या रिव्यू स्कोर का विश्लेषण करने में होता है. यदि आप लोगों से 1 से 5 स्टार में रेटिंग माँगते हैं, तो अक्सर माध्यिका प्रतिक्रिया 3 स्टार नहीं होती. ऐसे में, उनके स्कोर को क्वांटाइल के आधार पर बाँटना उपयोगी हो सकता है. उदाहरण के लिए, आप 0th, 20th, 40th, 60th, 80th, और 100th परसेंटाइल पर काटकर पाँच क्विंटाइल समूह बना सकते हैं.
Base R में इसका तरीका cut() + quantile() है. sparklyr में इसका समकक्ष ft_quantile_discretizer() ट्रांसफॉर्मेशन है. यह num_buckets आर्ग्युमेंट लेता है, जो बकेट्स की संख्या तय करता है. Base R और sparklyr दोनों के तरीके साथ दिखाए गए हैं. पहले की तरह, right = FALSE और include.lowest सेट किए गए हैं.
survey_response_group <- cut(
survey_score,
breaks = quantile(survey_score, c(0, 0.25, 0.5, 0.75, 1)),
labels = c("hate it", "dislike it", "like it", "love it"),
right = FALSE,
include.lowest = TRUE
)
survey_data %>%
ft_quantile_discretizer("survey_score", "survey_response_group", num_buckets = 4)
ft_bucketizer() की तरह ही, बनने वाले बिन्स संख्याएँ होती हैं, जो शून्य से गिनना शुरू करती हैं. यदि आप इनके साथ R में काम करना चाहें, तो इन्हें स्पष्ट रूप से factor में बदलें.
यह अभ्यास पाठ्यक्रम का हिस्सा है
R में sparklyr के साथ Spark परिचय
अभ्यास निर्देश
आपके लिए spark_conn नाम से Spark कनेक्शन बना दिया गया है. Spark में संग्रहीत ट्रैक मेटाडेटा से जुड़ी एक tibble पहले से track_metadata_tbl के रूप में परिभाषित है. duration_labels समय-लंबाई का वर्णन करने वाला एक कैरेक्टर वेक्टर है.
track_metadata_tblसेfamiliarity_by_durationनाम का एक वैरिएबल बनाएँ.durationऔरartist_familiarityफ़ील्ड्स चुनें.ft_quantile_discretizer()का उपयोग करकेdurationके 5 क्वांटाइल बिन्स से बना नया फ़ील्डduration_binबनाएँ.- परिणाम को collect करें.
duration_binफ़ील्ड कोduration_labelsलेबल्स के साथ फ़ैक्टर में बदलें.
duration_binके अनुसारartist_familiarityकाggplot()बॉक्स प्लॉट बनाइए.ggplot()का पहला आर्ग्युमेंट डेटा होता है:familiarity_by_duration.ggplot()का दूसरा आर्ग्युमेंट एस्थेटिक है, जिसमेंaes()के अंदरduration_binऔरartist_familiarityपास करें.- बार्स ड्रॉ करने के लिए
geom_boxplot()जोड़ें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# track_metadata_tbl, duration_labels have been pre-defined
track_metadata_tbl
duration_labels
familiarity_by_duration <- track_metadata_tbl %>%
# Select duration and artist_familiarity
___ %>%
# Bucketize duration
___ %>%
# Collect the result
___ %>%
# Convert duration bin to factor
___
# Draw a boxplot of artist_familiarity by duration_bin
ggplot(___, aes(___, ___)) +
___()