คำนวณกำไรสำหรับแต่ละคุณลักษณะและส่งคืนข้อมูลการแยกที่ดีที่สุดสำหรับคุณลักษณะ
ข้อมูลที่แยกเป็นส่วนที่ดีที่สุด (bucket id) กำไร และการสนับสนุนโหนดซ้าย/ขวาต่อโหนดสำหรับแต่ละคุณลักษณะ
เป็นไปได้ว่าไม่สามารถแยกโหนดทั้งหมดในแต่ละคุณลักษณะได้ ดังนั้น รายการของโหนดที่เป็นไปได้อาจแตกต่างกันไปตามคุณลักษณะต่างๆ ดังนั้นเราจึงส่งคืน `node_ids_list` สำหรับแต่ละคุณลักษณะ ซึ่งประกอบด้วยรายการของโหนดที่คุณลักษณะนี้สามารถใช้เพื่อแยกได้
ในลักษณะนี้ เอาต์พุตจะเป็นการแยกที่ดีที่สุดต่อคุณลักษณะและต่อโหนด ดังนั้นจึงจำเป็นต้องรวมกันในภายหลังเพื่อสร้างการแยกที่ดีที่สุดสำหรับแต่ละโหนด (ในคุณลักษณะที่เป็นไปได้ทั้งหมด)
ความยาวของรายการเอาต์พุตมีความยาวเท่ากัน `num_features` รูปร่างเอาต์พุตเข้ากันได้ในลักษณะที่มิติแรกของเมตริกซ์ทั้งหมดของรายการทั้งหมดเหมือนกันและเท่ากับจำนวนโหนดแยกที่เป็นไปได้สำหรับแต่ละคุณลักษณะ
วิธีการสาธารณะ
คง BoostedTreesCalculateBestGainsPerFeature | สร้าง ( ขอบเขต ขอบเขต Operand <Integer> nodeIdRange, Iterable < Operand <ลอย >> statsSummaryList, Operand <ลอย> L1, Operand <ลอย> L2, Operand <ลอย> treeComplexity, Operand <ลอย> minNodeWeight ยาว maxSplits) วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ BoostedTreesCalculateBestGainsPerFeature ใหม่ |
รายการ < เอาท์พุท <ลอย >> | gainsList () รายการเอาท์พุตของเมตริกซ์อันดับ 1 ซึ่งบ่งชี้ถึงการเพิ่มที่ดีที่สุดสำหรับแต่ละฟีเจอร์ที่จะแยกสำหรับโหนดบางตัว |
รายการ < เอาท์พุท <ลอย >> | leftNodeContribsList () รายการเทนเซอร์อันดับ 2 ที่ระบุการมีส่วนร่วมของโหนดด้านซ้ายเมื่อแยกจากโหนดหลัก (กำหนดโดยองค์ประกอบเทนเซอร์ในเอาต์พุต node_ids_list) ไปทางซ้ายตามเกณฑ์ที่กำหนดสำหรับแต่ละคุณลักษณะ |
รายการ < เอาท์พุท <จำนวนเต็ม >> | nodeIdsList () รายการเอาท์พุตของเมตริกซ์อันดับ 1 ที่ระบุรหัสโหนดแยกที่เป็นไปได้สำหรับแต่ละคุณลักษณะ |
รายการ < เอาท์พุท <ลอย >> | rightNodeContribsList () รายการเทนเซอร์อันดับ 2 ที่มีรูปร่าง/เงื่อนไขเหมือนกับ left_node_contribs_list แต่ค่านั้นสำหรับโหนดทางขวาเท่านั้น |
รายการ < เอาท์พุท <จำนวนเต็ม >> | thresholdsList () รายการเอาท์พุตของเทนเซอร์อันดับ 1 ที่ระบุ id ที่ฝากข้อมูลเพื่อเปรียบเทียบกับ (เป็นเกณฑ์) สำหรับการแยกในแต่ละโหนด |
วิธีการสืบทอด
วิธีการสาธารณะ
สาธารณะคง BoostedTreesCalculateBestGainsPerFeature สร้าง ( ขอบเขต ขอบเขต Operand <Integer> nodeIdRange, Iterable < Operand <ลอย >> statsSummaryList, Operand <ลอย> L1, Operand <ลอย> L2, Operand <ลอย> treeComplexity, Operand <ลอย> minNodeWeight ยาว maxSplits)
วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ BoostedTreesCalculateBestGainsPerFeature ใหม่
พารามิเตอร์
ขอบเขต | ขอบเขตปัจจุบัน |
---|---|
nodeIdRange | เทนเซอร์อันดับ 1 (รูปร่าง=[2]) เพื่อระบุช่วง [แรก, สุดท้าย) ของรหัสโหนดที่จะประมวลผลภายใน `stats_summary_list` โหนดมีการวนซ้ำระหว่างสองโหนดที่ระบุโดยเทนเซอร์ เช่นเดียวกับ `สำหรับ node_id ในช่วง (node_id_range[0], node_id_range[1])` (โปรดทราบว่าดัชนีสุดท้าย node_id_range[1] เป็นแบบเอกสิทธิ์เฉพาะบุคคล) |
statsSummaryList | รายการเทนเซอร์อันดับ 3 (#shape=[max_splits, bucket, 2]) สำหรับสรุปสถิติสะสม (การไล่ระดับสี/เฮสเซียน) ต่อโหนดต่อบัคเก็ตสำหรับแต่ละฟีเจอร์ มิติข้อมูลแรกของเมตริกซ์คือจำนวนการแยกสูงสุด ดังนั้นจึงไม่ใช่ทุกองค์ประกอบของมิติข้อมูลจะถูกใช้ แต่จะใช้เฉพาะดัชนีที่ระบุโดย node_ids เท่านั้น |
l1 | l1 ปัจจัยการทำให้เป็นมาตรฐานของน้ำหนักลีฟ ต่ออินสแตนซ์ตาม |
l2 | ปัจจัยการทำให้เป็นมาตรฐาน l2 กับน้ำหนักลีฟ ต่ออินสแตนซ์ตาม |
ความซับซ้อนของต้นไม้ | การปรับเพื่อให้ได้กำไรต่อใบตาม |
minNodeWeight | ค่าเฉลี่ยขั้นต่ำของ hessians ในโหนดก่อนกำหนดให้โหนดได้รับการพิจารณาสำหรับการแยก |
maxSplits | จำนวนโหนดที่สามารถแยกในทรีทั้งหมด ใช้เป็นมิติเทนเซอร์เอาต์พุต |
คืนสินค้า
- อินสแตนซ์ใหม่ของ BoostedTreesCalculateBestGainsPerFeature
รายการสาธารณะ < เอาท์พุท <ลอย >> gainsList ()
รายการเอาท์พุตของเมตริกซ์อันดับ 1 ซึ่งบ่งชี้ถึงการเพิ่มที่ดีที่สุดสำหรับแต่ละฟีเจอร์ที่จะแยกสำหรับโหนดบางตัว ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
รายการสาธารณะ < เอาท์พุท <ลอย >> leftNodeContribsList ()
รายการเทนเซอร์อันดับ 2 ที่ระบุการมีส่วนร่วมของโหนดด้านซ้ายเมื่อแยกจากโหนดหลัก (กำหนดโดยองค์ประกอบเทนเซอร์ในเอาต์พุต node_ids_list) ไปทางซ้ายตามเกณฑ์ที่กำหนดสำหรับแต่ละคุณลักษณะ ค่านี้จะใช้เพื่อสร้างค่าโหนดด้านซ้ายโดยการเพิ่มค่าโหนดหลัก ขนาดมิติที่สองคือ 1 สำหรับบันทึก 1 มิติ แต่จะใหญ่กว่าสำหรับปัญหาหลายคลาส ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
สาธารณะรายการ < เอาท์พุท <จำนวนเต็ม >> nodeIdsList ()
รายการเอาท์พุตของเมตริกซ์อันดับ 1 ที่ระบุรหัสโหนดแยกที่เป็นไปได้สำหรับแต่ละคุณลักษณะ ความยาวของรายการคือ num_features แต่เทนเซอร์แต่ละตัวมีขนาดต่างกัน เนื่องจากแต่ละฟีเจอร์มีโหนดที่เป็นไปได้ต่างกัน ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
รายการสาธารณะ < เอาท์พุท <ลอย >> rightNodeContribsList ()
รายการเทนเซอร์อันดับ 2 ที่มีรูปร่าง/เงื่อนไขเหมือนกับ left_node_contribs_list แต่ค่านั้นสำหรับโหนดทางขวาเท่านั้น
สาธารณะรายการ < เอาท์พุท <จำนวนเต็ม >> thresholdsList ()
รายการเอาท์พุตของเทนเซอร์อันดับ 1 ที่ระบุ id ที่ฝากข้อมูลเพื่อเปรียบเทียบกับ (เป็นเกณฑ์) สำหรับการแยกในแต่ละโหนด ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด