जंगल

रैंडम फ़ॉरेस्ट (RF) डिसिज़न ट्री का ग्रुप होता है. इसमें हर डिसिज़न ट्री को किसी खास रैंडम नॉइज़ के साथ ट्रेनिंग दी जाती है. रैंडम फ़ॉरेस्ट, डिसिज़न ट्री असेंबल का सबसे लोकप्रिय रूप हैं. इस यूनिट में, स्वतंत्र डिसिज़न ट्री बनाने की कई तकनीकों के बारे में बताया गया है, ताकि रैंडम तरीके से भी असरदार जंगल बनाने की संभावनाओं को बढ़ाया जा सके.

बैगिंग

बैगिंग (bootstrap aggregateing) का मतलब है, हर डिसिज़न ट्री को ट्रेनिंग सेट में दिए गए उदाहरणों के रैंडम सबसेट पर ट्रेनिंग देना. दूसरे शब्दों में, किसी भी जंगल में डिसिज़न ट्री को अलग-अलग सबसेट के हिसाब से ट्रेनिंग दी जाती है.

बैगिंग खास है. हर डिसिज़न ट्री को ओरिजनल ट्रेनिंग सेट में दिए गए उदाहरणों की संख्या के हिसाब से ट्रेनिंग दी जाती है. उदाहरण के लिए, अगर मूल ट्रेनिंग सेट में 60 उदाहरण हैं, तो हर डिसिज़न ट्री को 60 उदाहरणों के हिसाब से ट्रेनिंग दी जाएगी. हालांकि, बैगिंग हर फ़ैसले के ट्री को सिर्फ़ उन उदाहरणों के सबसेट (आम तौर पर, 67%) पर ट्रेनिंग देता है. इसलिए, किसी दिए गए डिसीज़न ट्री को ट्रेनिंग देते समय, सबसेट में मौजूद उन 40 उदाहरणों में से कुछ को फिर से इस्तेमाल करना होगा. इस तरह के दोबारा इस्तेमाल को ट्रेनिंग "विद रिप्लेसमेंट" कहा जाता है.

उदाहरण के लिए, टेबल 6 में दिखाया गया है कि बैगिंग से, तीन डिसीज़न ट्री में छह उदाहरण कैसे बांटे जा सकते हैं. इन बातों पर ध्यान दें:

  • हर डिसिज़न ट्री कुल छह उदाहरणों के आधार पर तैयार किया जाता है.
  • हर डिसिज़न ट्री अलग-अलग उदाहरणों के हिसाब से तैयार किया जाता है.
  • हर डिसिज़न ट्री में कुछ उदाहरणों का फिर से इस्तेमाल किया गया है. उदाहरण के लिए, डिसिज़न ट्री 1 की ट्रेनिंग में उदाहरण #4 का दो बार इस्तेमाल किया गया है. इसलिए, डिसिज़न ट्री 1 में उदाहरण #4 का सीखा गया वेट असरदार तरीके से दोगुना कर दिया गया है.

टेबल 6. तीन डिसिज़न ट्री में ट्रेनिंग के छह उदाहरण दिए गए हैं. हर नंबर से पता चलता है कि ट्रेनिंग के किसी उदाहरण (#1-6) को डिसिज़न ट्री (1-3) के ट्रेनिंग डेटासेट में कितनी बार दोहराया गया है.

ट्रेनिंग के उदाहरण
#1 #2 #3 #4 #5 #6
ओरिजनल डेटासेट 1 1 1 1 1 1
डिसिज़न ट्री 1 1 1 0 2 1 1
डिसिज़न ट्री 2 3 0 1 0 2 0
डिसिज़न ट्री 3 0 1 3 1 0 1

बैगिंग में, हर डिसिज़न ट्री को करीब-करीब हमेशा मूल ट्रेनिंग सेट में मौजूद उदाहरणों की कुल संख्या के हिसाब से ट्रेनिंग दी जाती है. हर डिसिज़न ट्री को ज़्यादा उदाहरणों या कम उदाहरणों के साथ ट्रेनिंग देने से, रैंडम फ़ॉरेस्ट की क्वालिटी खराब होती है.

हालांकि, यह बिना किसी क्रम के फ़ॉरेस्ट पेपर में मौजूद नहीं होता है, लेकिन उदाहरणों के सैंपल को कभी-कभी "रिप्लेसमेंट के बिना" किया जाता है. इसका मतलब है कि डिसिज़न ट्री ट्रेनिंग सेट में, ट्रेनिंग का एक उदाहरण एक से ज़्यादा बार नहीं दिखाया जा सकता. उदाहरण के लिए, पिछली टेबल में, सभी वैल्यू या तो 0 या 1 होंगी.

YDF कोड
YDF में दिए गए असाइनमेंट की जगह, दिए गए बिना भी ट्रेनिंग चालू की जा सकती है: bootstrap_training_dataset=False

एट्रिब्यूट सैंपलिंग

एट्रिब्यूट सैंपलिंग का मतलब है कि सभी उपलब्ध सुविधाओं में, सबसे अच्छी स्थिति देखने के बजाय, हर नोड पर सुविधाओं के सिर्फ़ एक रैंडम सबसेट की जांच की जाती है. टेस्ट की गई सुविधाओं के सेट को डिसिज़न ट्री के हर नोड पर रैंडम तरीके से सैंपल किया जाता है.

नीचे दिया गया डिसिज़न ट्री, एट्रिब्यूट / सुविधा का सैंपल दिखाता है. यहां डिसिज़न ट्री को पांच सुविधाओं (f1-f5) के साथ ट्रेनिंग दी गई है. नीले नोड जांची गई सुविधाओं को दिखाते हैं, जबकि सफ़ेद रंग के नोड को टेस्ट नहीं किया जाता. स्थिति को सबसे अच्छे टेस्ट सुविधाओं (लाल रंग की आउटलाइन से दिखाया गया है) से बनाया गया है.

तीन नोड, जिनमें से सभी पांच सुविधाएं दिखाते हैं. रूट नोड और इसका कोई एक चाइल्ड नोड, पांच में से तीन सुविधाओं की जांच करता है. दूसरा चाइल्ड नोड
पांच में से दो सुविधाओं का टेस्ट करता है.

इमेज 21. एट्रिब्यूट सैंपलिंग.

 

एट्रिब्यूट सैंपलिंग का अनुपात, रेगुलराइज़ेशन हाइपर पैरामीटर का एक अहम हिस्सा है. पिछली इमेज में ~3⁄5 अनुपात का इस्तेमाल किया गया है. कई रैंडम तरीके से जंगल लागू करने की जांच, डिफ़ॉल्ट रूप से, वर्गीकरण के लिए रिग्रेशन और sqrt(सुविधाओं की संख्या) की 1/3 सुविधा को टेस्ट करती है.

TF-DF में, नीचे दिए गए हाइपर पैरामीटर, एट्रिब्यूट सैंपलिंग को कंट्रोल करते हैं:

  • num_candidate_attributes
  • num_candidate_attributes_ratio

उदाहरण के लिए, अगर num_candidate_attributes_ratio=0.5 है, तो हर नोड पर आधी सुविधाओं की जांच की जाएगी.

डिसिज़न ट्री रेगुलराइज़ेशन की सुविधा बंद की जा रही है

किसी जंगल में लगे डिसिज़न ट्री को बिना काट-छांट के ट्रेनिंग दिया जाता है. (देखें ओवरफ़िटिंग और छंटाई). इसकी वजह से, ज़्यादा जटिल पेड़ उड़ते हैं और उनका अनुमान लगाने की क्वालिटी खराब होती है. अलग-अलग पेड़ों को नियमित करने के बजाय, पेड़ों को लगाया जाता है जो ज़्यादा सटीक अनुमान देती हैं.

हम expect कि किसी रैंडम फ़ॉरेस्ट की ट्रेनिंग और टेस्ट कितना सटीक है. किसी भी जंगल की ट्रेनिंग की ट्रेनिंग आम तौर पर बहुत ज़्यादा (कभी-कभी 100% के बराबर) होती है. हालांकि, किसी जंगल में बहुत ज़्यादा सटीक ट्रेनिंग करना सामान्य होता है और यह नहीं है कि रैंडम जंगल बहुत ज़्यादा फ़िट हैं.

बेगिंग और एट्रिब्यूट सैंपलिंग के दो सोर्स, यह तय करते हैं कि डिसिज़न ट्री के बीच किसी भी तरह का संबंध है या नहीं. इस आज़ादी से, अपनी ज़रूरत के हिसाब से अलग-अलग डिसिज़न ट्री को ज़्यादा से ज़्यादा सटीक बनाया जा सकता है. इस वजह से, अलग तरह का पहनावा ज़रूरत से ज़्यादा फ़िट नहीं होता. हम अगली इकाई में इस सामान्य प्रभाव के बारे में बताएंगे.

शुद्ध जंगल किसी भी स्तर की गहराई या एक लीफ़ के लिए निगरानी की कम से कम संख्या के बिना ट्रेनिंग लेते हैं. असल में, हर पत्ती के हिसाब से ज़्यादा से ज़्यादा गहराई और निगरानी की कम से कम संख्या को सीमित रखना फ़ायदेमंद होता है. डिफ़ॉल्ट रूप से, कई रैंडम फ़ॉरेस्ट इन डिफ़ॉल्ट का इस्तेमाल करते हैं:

  • ज़्यादा से ज़्यादा ~16 डेप्थ
  • हर लीफ़ के लिए, ऑब्ज़र्वेशन की कम से कम संख्या ~5 होती है.

इन हाइपर पैरामीटर को बेहतर बनाया जा सकता है.

YDF कोड
YDF's Tuner, हाइपर पैरामीटर को आसानी से ट्यून करने का एक तरीका है. ज़्यादा जानकारी के लिए, YDF का ट्यूनिंग ट्यूटोरियल देखें.

शोर की क्वालिटी

किसी भी आवाज़ से जंगल की क्वालिटी में सुधार क्यों हो सकता है? रैंडम नॉइज़ के फ़ायदे दिखाने के लिए, इमेज 22 में क्लासिकल (काटा गया) डिसिज़न ट्री और एक रैंडम जंगल का अनुमान दिखाया गया है. इसे इलिप्स पैटर्न वाली आसान द्वि-डाइमेंशन वाली समस्याओं के कुछ उदाहरणों के आधार पर तैयार किया गया है.

एलिप्स पैटर्न, डिसिज़न ट्री और डिसिज़न फ़ॉरेस्ट एल्गोरिदम के लिए काफ़ी मुश्किल हैं. इसलिए, इन्हें ऐक्सिस-अलाइन्ड कंडीशन के साथ सीखने में मदद मिलती है. ध्यान दें कि छांटे गए डिसिज़न ट्री को जंगल में रहने वाले रैंडम पेजों की क्वालिटी का अनुमान नहीं मिल सकता.

तीन इलस्ट्रेशन. ग्राउंड ट्रूथ के नाम वाला पहला इलस्ट्रेशन,
एक बेहतरीन दीर्घवृत्त है. दूसरा इलस्ट्रेशन, जिसे 'प्उन्ड डिसिज़न ट्री' के तौर पर लेबल किया गया है.
यह एक एलिप्स और रेक्टैंगल के बीच में है. तीसरा इलस्ट्रेशन,
जिसे रैंडम फ़ॉरेस्ट के नाम से लेबल किया गया है, लेकिन
यह कोई एलिप्स नहीं है, लेकिन यह 'प्रन्ड डिसीज़न ट्री' लेबल वाले
एलिप्स के काफ़ी करीब है.

इमेज 22. ज़मीनी हक और अनुमान के मुकाबले, किसी एक जंगल में काटे गए एक डिसिज़न ट्री और उसके अनुमानों के आधार पर जनरेट हुए अनुमान.

अगले प्लॉट में, रैंडम फ़ॉरेस्ट के पहले तीन बिना काटे गए डिसिज़न ट्री के अनुमान दिखाए गए हैं. इसका मतलब है कि डिसिज़न ट्री सभी को इनके कॉम्बिनेशन से ट्रेनिंग दी गई है:

  • बैगिंग
  • एट्रिब्यूट सैंपलिंग
  • काट-छांट करने की सुविधा को बंद कर रहा है

ध्यान दें कि इन तीन डिसिज़न ट्री के लिए दिए गए अनुमान, पहले दिए गए डेटा के काटे गए डिसीज़न ट्री के अनुमानों से खराब हैं. हालांकि, अलग-अलग डिसिज़न ट्री की गड़बड़ियां सिर्फ़ एक-दूसरे से जुड़ी होती हैं, इसलिए असरदार अनुमान लगाने के लिए, तीनों डिसिज़न ट्री एक साथ मिलकर काम करते हैं.

तीन बहुत तेज़ आवाज़ वाले एलिप्सिस.

इमेज 23. एक शानदार कलेक्शन बनाने के लिए, कम न बनाए गए तीन डिसिज़न ट्री.

रैंडम तरीके से जंगल के फ़ैसले लेने वाले पेड़ों की काट-छांट नहीं की जाती है. इसलिए, रैंडम तरीके से जंगल की ट्रेनिंग देने के लिए पुष्टि करने वाले डेटासेट की ज़रूरत नहीं होती है. व्यावहारिक तौर पर और खास तौर पर छोटे डेटासेट में, मॉडल को पूरे उपलब्ध डेटा के हिसाब से ट्रेनिंग दी जानी चाहिए.

किसी रैंडम फ़ॉरेस्ट को ट्रेनिंग देते समय, जैसे-जैसे ज़्यादा डिसिज़न ट्री जोड़े जाते हैं, वैसे-वैसे गड़बड़ी हमेशा कम होती जाती है. इसका मतलब है कि मॉडल की क्वालिटी हमेशा बेहतर होती जाती है. हां, ज़्यादा डिसिज़न ट्री हमेशा जोड़ने से किसी भी जंगल की गड़बड़ी कम हो जाती है. दूसरे शब्दों में, फ़ैसले लेने वाले ज़्यादा पेड़ जोड़ने से बेतरतीब जंगल ज़्यादा फ़िट नहीं हो सकते. कभी-कभी, मॉडल सिर्फ़ बेहतर होना बंद हो जाता है. लियो ब्रीमन कहते हैं, "रैंडम जंगल ज़्यादा फ़िट नहीं होते, क्योंकि ज़्यादा पेड़ जुड़ जाते हैं".

उदाहरण के लिए, नीचे दिए गए प्लॉट में रैंडम फ़ॉरेस्ट मॉडल का टेस्ट इवैलुएशन दिखाया गया है, क्योंकि ज़्यादा डिसिज़न ट्री जोड़े जाते हैं. नतीजे तेज़ी से तब तक बेहतर होते जाते हैं, जब तक कि नतीजे 0.865 के आस-पास नहीं आ जाते. हालांकि, ज़्यादा डिसिज़न ट्री जोड़ने से ज़्यादा सटीक नतीजे नहीं मिलते. दूसरे शब्दों में कहें,तो मॉडल ज़रूरत के हिसाब से सही नहीं होता. यह व्यवहार (ज़्यादातर) हमेशा सही और अलग-अलग हाइपर पैरामीटर से अलग होता है.

पिछले पैराग्राफ़ में बताया गया सटीक प्लॉट बनाम डिसिज़न ट्री की संख्या.

इमेज 24. किसी भी जगह के जंगल में, फ़ैसले लेने वाले ज़्यादा से ज़्यादा पेड़ जोड़े जाते हैं. इसलिए, सटीक जानकारी एक जैसी ही रहती है.