BoostedTreesCalculateBestGainsPerFeature

सार्वजनिक अंतिम वर्ग BoostedTreesCalculateBestGainsPerFeature

प्रत्येक सुविधा के लिए लाभ की गणना करता है और सुविधा के लिए सर्वोत्तम संभव विभाजन जानकारी देता है।

विभाजित जानकारी प्रत्येक सुविधा के लिए प्रति नोड सर्वोत्तम सीमा (बाल्टी आईडी), लाभ और बाएं/दाएं नोड योगदान है।

यह संभव है कि प्रत्येक फीचर पर सभी नोड्स को विभाजित नहीं किया जा सकता है। इसलिए, संभावित नोड्स की सूची सुविधाओं के बीच भिन्न हो सकती है। इसलिए, हम प्रत्येक सुविधा के लिए `node_ids_list` लौटाते हैं, जिसमें नोड्स की सूची होती है जिसे विभाजित करने के लिए इस सुविधा का उपयोग किया जा सकता है।

इस तरह, आउटपुट प्रति फीचर और प्रति नोड सबसे अच्छा विभाजन है, ताकि प्रत्येक नोड (सभी संभावित सुविधाओं के बीच) के लिए सर्वश्रेष्ठ विभाजन का उत्पादन करने के लिए इसे बाद में संयोजित करने की आवश्यकता हो।

आउटपुट सूचियों की लंबाई सभी समान लंबाई की है, `num_features`। आउटपुट आकार इस तरह से संगत हैं कि सभी सूचियों के सभी दसियों का पहला आयाम समान है और प्रत्येक सुविधा के लिए संभावित विभाजन नोड्स की संख्या के बराबर है।

सार्वजनिक तरीके

स्थिर BoostedTreesCalculateBestGainsPerFeature
बनाने ( स्कोप गुंजाइश, ओपेरैंड <पूर्णांक> nodeIdRange, Iterable < ओपेरैंड <फ्लोट >> statsSummaryList, ओपेरैंड <फ्लोट> एल 1, ओपेरैंड <फ्लोट> l2, ओपेरैंड <फ्लोट> treeComplexity, ओपेरैंड <फ्लोट> minNodeWeight, लांग maxSplits)
एक नया BoostedTreesCalculateBestGainsPerFeature ऑपरेशन रैपिंग क्लास बनाने के लिए फ़ैक्टरी विधि।
सूची < आउटपुट <फ्लोट >>
gainsList ()
रैंक 1 टेंसर की एक आउटपुट सूची प्रत्येक सुविधा के लिए कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम लाभ दर्शाती है।
सूची < आउटपुट <फ्लोट >>
leftNodeContribsList ()
रैंक 2 टेंसर की एक सूची, जब पैरेंट नोड्स (आउटपुट नोड_आईड्स_लिस्ट में टेंसर तत्व द्वारा दी गई) से प्रत्येक सुविधा के लिए दी गई थ्रेशोल्ड द्वारा बाईं दिशा में शाखा करते समय बाएं नोड्स के योगदान को इंगित करता है।
सूची < आउटपुट <पूर्णांक >>
nodeIdsList ()
रैंक 1 टेंसर की एक आउटपुट सूची प्रत्येक सुविधा के लिए संभावित विभाजन नोड आईडी दर्शाती है।
सूची < आउटपुट <फ्लोट >>
rightNodeContribsList ()
लेफ्ट_नोड_कॉन्ट्रिब्स_लिस्ट के समान आकार/शर्तों के साथ रैंक 2 टेंसर की एक सूची, लेकिन मान सही नोड के लिए है।
सूची < आउटपुट <पूर्णांक >>
thresholdsList ()
रैंक 1 टेंसर की एक आउटपुट सूची प्रत्येक नोड में विभाजन के लिए (एक सीमा के रूप में) के साथ तुलना करने के लिए बकेट आईडी को दर्शाती है।

विरासत में मिली विधियां

सार्वजनिक तरीके

सार्वजनिक स्थिर BoostedTreesCalculateBestGainsPerFeature बनाने ( स्कोप गुंजाइश, ओपेरैंड <पूर्णांक> nodeIdRange, Iterable < ओपेरैंड <फ्लोट >> statsSummaryList, ओपेरैंड <फ्लोट> एल 1, ओपेरैंड <फ्लोट> l2, ओपेरैंड <फ्लोट> treeComplexity, ओपेरैंड <फ्लोट> minNodeWeight, लांग maxSplits)

एक नया BoostedTreesCalculateBestGainsPerFeature ऑपरेशन रैपिंग क्लास बनाने के लिए फ़ैक्टरी विधि।

मापदंडों
दायरा वर्तमान दायरा
नोड आईडीरेंज `Stats_summary_list` के भीतर संसाधित करने के लिए नोड आईडी की श्रेणी [प्रथम, अंतिम) निर्दिष्ट करने के लिए एक रैंक 1 टेंसर (आकार = [2])। नोड्स को टेंसर द्वारा निर्दिष्ट दो नोड्स के बीच पुनरावृत्त किया जाता है, जैसे कि `नोड_आईडी इन रेंज (नोड_आईडी_रेंज [0], नोड_आईडी_रेंज [1])` (ध्यान दें कि अंतिम इंडेक्स नोड_आईडी_रेंज [1] अनन्य है)।
आँकड़ेसारांशसूची प्रत्येक सुविधा के लिए प्रति बकेट प्रति नोड संचित आँकड़े सारांश (ग्रेडिएंट/हेसियन) के लिए रैंक 3 टेंसर (#shape=[max_splits, बाल्टी, 2]) की एक सूची। टेंसर का पहला आयाम विभाजन की अधिकतम संख्या है, और इस प्रकार इसके सभी तत्वों का उपयोग नहीं किया जाएगा, लेकिन केवल नोड_आईड्स द्वारा निर्दिष्ट इंडेक्स का उपयोग किया जाएगा।
एल1 l1 पत्ती भार पर नियमितीकरण कारक, प्रति उदाहरण आधारित।
एल2 l2 पत्ती भार पर नियमितीकरण कारक, प्रति उदाहरण आधारित।
वृक्ष जटिलता लाभ के लिए समायोजन, प्रति पत्ती आधारित।
minNodeWeight नोड को विभाजित करने के लिए विचार करने के लिए आवश्यक होने से पहले एक नोड में हेसियन का न्यूनतम औसत।
मैक्सस्प्लिट्स नोड्स की संख्या जिन्हें पूरे पेड़ में विभाजित किया जा सकता है। आउटपुट टेंसर के आयाम के रूप में उपयोग किया जाता है।
रिटर्न
  • BoostedTrees का एक नया उदाहरणBestGainsPerFeature की गणना करें

सार्वजनिक सूची < आउटपुट <फ्लोट >> gainsList ()

रैंक 1 टेंसर की एक आउटपुट सूची प्रत्येक सुविधा के लिए कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम लाभ दर्शाती है। आकार और आकार जैसे विवरण के लिए ऊपर देखें।

सार्वजनिक सूची < आउटपुट <फ्लोट >> leftNodeContribsList ()

रैंक 2 टेंसर की एक सूची, जब पैरेंट नोड्स (आउटपुट नोड_आईड्स_लिस्ट में टेंसर तत्व द्वारा दी गई) से प्रत्येक सुविधा के लिए दी गई थ्रेशोल्ड द्वारा बाईं दिशा में शाखा करते समय बाएं नोड्स के योगदान को इंगित करता है। इस मान का उपयोग पैरेंट नोड मान में जोड़कर बायां नोड मान बनाने के लिए किया जाएगा। 1-आयामी लॉग के लिए दूसरा आयाम आकार 1 है, लेकिन बहु-वर्ग की समस्याओं के लिए बड़ा होगा। आकार और आकार जैसे विवरण के लिए ऊपर देखें।

सार्वजनिक सूची < आउटपुट <पूर्णांक >> nodeIdsList ()

रैंक 1 टेंसर की एक आउटपुट सूची प्रत्येक सुविधा के लिए संभावित विभाजन नोड आईडी दर्शाती है। सूची की लंबाई num_features है, लेकिन प्रत्येक टेंसर का आकार अलग होता है क्योंकि प्रत्येक सुविधा अलग-अलग संभावित नोड प्रदान करती है। आकार और आकार जैसे विवरण के लिए ऊपर देखें।

सार्वजनिक सूची < आउटपुट <फ्लोट >> rightNodeContribsList ()

लेफ्ट_नोड_कॉन्ट्रिब्स_लिस्ट के समान आकार/शर्तों के साथ रैंक 2 टेंसर की एक सूची, लेकिन मान सही नोड के लिए है।

सार्वजनिक सूची < आउटपुट <पूर्णांक >> thresholdsList ()

रैंक 1 टेंसर की एक आउटपुट सूची प्रत्येक नोड में विभाजन के लिए (एक सीमा के रूप में) के साथ तुलना करने के लिए बकेट आईडी को दर्शाती है। आकार और आकार जैसे विवरण के लिए ऊपर देखें।