سود هر ویژگی را محاسبه می کند و بهترین اطلاعات تقسیم ممکن را برای هر گره برمی گرداند. با این حال، اگر هیچ تقسیمی یافت نشد، هیچ اطلاعات تقسیمی برای آن گره بازگردانده نمی شود.
اطلاعات تقسیم بهترین آستانه (شناسه سطل)، سود و مشارکت گره چپ/راست در هر گره برای هر ویژگی است.
این امکان وجود دارد که نتوان همه گره ها را روی هر ویژگی تقسیم کرد. از این رو، لیست گره های ممکن می تواند بین ویژگی ها متفاوت باشد. بنابراین، "node_ids_list" را برای هر ویژگی، حاوی لیستی از گرههایی که این ویژگی میتواند برای تقسیم آنها استفاده شود، برمیگردانیم.
به این ترتیب، خروجی بهترین تقسیم برای هر ویژگی و هر گره است، به طوری که بعداً باید ترکیب شود تا بهترین تقسیم برای هر گره (در میان همه ویژگیهای ممکن) ایجاد شود.
اشکال خروجی به گونه ای سازگار هستند که بعد اول همه تانسورها یکسان و برابر با تعداد گره های تقسیم ممکن برای هر ویژگی است.
روش های عمومی
Static BoostedTreesCalculateBestFeatureSplitV2 | ایجاد ( scope scope، عملوند <Integer> nodeIdRange، Iterable< Operand <Float>> statsSummariesList، عملوند <String> splitTypes، عملوند <Integer> kandidatFeatureIds، عملوند <Float> l1، عملوند <Float> lloat، Operand <Float> lloat>Cond عملوند <Float> minNodeWeight, Long logitsDimension) روش کارخانه برای ایجاد کلاسی که یک عملیات جدید BoostedTreesCalculateBestFeatureSplitV2 را بسته بندی می کند. |
خروجی <عدد صحیح> | ابعاد ویژگی () یک تانسور رتبه 1 که بهترین بعد ویژگی را برای هر ویژگی نشان می دهد تا برای گره های خاصی تقسیم شود اگر ویژگی چند بعدی باشد. |
خروجی <عدد صحیح> | شناسه های ویژگی () یک تانسور رتبه 1 که بهترین شناسه ویژگی را برای هر گره نشان می دهد. |
خروجی <Float> | سود () یک تانسور رتبه 1 که بهترین سود را برای هر ویژگی برای تقسیم برای گره های خاص نشان می دهد. |
خروجی <Float> | leftNodeContribs () یک تانسور رتبه 2 که سهم گرههای چپ را هنگام انشعاب از گرههای والد (که توسط عنصر تانسور در node_ids_list خروجی داده میشود) به سمت چپ توسط آستانه دادهشده برای هر ویژگی نشان میدهد. |
خروجی <عدد صحیح> | nodeIds () یک تانسور رتبه 1 که شناسه گره های تقسیم احتمالی را برای هر ویژگی نشان می دهد. |
خروجی <Float> | rightNodeContribs () یک تانسور رتبه ۲، با شکل/شرایط یکسان با list_left_node_contribs_، اما این مقدار برای گره سمت راست است. |
خروجی <String> | splitWithDefaultDirections () یک تانسور رتبه 1 که نشان می دهد در صورت از دست دادن داده، به کدام جهت بروید. |
خروجی <عدد صحیح> | آستانه () یک تانسور رتبه 1 که نشان دهنده شناسه سطل برای مقایسه با (به عنوان آستانه) برای تقسیم در هر گره است. |
روش های ارثی
روش های عمومی
عمومی Static BoostedTreesCalculateBestFeatureSplitV2 ایجاد ( محدوده دامنه ، عملوند <Integer> nodeIdRange، تکرارپذیر< عملوند <Float>> statsSummariesList، عملوند <String> splitTypes، عملوند <Integer> kandidatFeatureFeatureIds , Operandl2 در > TreeComplexity، Operand <Float> minNodeWeight، Long logitsDimension)
روش کارخانه برای ایجاد کلاسی که یک عملیات جدید BoostedTreesCalculateBestFeatureSplitV2 را بسته بندی می کند.
مولفه های
محدوده | محدوده فعلی |
---|---|
nodeIdRange | یک تانسور رتبه 1 (شکل=[2]) برای تعیین محدوده [اولین، آخرین) شناسههای گره برای پردازش در «stats_summary_list». گره ها بین دو گره مشخص شده توسط تانسور تکرار می شوند، مانند «برای node_id در محدوده (node_id_range[0]، node_id_range[1])» (توجه داشته باشید که آخرین فهرست node_id_range[1] انحصاری است). |
statsSummariesList | فهرستی از تانسور رتبه 4 (#shape=[max_splits, feature_dims, bucket, stats_dims]) برای خلاصه آمار انباشته شده (gradient/hessian) در هر گره، در هر بعد، در هر سطل برای هر ویژگی. بعد اول تانسور حداکثر تعداد تقسیمات است و بنابراین از همه عناصر آن استفاده نمی شود، بلکه فقط از شاخص های مشخص شده توسط node_ids استفاده می شود. |
splitTypes | یک تانسور رتبه 1 که نشان می دهد آیا این عملیات باید تقسیم نابرابری یا تقسیم برابری را برای هر ویژگی انجام دهد. |
kandidatFeatureIds | رتبه 1 تانسور با شناسه برای هر ویژگی. این شناسه واقعی ویژگی است. |
l1 | l1 ضریب تنظیم بر وزن برگ، در هر نمونه بر اساس. |
l2 | l2 ضریب تنظیم بر وزن برگ، در هر نمونه بر اساس. |
درخت پیچیدگی | تعدیل با بهره، بر اساس هر برگ. |
minNodeWeight | حداقل میانگین هسین ها در یک گره قبل از نیاز به گره برای تقسیم شدن در نظر گرفته شود. |
logitsDimension | بعد لاجیت، یعنی تعداد کلاس ها. |
برمی گرداند
- یک نمونه جدید از BoostedTreesCalculateBestFeatureSplitV2
خروجی عمومی <Integer> featureDimensions ()
یک تانسور رتبه 1 که بهترین بعد ویژگی را برای هر ویژگی نشان می دهد تا برای گره های خاصی تقسیم شود اگر ویژگی چند بعدی باشد. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید.
خروجی عمومی <Integer> featureIds ()
یک تانسور رتبه 1 که بهترین شناسه ویژگی را برای هر گره نشان می دهد. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید.
دستاوردهای عمومی Output <Float> ()
یک تانسور رتبه 1 که بهترین سود را برای هر ویژگی برای تقسیم برای گره های خاص نشان می دهد. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید.
خروجی عمومی <Float> leftNodeContribs ()
یک تانسور رتبه 2 که سهم گرههای چپ را هنگام انشعاب از گرههای والد (که توسط عنصر تانسور در node_ids_list خروجی داده میشود) به سمت چپ توسط آستانه دادهشده برای هر ویژگی نشان میدهد. این مقدار برای ایجاد مقدار گره چپ با افزودن به مقدار گره والد استفاده می شود. اندازه بعد دوم برای لجیت های یک بعدی 1 است، اما برای مسائل چند کلاسه بزرگتر است. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید.
خروجی عمومی <Integer> nodeIds ()
یک تانسور رتبه 1 که شناسه گره های تقسیم احتمالی را برای هر ویژگی نشان می دهد. طول لیست num_features است، اما هر تانسور اندازه های متفاوتی دارد زیرا هر ویژگی گره های ممکن متفاوتی را ارائه می دهد. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید.
خروجی عمومی <Float> rightNodeContribs ()
یک تانسور رتبه ۲، با شکل/شرایط یکسان با list_left_node_contribs_، اما این مقدار برای گره سمت راست است.
خروجی عمومی <String> splitWithDefaultDirections ()
یک تانسور رتبه 1 که نشان می دهد در صورت از دست دادن داده، به کدام جهت بروید. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید. نابرابری با چپ پیشفرض 0، نابرابری با راست پیشفرض 1، برابری با راست پیشفرض 2 را برمیگرداند.
آستانه های خروجی عمومی <Integer> ()
یک تانسور رتبه 1 که نشان دهنده شناسه سطل برای مقایسه با (به عنوان آستانه) برای تقسیم در هر گره است. برای جزئیاتی مانند شکل ها و اندازه ها به بالا مراجعه کنید.