इस यूनिट में इन विषयों की जांच की गई है:
- रैंडम फ़ॉरेस्ट को समझना
- रैंडम फ़ॉरेस्ट को ट्रेनिंग देना
- रैंडम फ़ॉरेस्ट के फ़ायदे और नुकसान
रैंडम फ़ॉरेस्ट का विश्लेषण करना
डिसिज़न ट्री की तुलना में, रैंडम फ़ॉरेस्ट को समझना ज़्यादा मुश्किल होता है. रैंडम फ़ॉरेस्ट में, रैंडम नॉइज़ के साथ ट्रेन किए गए डिसिज़न ट्री होते हैं. इसलिए, डिसीज़न ट्री के स्ट्रक्चर के आधार पर फ़ैसले लेना मुश्किल होता है. हालांकि, हम रैंडम फ़ॉरेस्ट मॉडल का विश्लेषण कुछ तरीकों से कर सकते हैं.
रैंडम फ़ॉरेस्ट का विश्लेषण करने का एक तरीका यह है कि सीएआरटी एल्गोरिदम की मदद से, डिसिज़न ट्री को ट्रेनिंग दें और उसका विश्लेषण करें. रैंडम फ़ॉरेस्ट और सीएआरटी, दोनों को एक ही मुख्य एल्गोरिदम के साथ ट्रेन किया जाता है. इसलिए, ये डेटासेट का "एक ही ग्लोबल व्यू शेयर करते हैं". यह विकल्प, आसान डेटासेट के लिए और मॉडल के बारे में पूरी जानकारी पाने के लिए अच्छा काम करता है.
वैरिएबल की अहमियत, मॉडल को समझने का एक और अच्छा तरीका है. उदाहरण के लिए, नीचे दी गई टेबल में, सेंसस डेटासेट (इसे Adult भी कहा जाता है) पर ट्रेन किए गए रैंडम फ़ॉरेस्ट मॉडल के लिए, अलग-अलग सुविधाओं की अहमियत की रैंक दी गई है.
टेबल 8. 14 अलग-अलग सुविधाओं की अहमियत अलग-अलग होती है.
सुविधा | कुल स्कोर | सटीक जानकारी देने में हुई औसत गिरावट | औसत यूज़र ऐक्टिविटी में कमी | औसत कम से कम गहराई | नोड की संख्या | पीआर-एयूसी में औसत कमी | Num को रूट के तौर पर इस्तेमाल करना |
---|---|---|---|---|---|---|---|
संबंध | 4203592.6 |
0.0045 |
0.0172 |
4.970 |
57040 |
0.0093 |
1095 |
capital_gain | 3363045.1 |
0.0199 |
0.0194 |
2.852 |
56468 |
0.0655 |
457 |
marital_status | 31,28,996.3 |
0.0018 |
0.0230 |
6.633 |
52391 |
0.0107 |
750 |
उम्र | 25,20,658.8 |
0.0065 |
0.0074 |
4.969 |
356784 |
0.0033 |
200 |
education | 2015905.4 |
0.0018 |
-0.0080 |
5.266 |
115751 |
-0.0129 |
205 |
पेशा | 1939409.3 |
0.0063 |
-0.0040 |
5.017 |
221935 |
-0.0060 |
62 |
education_num | 1673648.4 |
0.0023 |
-0.0066 |
6.009 |
58303 |
-0.0080 |
197 |
fnlwgt | 15,64,189.0 |
-0.0002 |
-0.0038 |
9.969 |
431987 |
-0.0049 |
0 |
hours_per_week | 1333976.3 |
0.0030 |
0.0007 |
6.393 |
206526 |
-0.0031 |
20 |
capital_loss | 866863.8 |
0.0060 |
0.0020 |
8.076 |
58531 |
0.0118 |
1 |
workclass | 644208.4 |
0.0025 |
-0.0019 |
9.898 |
132196 |
-0.0023 |
0 |
native_country | 538841.2 |
0.0001 |
-0.0016 |
9.434 |
67211 |
-0.0058 |
0 |
लिंग | 226049.3 |
0.0002 |
0.0002 |
10.911 |
37754 |
-0.0011 |
13 |
नस्ल | 168180.9 |
-0.0006 |
-0.0004 |
11.571 |
42262 |
-0.0031 |
0 |
जैसा कि आपने देखा, वैरिएबल की अहमियत की अलग-अलग परिभाषाओं के अलग-अलग स्केल होते हैं और इनकी वजह से, फ़ीचर की रैंकिंग में अंतर हो सकता है.
मॉडल के स्ट्रक्चर से मिलने वाले वैरिएबल की अहमियत (उदाहरण के लिए, ऊपर दी गई टेबल में, कुल स्कोर, औसत कम से कम गहराई, नोड की संख्या, और रूट के तौर पर संख्या) का हिसाब, डिसीज़न ट्री ("कार्ट | वैरिएबल की अहमियत" सेक्शन देखें) और रैंडम फ़ॉरेस्ट के लिए इसी तरह लगाया जाता है.
वैरिएबल के क्रम में बदलाव करने की अहमियत (उदाहरण के लिए, ऊपर दी गई टेबल में {accuracy, auc, pr-auc} में औसत कमी) मॉडल पर निर्भर नहीं करती. इनका हिसाब, पुष्टि करने वाले डेटासेट वाले किसी भी मशीन लर्निंग मॉडल पर लगाया जा सकता है. हालांकि, रैंडम फ़ॉरेस्ट में पुष्टि करने वाले डेटासेट का इस्तेमाल करने के बजाय, आउट-ऑफ़-बैग आकलन की मदद से, बदलाव करने वाले वैरिएबल की अहमियत का हिसाब लगाया जा सकता है.
SHAP (SHapley Additive exPlanations), अलग-अलग अनुमानों या मॉडल के हिसाब से, जानकारी देने के लिए मॉडल पर निर्भर नहीं करता. (मॉडल के हिसाब से नतीजे के बारे में जानकारी देने के बारे में जानने के लिए, Molnar की लिखी Interpretable Machine Learning देखें.) आम तौर पर, SHAP का इस्तेमाल करने के लिए ज़्यादा समय लगता है. हालांकि, डिसीज़न फ़ॉरेस्ट के लिए, इसका इस्तेमाल तेज़ी से किया जा सकता है. इसलिए, यह डिसीज़न फ़ॉरेस्ट का विश्लेषण करने का एक अच्छा तरीका है.
इस्तेमाल का उदाहरण
पिछले लेसन में, हमने tfdf.keras.CartModel
को कॉल करके, छोटे डेटासेट पर एक सीएआरटी डिसिज़न ट्री को ट्रेन किया था. रैंडम फ़ॉरेस्ट मॉडल को ट्रेन करने के लिए,
tfdf.keras.CartModel
को tfdf.keras.RandomForestModel
से बदलें:
model = tfdf.keras.RandomForestModel()
model.fit(tf_train_dataset)
फ़ायदे और नुकसान
इस सेक्शन में, रैंडम फ़ॉरेस्ट के फ़ायदों और नुकसानों के बारे में खास जानकारी दी गई है.
फ़ायदे:
- डिसीज़न ट्री की तरह ही, रैंडम फ़ॉरेस्ट में नेटिव तौर पर संख्या और कैटगरी वाली सुविधाएं काम करती हैं. साथ ही, आम तौर पर इनमें सुविधाओं को पहले से प्रोसेस करने की ज़रूरत नहीं होती.
- डिसिज़न ट्री अलग-अलग होते हैं. इसलिए, रैंडम फ़ॉरेस्ट को एक साथ ट्रेन किया जा सकता है. इस वजह से, रैंडम फ़ॉरेस्ट को तेज़ी से ट्रेन किया जा सकता है.
- रैंडम फ़ॉरेस्ट में डिफ़ॉल्ट पैरामीटर होते हैं, जो अक्सर बेहतर नतीजे देते हैं. आम तौर पर, उन पैरामीटर को ट्यून करने से मॉडल पर ज़्यादा असर नहीं पड़ता.
नुकसान:
- फ़ैसला लेने वाले ट्री को छोटा नहीं किया जाता, इसलिए वे बड़े हो सकते हैं. आम तौर पर, एक मिलियन से ज़्यादा नोड वाले मॉडल होते हैं. कभी-कभी, रैंडम फ़ॉरेस्ट का साइज़ (और इसलिए अनुमान लगाने की स्पीड) एक समस्या हो सकती है.
- रैंडम फ़ॉरेस्ट, डेटा के इंटरनल रिप्रज़ेंटेशन को सीख और फिर से इस्तेमाल नहीं कर सकते. हर डिसीज़न ट्री (और हर डिसीज़न ट्री की हर शाखा) को डेटासेट पैटर्न को फिर से सीखना होगा. कुछ डेटासेट में, खास तौर पर नॉन-टेबल डेटासेट (जैसे, इमेज, टेक्स्ट) में, रैंडम फ़ॉरेस्ट अन्य तरीकों की तुलना में खराब नतीजे देते हैं.