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