प्रत्येक सुविधा के लिए लाभ की गणना करता है और सुविधा के लिए सर्वोत्तम संभव विभाजन जानकारी लौटाता है।
विभाजित जानकारी प्रत्येक सुविधा के लिए सर्वोत्तम सीमा (बकेट आईडी), लाभ और प्रति नोड बाएं/दाएं नोड योगदान है।
यह संभव है कि सभी नोड्स को प्रत्येक सुविधा पर विभाजित नहीं किया जा सके। इसलिए, संभावित नोड्स की सूची सुविधाओं के बीच भिन्न हो सकती है। इसलिए, हम प्रत्येक सुविधा के लिए `node_ids_list` लौटाते हैं, जिसमें उन नोड्स की सूची होती है जिन्हें विभाजित करने के लिए इस सुविधा का उपयोग किया जा सकता है।
इस तरीके से, आउटपुट प्रति फीचर और प्रति नोड सबसे अच्छा विभाजन है, ताकि प्रत्येक नोड (सभी संभावित सुविधाओं के बीच) के लिए सबसे अच्छा विभाजन उत्पन्न करने के लिए इसे बाद में संयोजित करने की आवश्यकता हो।
आउटपुट आकार इस तरह से संगत हैं कि सभी टेंसरों का पहला आयाम समान है और प्रत्येक सुविधा के लिए संभावित विभाजन नोड्स की संख्या के बराबर है।
नेस्टेड क्लासेस
कक्षा | बूस्टेडट्रीज़कैलकुलेटबेस्टफ़ीचरस्प्लिट.ऑप्शंस | BoostedTreesCalculateBestFeatureSplit के लिए वैकल्पिक विशेषताएँ |
स्थिरांक
डोरी | OP_NAME | इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है |
सार्वजनिक तरीके
स्टेटिक बूस्टेडट्रीज़कैलकुलेटबेस्टफ़ीचरस्प्लिट | बनाएं ( स्कोप स्कोप, ऑपरेंड <TInt32> नोडआईडीरेंज, ऑपरेंड <TFloat32> आँकड़ेसारांश, ऑपरेंड <TFloat32> l1, ऑपरेंड <TFloat32> l2, ऑपरेंड <TFloat32> ट्रीकॉम्प्लेक्सिटी, ऑपरेंड <TFloat32> minNodeWeight, लॉन्ग लॉगिट्सडिमेंशन, विकल्प... विकल्प) एक नए BoostedTreescalculateBestFeatureSplit ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि। |
आउटपुट <TInt32> | फीचर आयाम () यदि सुविधा बहु-आयाम है तो रैंक 1 टेंसर प्रत्येक सुविधा को कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम सुविधा आयाम का संकेत देता है। |
आउटपुट < TFloat32 > | लाभ () एक रैंक 1 टेंसर प्रत्येक फीचर को कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम लाभ का संकेत देता है। |
आउटपुट < TFloat32 > | बायाँ नोड योगदान () एक रैंक 2 टेंसर प्रत्येक सुविधा के लिए दी गई सीमा के अनुसार मूल नोड्स (आउटपुट नोड_आईड्स_लिस्ट में टेंसर तत्व द्वारा दिए गए) से बाईं दिशा में शाखा करते समय बाएं नोड्स के योगदान को दर्शाता है। |
आउटपुट <TInt32> | नोडआईडी () प्रत्येक सुविधा के लिए संभावित स्प्लिट नोड आईडी का संकेत देने वाला रैंक 1 टेंसर। |
आउटपुट < TFloat32 > | दाएँ नोड योगदान () रैंक 2 टेंसर, बाएँ_नोड_कॉन्ट्रिब्स_लिस्ट के समान आकार/शर्तों के साथ, लेकिन केवल यह कि मान दाएँ नोड के लिए है। |
स्टेटिक बूस्टेडट्रीज़कैलकुलेटबेस्टफ़ीचरस्प्लिट.ऑप्शंस | स्प्लिटटाइप (स्ट्रिंग स्प्लिटटाइप) |
आउटपुट < TString > | स्प्लिटविथडिफॉल्टडायरेक्शन () रैंक 1 टेंसर यह दर्शाता है कि डेटा गुम होने पर किस दिशा में जाना है। |
आउटपुट <TInt32> | दहलीज () प्रत्येक नोड में विभाजन के लिए (सीमा के रूप में) तुलना करने के लिए बकेट आईडी को इंगित करने वाला रैंक 1 टेंसर। |
विरासत में मिली विधियाँ
स्थिरांक
सार्वजनिक स्थैतिक अंतिम स्ट्रिंग OP_NAME
इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है
सार्वजनिक तरीके
सार्वजनिक स्थैतिक बूस्टेडट्रैसेक्लेक्यूलेटबेस्टफिटर्सप्लेट क्रिएट ( स्कोप स्कोप , ऑपरेंड <Tint32> नोडिड्रेंज, ऑपरेंड <Tfloat32> स्टैट्ससुमरी, ऑपरेंड <Tfloat32> L1, Operand <Tfloat32> L2 , Operand विकल्प )
एक नए BoostedTreescalculateBestFeatureSplit ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
पैरामीटर
दायरा | वर्तमान दायरा |
---|---|
नोडआईडीरेंज | `stats_summary_list` के भीतर संसाधित करने के लिए नोड आईडी की सीमा [पहली, आखिरी) निर्दिष्ट करने के लिए एक रैंक 1 टेंसर (आकार = [2])। नोड्स को टेंसर द्वारा निर्दिष्ट दो नोड्स के बीच पुनरावृत्त किया जाता है, जैसे `for node_id inrange(node_id_range[0], node_id_range[1])` (ध्यान दें कि अंतिम सूचकांक नोड_id_range[1] अनन्य है)। |
आँकड़े सारांश | प्रत्येक सुविधा के लिए प्रति नोड, प्रति आयाम, प्रति बाल्टी संचित आँकड़े सारांश (ग्रेडिएंट/हेस्सियन) के लिए एक रैंक 4 टेंसर (#shape=[max_splits, फीचर_डिम्स, बकेट, स्टैट्स_डिम्स])। टेंसर का पहला आयाम विभाजन की अधिकतम संख्या है, और इस प्रकार इसके सभी तत्वों का उपयोग नहीं किया जाएगा, बल्कि केवल नोड_आईडी द्वारा निर्दिष्ट अनुक्रमित का उपयोग किया जाएगा। |
एल1 | प्रति उदाहरण के आधार पर, पत्ती के वजन पर एल1 नियमितीकरण कारक। |
एल2 | प्रति उदाहरण के आधार पर, पत्ती के वजन पर एल2 नियमितीकरण कारक। |
वृक्ष जटिलता | प्रति पत्ती के आधार पर लाभ का समायोजन। |
minNodeWeight | नोड को विभाजित करने पर विचार करने के लिए आवश्यक होने से पहले एक नोड में हेसियन का न्यूनतम औसत। |
logitsआयाम | लॉगिट का आयाम, यानी, वर्गों की संख्या। |
विकल्प | वैकल्पिक गुण मान रखता है |
रिटर्न
- BoostedTreescalculateBestFeatureSplit का एक नया उदाहरण
सार्वजनिक आउटपुट <TInt32> फीचर आयाम ()
यदि सुविधा बहु-आयाम है तो रैंक 1 टेंसर प्रत्येक सुविधा को कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम सुविधा आयाम का संकेत देता है। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक आउटपुट < TFloat32 > लाभ ()
एक रैंक 1 टेंसर प्रत्येक फीचर को कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम लाभ का संकेत देता है। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक आउटपुट <TFloat32> leftNodeContribs ()
एक रैंक 2 टेंसर प्रत्येक सुविधा के लिए दी गई सीमा के अनुसार मूल नोड्स (आउटपुट नोड_आईड्स_लिस्ट में टेंसर तत्व द्वारा दिए गए) से बाईं दिशा में शाखा करते समय बाएं नोड्स के योगदान को दर्शाता है। इस मान का उपयोग मूल नोड मान में जोड़कर बाएँ नोड मान बनाने के लिए किया जाएगा। 1-आयामी लॉग के लिए दूसरे आयाम का आकार 1 है, लेकिन बहु-वर्ग समस्याओं के लिए यह बड़ा होगा। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक आउटपुट <TInt32> नोडआईडी ()
प्रत्येक सुविधा के लिए संभावित स्प्लिट नोड आईडी का संकेत देने वाला रैंक 1 टेंसर। सूची की लंबाई num_features है, लेकिन प्रत्येक टेंसर का आकार अलग-अलग होता है क्योंकि प्रत्येक सुविधा अलग-अलग संभावित नोड प्रदान करती है। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक आउटपुट < TFloat32 > RightNodeContribs ()
रैंक 2 टेंसर, बाएँ_नोड_कॉन्ट्रिब्स_लिस्ट के समान आकार/शर्तों के साथ, लेकिन केवल यह कि मान दाएँ नोड के लिए है।
सार्वजनिक स्थैतिक बूस्टेडट्रीज़कैलकुलेटबेस्टफ़ीचरस्प्लिट.ऑप्शंस स्प्लिटटाइप (स्ट्रिंग स्प्लिटटाइप)
पैरामीटर
स्प्लिट टाइप | एक स्ट्रिंग इंगित करती है कि क्या इस ऑप को असमानता विभाजन या समानता विभाजन करना चाहिए। |
---|
सार्वजनिक आउटपुट < टीएसट्रिंग > स्प्लिटविथडिफॉल्टडायरेक्शन्स ()
रैंक 1 टेंसर यह दर्शाता है कि डेटा गुम होने पर किस दिशा में जाना है। आकार और साइज जैसे विवरण के लिए ऊपर देखें। डिफ़ॉल्ट बाएँ रिटर्न के साथ असमानता 0, डिफ़ॉल्ट दाएँ रिटर्न के साथ असमानता 1, डिफ़ॉल्ट दाएँ रिटर्न के साथ समानता 2।