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

ग्रेडिएंट बूस्टेड ट्रीज़: मॉडलिंग

ग्रेडिएंट बूस्टिंग अन्य मॉडलों के प्रदर्शन को बेहतर बनाने की तकनीक है। विचार यह है कि आप पहले एक कमजोर लेकिन जल्दी गणना होने वाला मॉडल चलाएँ। फिर आप रिस्पॉन्स वैल्यूज़ को उस मॉडल के रेजिडुअल से बदलें और एक दूसरा मॉडल फिट करें। मूल रिस्पॉन्स-प्रेडिक्शन मॉडल और नए रेजिडुअल-प्रेडिक्शन मॉडल को "जोड़" देने से एक अधिक सटीक मॉडल मिलता है। आप यह प्रक्रिया बार-बार दोहरा सकते हैं: हर बार पिछले मॉडल के रेजिडुअल की भविष्यवाणी करने के लिए नया मॉडल चलाएँ और परिणामों को जोड़ दें। हर इटरेशन के साथ मॉडल और मज़बूत होता जाता है।

और ठोस रूप में समझें तो, sparklyr ग्रेडिएंट बूस्टेड ट्रीज़ का उपयोग करता है, यानी निर्णय-ट्रीज़ को कमजोर लेकिन तेज़ मॉडल मानकर उन पर ग्रेडिएंट बूस्टिंग लगाई जाती है। इन्हें दोनों तरह की समस्याओं में इस्तेमाल किया जा सकता है: क्लासिफिकेशन (जहाँ रिस्पॉन्स वैरिएबल श्रेणीबद्ध होता है) और रिग्रेशन (जहाँ रिस्पॉन्स वैरिएबल सतत होता है)। रिग्रेशन के मामले में, जैसा कि आप यहाँ करेंगे, किसी पॉइंट के गलत फिट होने की मात्रा रेजिडुअल से मापी जाती है।

डिसीजन ट्रीज़ का विस्तार से वर्णन Supervised Learning in R: Classification और Supervised Learning in R: Regression कोर्सेज़ में है। दूसरे कोर्स में ग्रेडिएंट बूस्टिंग भी शामिल है।

sparklyr में ग्रेडिएंट बूस्टेड ट्रीज़ मॉडल चलाने के लिए ml_gradient_boosted_trees() कॉल करें। इस फंक्शन के उपयोग पर इस अध्याय के पहले अभ्यास में चर्चा हुई थी।

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

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

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

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

आपके लिए spark_conn के रूप में एक Spark कनेक्शन बनाया गया है। Spark में संग्रहीत संयुक्त और फ़िल्टर किए गए ट्रैक मेटाडेटा/टिम्बर डेटा से जुड़ा एक tibble पहले से track_data_to_model_tbl के रूप में परिभाषित है।

  • फीचर्स के रूप में उपयोग करने के लिए "timbre" स्ट्रिंग वाले कॉलम प्राप्त करें।
    • track_data_to_model_tbl के कॉलम नाम पाने के लिए colnames() का उपयोग करें। ध्यान दें कि names() वह परिणाम नहीं देगा जो आपको चाहिए।
    • कॉलम फ़िल्टर करने के लिए str_subset() का उपयोग करें।
    • उस फंक्शन के pattern आर्ग्युमेंट के रूप में fixed("timbre") दें।
    • परिणाम को feature_colnames में असाइन करें।
  • मॉडल के लिए formula को reformulate() से बनाएँ।
    • termlabels आर्ग्युमेंट (फॉर्मूला के इनपुट) feature_colnames होना चाहिए।
    • response आर्ग्युमेंट (फॉर्मूला का आउटपुट) "year" होना चाहिए।
    • परिणाम को year_formula में असाइन करें।
    • इस तरह reformulate() उपयोग करने से feature_colnames के सभी वैरिएबल्स दाईं ओर + से जुड़कर फॉर्मूला बनाते हैं। इसका परिणाम year ~ timbre1 + timbre2 + ... + timbre12 जैसा फॉर्मूला होता है, जो मॉडल में शामिल किए जाने वाले वैरिएबल्स के बीच संबंध को दर्शाता है।
  • ग्रेडिएंट बूस्टिंग मॉडल चलाएँ।
    • ml_gradient_boosted_trees() को केवल आपके बनाए year_formula आर्ग्युमेंट के साथ कॉल करें।
    • परिणाम को gradient_boosted_trees_model में असाइन करें।

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

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

# track_data_to_model_tbl has been pre-defined
track_data_to_model_tbl

feature_colnames <- track_data_to_model_tbl %>%
  # Get the column names
  ___ %>%
  # Limit to the timbre columns
  ___(___(___))

feature_colnames

# Create the formula for the model
year_formula <- ___

gradient_boosted_trees_model <- track_data_to_model_tbl %>%
  # Run the gradient boosted trees model
  ___
कोड संपादित करें और चलाएँ