প্রতিটি বৈশিষ্ট্যের জন্য লাভ গণনা করে এবং বৈশিষ্ট্যটির জন্য সম্ভাব্য সর্বোত্তম বিভক্ত তথ্য প্রদান করে।
বিভক্ত তথ্য হল সেরা থ্রেশহোল্ড (বালতি আইডি), লাভ এবং প্রতিটি বৈশিষ্ট্যের জন্য নোড প্রতি বাম/ডান নোড অবদান।
এটা সম্ভব যে সমস্ত নোড প্রতিটি বৈশিষ্ট্যে বিভক্ত করা যাবে না। সুতরাং, সম্ভাব্য নোডগুলির তালিকা বৈশিষ্ট্যগুলির মধ্যে পৃথক হতে পারে। অতএব, আমরা প্রতিটি বৈশিষ্ট্যের জন্য `node_ids_list` ফেরত দিই, যেখানে এই বৈশিষ্ট্যটি বিভক্ত করতে ব্যবহার করা যেতে পারে এমন নোডের তালিকা রয়েছে।
এই পদ্ধতিতে, আউটপুট হল প্রতি বৈশিষ্ট্য এবং প্রতি নোডের জন্য সর্বোত্তম বিভাজন, যাতে প্রতিটি নোডের জন্য (সমস্ত সম্ভাব্য বৈশিষ্ট্যগুলির মধ্যে) সর্বোত্তম বিভাজন তৈরি করতে এটিকে পরবর্তীতে একত্রিত করতে হবে।
আউটপুট তালিকার দৈর্ঘ্য একই দৈর্ঘ্যের, `num_features`। আউটপুট আকারগুলি এমনভাবে সামঞ্জস্যপূর্ণ যে সমস্ত তালিকার সমস্ত টেনসরের প্রথম মাত্রা একই এবং প্রতিটি বৈশিষ্ট্যের জন্য সম্ভাব্য বিভক্ত নোডের সংখ্যার সমান।
পাবলিক পদ্ধতি
স্ট্যাটিক BoostedTreesCalculateBestGainsPerFeature | তৈরি ( ব্যাপ্তি সুযোগ প্রতীক <integer> nodeIdRange, Iterable < প্রতীক <ফ্লোট >> statsSummaryList, প্রতীক <ফ্লোট> L1, প্রতীক <ফ্লোট> L2, প্রতীক <ফ্লোট> treeComplexity, প্রতীক <ফ্লোট> minNodeWeight, লং maxSplits) একটি নতুন BoostedTreesCalculateBestGainsPerFeature অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানা পদ্ধতি। |
তালিকা < আউটপুট <ফ্লোট >> | gainsList () র্যাঙ্ক 1 টেনসরের একটি আউটপুট তালিকা নির্দিষ্ট নোডের জন্য বিভক্ত করার জন্য প্রতিটি বৈশিষ্ট্যের জন্য সেরা লাভ নির্দেশ করে। |
তালিকা < আউটপুট <ফ্লোট >> | leftNodeContribsList () প্রতিটি বৈশিষ্ট্যের জন্য প্রদত্ত থ্রেশহোল্ড দ্বারা বাম দিকের প্যারেন্ট নোড (আউটপুট নোড_আইডিস_লিস্টে টেনসর উপাদান দ্বারা প্রদত্ত) থেকে শাখা করা হলে বাম নোডগুলির অবদান নির্দেশ করে র্যাঙ্ক 2 টেনসরের একটি তালিকা। |
তালিকা < আউটপুট <integer >> | nodeIdsList () র্যাঙ্ক 1 টেনসরের একটি আউটপুট তালিকা প্রতিটি বৈশিষ্ট্যের জন্য সম্ভাব্য বিভক্ত নোড আইডি নির্দেশ করে। |
তালিকা < আউটপুট <ফ্লোট >> | rightNodeContribsList () লেফট_নোড_কন্ট্রিবস_লিস্টের মতো একই আকৃতি/পরিস্থিতি সহ, র্যাঙ্ক 2 টেনসরের একটি তালিকা, কিন্তু ঠিক যে মানটি ডান নোডের জন্য। |
তালিকা < আউটপুট <integer >> | thresholdsList () র্যাঙ্ক 1 টেনসরের একটি আউটপুট তালিকা যা প্রতিটি নোডে বিভক্ত হওয়ার জন্য (একটি থ্রেশহোল্ড হিসাবে) তুলনা করার জন্য বাকেট আইডি নির্দেশ করে। |
উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি
পাবলিক পদ্ধতি
পাবলিক স্ট্যাটিক BoostedTreesCalculateBestGainsPerFeature তৈরি করুন ( ব্যাপ্তি সুযোগ প্রতীক <integer> nodeIdRange, Iterable < প্রতীক <ফ্লোট >> statsSummaryList, প্রতীক <ফ্লোট> L1, প্রতীক <ফ্লোট> L2, প্রতীক <ফ্লোট> treeComplexity, প্রতীক <ফ্লোট> minNodeWeight, লং maxSplits)
একটি নতুন BoostedTreesCalculateBestGainsPerFeature অপারেশন মোড়ানো একটি ক্লাস তৈরি করার কারখানা পদ্ধতি।
পরামিতি
সুযোগ | বর্তমান সুযোগ |
---|---|
nodeIdRange | একটি র্যাঙ্ক 1 টেনসর (আকৃতি=[2]) নোড আইডিগুলির পরিসর [প্রথম, শেষ) নির্দিষ্ট করতে `stats_summary_list`-এর মধ্যে প্রক্রিয়া করতে। নোডগুলি টেনসর দ্বারা নির্দিষ্ট করা দুটি নোডের মধ্যে পুনরাবৃত্তি করা হয়, যেমন `পরিসরে নোড_আইডির জন্য(নোড_আইডি_রেঞ্জ[0], নোড_আইডি_রেঞ্জ[1])` (উল্লেখ্য যে শেষ সূচক নোড_আইডি_রেঞ্জ[1] একচেটিয়া)। |
পরিসংখ্যান সংক্ষিপ্ত তালিকা | প্রতিটি বৈশিষ্ট্যের জন্য প্রতি বালতি প্রতি নোডে জমা হওয়া পরিসংখ্যান সারাংশের (গ্রেডিয়েন্ট/হেসিয়ান) জন্য র্যাঙ্ক 3 টেনসরের একটি তালিকা (#shape=[max_splits, bucket, 2])। টেনসরের প্রথম মাত্রা হল সর্বোচ্চ সংখ্যক বিভাজন, এবং এইভাবে এর সমস্ত উপাদান ব্যবহার করা হবে না, তবে শুধুমাত্র node_ids দ্বারা নির্দিষ্ট করা সূচী ব্যবহার করা হবে। |
l1 | l1 পাতার ওজনের উপর নিয়মিতকরণ ফ্যাক্টর, প্রতি উদাহরণ ভিত্তিক। |
l2 | l2 পাতার ওজনের উপর নিয়মিতকরণ ফ্যাক্টর, প্রতি উদাহরণ ভিত্তিক। |
গাছের জটিলতা | লাভের সামঞ্জস্য, প্রতি পাতা ভিত্তিক। |
minNodeWeight | নোডকে বিভক্ত করার জন্য বিবেচনা করার আগে একটি নোডে হেসিয়ানের ন্যূনতম গড়। |
maxSplits | পুরো গাছে বিভক্ত করা যেতে পারে এমন নোডের সংখ্যা। আউটপুট টেনসরের মাত্রা হিসাবে ব্যবহৃত হয়। |
রিটার্নস
- BoostedTreesCalculateBestGainsPerFeature-এর একটি নতুন উদাহরণ
প্রকাশ্য তালিকা < আউটপুট <ফ্লোট >> gainsList ()
র্যাঙ্ক 1 টেনসরের একটি আউটপুট তালিকা নির্দিষ্ট নোডের জন্য বিভক্ত করার জন্য প্রতিটি বৈশিষ্ট্যের জন্য সেরা লাভ নির্দেশ করে। আকার এবং আকারের মতো বিশদ বিবরণের জন্য উপরে দেখুন।
প্রকাশ্য তালিকা < আউটপুট <ফ্লোট >> leftNodeContribsList ()
প্রতিটি বৈশিষ্ট্যের জন্য প্রদত্ত থ্রেশহোল্ড দ্বারা বাম দিকের প্যারেন্ট নোড (আউটপুট নোড_আইডিস_লিস্টে টেনসর উপাদান দ্বারা প্রদত্ত) থেকে শাখা করা হলে বাম নোডগুলির অবদান নির্দেশ করে র্যাঙ্ক 2 টেনসরের একটি তালিকা। এই মানটি প্যারেন্ট নোডের মান যোগ করে বাম নোডের মান তৈরি করতে ব্যবহার করা হবে। দ্বিতীয় মাত্রার আকার 1-মাত্রিক লগিটগুলির জন্য 1, কিন্তু বহু-শ্রেণীর সমস্যার জন্য বড় হবে৷ আকার এবং আকারের মতো বিশদ বিবরণের জন্য উপরে দেখুন।
প্রকাশ্য তালিকা < আউটপুট <integer >> nodeIdsList ()
র্যাঙ্ক 1 টেনসরের একটি আউটপুট তালিকা প্রতিটি বৈশিষ্ট্যের জন্য সম্ভাব্য বিভক্ত নোড আইডি নির্দেশ করে। তালিকার দৈর্ঘ্য হল num_features, কিন্তু প্রতিটি টেনসরের আকার আলাদা কারণ প্রতিটি বৈশিষ্ট্য বিভিন্ন সম্ভাব্য নোড প্রদান করে। আকার এবং আকারের মতো বিশদ বিবরণের জন্য উপরে দেখুন।
প্রকাশ্য তালিকা < আউটপুট <ফ্লোট >> rightNodeContribsList ()
Left_node_contribs_list-এর মতো একই আকৃতি/শর্ত সহ র্যাঙ্ক 2 টেনসরের একটি তালিকা, কিন্তু ঠিক যে মানটি ডান নোডের জন্য।
প্রকাশ্য তালিকা < আউটপুট <integer >> thresholdsList ()
র্যাঙ্ক 1 টেনসরের একটি আউটপুট তালিকা যা প্রতিটি নোডে বিভক্ত হওয়ার জন্য (একটি থ্রেশহোল্ড হিসাবে) তুলনা করার জন্য বাকেট আইডি নির্দেশ করে। আকার এবং আকারের মতো বিশদ বিবরণের জন্য উপরে দেখুন।