शुरू करेंमुफ़्त में शुरू करें

सतत वैरिएबल्स को logical में बदलना

Logical वैरिएबल अच्छे होते हैं क्योंकि कई बार चीज़ों के बारे में "हाँ या नहीं" के रूप में सोचना संख्यात्मक रूप में सोचने से आसान होता है। उदाहरण के लिए, अगर कोई आपसे पूछे "क्या आप चाय लेंगे?", तो हाँ या नहीं का जवाब "मेरे चाय लेने की संभावना 0.73 है" से बेहतर है। इसका उपयोग डेटा साइंस में भी होता है। जैसे, डायबिटीज़ की जाँच में किसी मरीज़ के रक्त प्लाज़्मा में ग्लूकोज़ का स्तर एक संख्या के रूप में आ सकता है। वास्तविक सवाल है: "क्या मरीज़ को डायबिटीज़ है?" इसलिए आपको किसी थ्रेशहोल्ड के आधार पर उस संख्या को logical मान में बदलना पड़ता है।

Base R में यह काफ़ी सरलता से कुछ ऐसे किया जाता है:

threshold_mmol_per_l <- 7
has_diabetes <- plasma_glucose_concentration > threshold_mmol_per_l

sparklyr के सभी फीचर ट्रांसफ़ॉर्मेशन फंक्शनों का यूज़र इंटरफ़ेस समान होता है। पहले तीन आर्ग्युमेंट हमेशा एक Spark tibble, इनपुट कॉलम का नाम बताने वाली एक string, और आउटपुट कॉलम का नाम बताने वाली एक string होते हैं। अर्थात्, वे इस पैटर्न का पालन करते हैं।

a_tibble %>%
  ft_some_transformation("x", "y", some_other_args)

सतत वैरिएबल को logical में बदलने का sparklyr तरीका ft_binarizer() है। ऊपर वाले डायबिटीज़ उदाहरण को नीचे की तरह लिखा जा सकता है। ध्यान दें कि threshold मान एक संख्या होना चाहिए, डेटासेट में किसी कॉलम को संदर्भित करने वाली string नहीं।

diabetes_data %>%
  ft_binarizer("plasma_glucose_concentration", "has_diabetes", threshold = threshold_mmol_per_l)

Spark की "हर जगह DoubleType" वाली फिलॉसफ़ी के अनुरूप, ft_binarizer() का आउटपुट वास्तव में logical नहीं होता; वह numeric होता है। यह सही है जब तक आप Spark में आगे की ट्रांसफ़ॉर्मेशंस करना चाहते हैं, लेकिन अगर आपको R में डेटा प्रोसेस करना है, तो याद रखें कि आपको डेटा को explicitly logical में बदलना होगा। नीचे दिया गया कोड एक आम पैटर्न है।

a_tibble %>%
  ft_binarizer("x", "is_x_big", threshold = threshold) %>%
  collect() %>%
  mutate(is_x_big = as.logical(is_x_big))

इस अभ्यास में बेहूदे नाम वाले artist_hotttnesss फ़ील्ड का उपयोग किया गया है, जो बताता है कि डेटासेट बनाए जाने के समय किसी आर्टिस्ट का मीडिया बज़ कितना था। अगर आप ggplot2 पैकेज से प्लॉट बनाना सीखना चाहते हैं, तो Introduction to Data Visualization with ggplot2 कोर्स देखिए।

यह अभ्यास पाठ्यक्रम का हिस्सा है

R में sparklyr के साथ Spark परिचय

पाठ्यक्रम देखें

अभ्यास निर्देश

आपके लिए spark_conn नाम का Spark कनेक्शन बना दिया गया है। Spark में स्टोर ट्रैक मेटाडेटा से जुड़ी एक tibble पहले से track_metadata_tbl के रूप में दी गई है।

  • track_metadata_tbl से hotttnesss नाम का वैरिएबल बनाएँ।
    • artist_hotttnesss फ़ील्ड चुनें।
    • ft_binarizer() का उपयोग करके is_hottt_or_nottt नाम का नया फ़ील्ड बनाएँ, जो तब true हो जब artist_hotttnesss 0.5 से अधिक हो।
    • परिणाम को collect करें।
    • is_hottt_or_nottt फ़ील्ड को logical में बदलें।
  • is_hottt_or_nottt का ggplot() बार प्लॉट बनाएँ।
    • ggplot() का पहला आर्ग्युमेंट data आर्ग्युमेंट hotttnesss है।
    • ggplot() का दूसरा आर्ग्युमेंट aesthetic है, यानी aes() में लिपटा is_hottt_or_nottt
    • बार्स बनाने के लिए geom_bar() जोड़ें।

इंटरैक्टिव व्यावहारिक अभ्यास

इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।

# track_metadata_tbl has been pre-defined
track_metadata_tbl

hotttnesss <- track_metadata_tbl %>%
  # Select artist_hotttnesss
  ___ %>%
  # Binarize to is_hottt_or_nottt
  ___ %>%
  # Collect the result
  ___ %>%
  # Convert is_hottt_or_nottt to logical
  ___

# Draw a barplot of is_hottt_or_nottt
ggplot(___, aes(___)) +
  ___()
कोड संपादित करें और चलाएँ