प्रत्येक सुविधा के लिए लाभ की गणना करता है और सुविधा के लिए सर्वोत्तम संभव विभाजन जानकारी लौटाता है।
विभाजित जानकारी प्रत्येक सुविधा के लिए सर्वोत्तम सीमा (बकेट आईडी), लाभ और प्रति नोड बाएं/दाएं नोड योगदान है।
यह संभव है कि सभी नोड्स को प्रत्येक सुविधा पर विभाजित नहीं किया जा सके। इसलिए, संभावित नोड्स की सूची सुविधाओं के बीच भिन्न हो सकती है। इसलिए, हम प्रत्येक सुविधा के लिए `node_ids_list` लौटाते हैं, जिसमें उन नोड्स की सूची होती है जिन्हें विभाजित करने के लिए इस सुविधा का उपयोग किया जा सकता है।
इस तरीके से, आउटपुट प्रति फीचर और प्रति नोड सबसे अच्छा विभाजन है, ताकि प्रत्येक नोड (सभी संभावित सुविधाओं के बीच) के लिए सबसे अच्छा विभाजन उत्पन्न करने के लिए इसे बाद में संयोजित करने की आवश्यकता हो।
आउटपुट सूचियों की लंबाई सभी समान लंबाई, `num_features` है। आउटपुट आकार इस तरह से संगत हैं कि सभी सूचियों के सभी टेंसरों का पहला आयाम समान है और प्रत्येक सुविधा के लिए संभावित विभाजन नोड्स की संख्या के बराबर है।
स्थिरांक
डोरी | OP_NAME | इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है |
सार्वजनिक तरीके
स्टेटिक बूस्टेडट्रीज़कैलकुलेटबेस्टगेन्सपरफ़ीचर | बनाएं ( स्कोप स्कोप, ऑपरेंड < TInt32 > नोडआईडीरेंज, इटरेबल < ऑपरेंड < TFloat32 >> आँकड़े सारांश सूची, ऑपरेंड < TFloat32 > l1, ऑपरेंड < TFloat32 > l2, ऑपरेंड < TFloat32 > ट्रीकॉम्प्लेक्सिटी, ऑपरेंड < TFloat32 > minNodeWeight, Long maxSplits) एक नए BoostedTreescalculateBestGainsPerFeature ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि। |
सूची < आउटपुट < TFloat32 >> | लाभ सूची () रैंक 1 टेंसरों की एक आउटपुट सूची जो प्रत्येक सुविधा को कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम लाभ का संकेत देती है। |
सूची < आउटपुट < TFloat32 >> | बाएँNodeContribsList () रैंक 2 टेंसरों की एक सूची, जो प्रत्येक सुविधा के लिए दी गई सीमा के अनुसार मूल नोड्स (आउटपुट नोड_आईड्स_लिस्ट में टेंसर तत्व द्वारा दिए गए) से बाईं दिशा में शाखा करते समय बाएं नोड्स के योगदान को दर्शाती है। |
सूची< आउटपुट <TInt32> > | नोडआईडी सूची () प्रत्येक सुविधा के लिए संभावित स्प्लिट नोड आईडी का संकेत देने वाले रैंक 1 टेंसर की आउटपुट सूची। |
सूची < आउटपुट < TFloat32 >> | दाएँNodeContribsList () रैंक 2 टेंसरों की एक सूची, जिसका आकार/शर्त बाएँ_नोड_contribs_list के समान है, लेकिन केवल यह कि मान दाएँ नोड के लिए है। |
सूची< आउटपुट <TInt32> > | दहलीज सूची () प्रत्येक नोड में विभाजन के लिए (सीमा के रूप में) तुलना करने के लिए बकेट आईडी को दर्शाने वाले रैंक 1 टेंसरों की एक आउटपुट सूची। |
विरासत में मिली विधियाँ
स्थिरांक
सार्वजनिक स्थैतिक अंतिम स्ट्रिंग OP_NAME
इस ऑप का नाम, जैसा कि TensorFlow कोर इंजन द्वारा जाना जाता है
सार्वजनिक तरीके
सार्वजनिक स्थैतिक BoostedTreesगणनाBestGainsPerFeature बनाएं ( स्कोप स्कोप, ऑपरेंड <TInt32> नोडआईडीरेंज, Iterable< ऑपरेंड <TFloat32> > आँकड़े सारांश सूची, ऑपरेंड <TFloat32> l1, ऑपरेंड <TFloat32> l2, ऑपरेंड <TFloat32> ट्रीकॉम्प्लेक्सिटी, ऑपरेंड <TFloat32> minNodeWeight, लंबे मैक्सस्प्लिट्स)
एक नए BoostedTreescalculateBestGainsPerFeature ऑपरेशन को लपेटकर एक क्लास बनाने की फ़ैक्टरी विधि।
पैरामीटर
दायरा | वर्तमान दायरा |
---|---|
नोडआईडीरेंज | `stats_summary_list` के भीतर संसाधित करने के लिए नोड आईडी की सीमा [पहली, आखिरी) निर्दिष्ट करने के लिए एक रैंक 1 टेंसर (आकार = [2])। नोड्स को टेंसर द्वारा निर्दिष्ट दो नोड्स के बीच पुनरावृत्त किया जाता है, जैसे `for node_id inrange(node_id_range[0], node_id_range[1])` (ध्यान दें कि अंतिम सूचकांक नोड_id_range[1] अनन्य है)। |
आँकड़े सारांश सूची | प्रत्येक सुविधा के लिए प्रति नोड प्रति बकेट संचित आँकड़े सारांश (ग्रेडिएंट/हेस्सियन) के लिए रैंक 3 टेंसर (#shape=[max_splits, Bucket, 2]) की एक सूची। टेंसर का पहला आयाम विभाजन की अधिकतम संख्या है, और इस प्रकार इसके सभी तत्वों का उपयोग नहीं किया जाएगा, बल्कि केवल नोड_आईडी द्वारा निर्दिष्ट अनुक्रमित का उपयोग किया जाएगा। |
एल1 | प्रति उदाहरण के आधार पर, पत्ती के वजन पर एल1 नियमितीकरण कारक। |
एल2 | प्रति उदाहरण के आधार पर, पत्ती के वजन पर एल2 नियमितीकरण कारक। |
वृक्ष जटिलता | प्रति पत्ती के आधार पर लाभ का समायोजन। |
minNodeWeight | नोड को विभाजित करने पर विचार करने के लिए आवश्यक होने से पहले एक नोड में हेसियन का न्यूनतम औसत। |
मैक्सस्प्लिट्स | पूरे पेड़ में विभाजित किये जा सकने वाले नोड्स की संख्या। आउटपुट टेंसर के आयाम के रूप में उपयोग किया जाता है। |
रिटर्न
- BoostedTreescalculateBestGainsPerFeature का एक नया उदाहरण
सार्वजनिक सूची < आउटपुट < TFloat32 >> लाभ सूची ()
रैंक 1 टेंसरों की एक आउटपुट सूची जो प्रत्येक सुविधा को कुछ नोड्स के लिए विभाजित करने के लिए सर्वोत्तम लाभ का संकेत देती है। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक सूची< आउटपुट <TFloat32> > leftNodeContribsList ()
रैंक 2 टेंसरों की एक सूची, जो प्रत्येक सुविधा के लिए दी गई सीमा के अनुसार मूल नोड्स (आउटपुट नोड_आईड्स_लिस्ट में टेंसर तत्व द्वारा दिए गए) से बाईं दिशा में शाखा करते समय बाएं नोड्स के योगदान को दर्शाती है। इस मान का उपयोग मूल नोड मान में जोड़कर बाएँ नोड मान बनाने के लिए किया जाएगा। 1-आयामी लॉग के लिए दूसरे आयाम का आकार 1 है, लेकिन बहु-वर्ग समस्याओं के लिए यह बड़ा होगा। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक सूची < आउटपुट < TInt32 >> नोडआईड्सलिस्ट ()
प्रत्येक सुविधा के लिए संभावित स्प्लिट नोड आईडी का संकेत देने वाले रैंक 1 टेंसर की आउटपुट सूची। सूची की लंबाई num_features है, लेकिन प्रत्येक टेंसर का आकार अलग-अलग होता है क्योंकि प्रत्येक सुविधा अलग-अलग संभावित नोड प्रदान करती है। आकार और साइज जैसे विवरण के लिए ऊपर देखें।
सार्वजनिक सूची < आउटपुट < TFloat32 >> RightNodeContribsList ()
रैंक 2 टेंसरों की एक सूची, जिसका आकार/शर्त बाएँ_नोड_contribs_list के समान है, लेकिन केवल यह कि मान दाएँ नोड के लिए है।