คำนวณกำไรสำหรับแต่ละคุณลักษณะและส่งคืนข้อมูลการแยกที่ดีที่สุดสำหรับแต่ละโหนด อย่างไรก็ตาม หากไม่พบการแบ่ง จะไม่มีการส่งคืนข้อมูลการแยกสำหรับโหนดนั้น
ข้อมูลที่แยกเป็นส่วนที่ดีที่สุด (bucket id) กำไร และการสนับสนุนโหนดซ้าย/ขวาต่อโหนดสำหรับแต่ละคุณลักษณะ
เป็นไปได้ว่าไม่สามารถแยกโหนดทั้งหมดในแต่ละคุณลักษณะได้ ดังนั้น รายการของโหนดที่เป็นไปได้อาจแตกต่างกันไปตามคุณลักษณะต่างๆ ดังนั้นเราจึงส่งคืน `node_ids_list` สำหรับแต่ละคุณลักษณะ ซึ่งประกอบด้วยรายการของโหนดที่คุณลักษณะนี้สามารถใช้เพื่อแยกได้
ในลักษณะนี้ เอาต์พุตจะเป็นการแยกที่ดีที่สุดต่อคุณลักษณะและต่อโหนด ดังนั้นจึงจำเป็นต้องรวมกันในภายหลังเพื่อสร้างการแยกที่ดีที่สุดสำหรับแต่ละโหนด (ในคุณลักษณะที่เป็นไปได้ทั้งหมด)
รูปร่างเอาต์พุตเข้ากันได้ในลักษณะที่มิติแรกของเทนเซอร์ทั้งหมดเท่ากันและเท่ากับจำนวนโหนดแยกที่เป็นไปได้สำหรับแต่ละคุณลักษณะ
วิธีการสาธารณะ
คง BoostedTreesCalculateBestFeatureSplitV2 | สร้าง ( ขอบเขต ขอบเขต Operand <Integer> nodeIdRange, Iterable < Operand <ลอย >> statsSummariesList, Operand <String> splitTypes, Operand <Integer> candidateFeatureIds, Operand <ลอย> L1, Operand <ลอย> L2, Operand <ลอย> treeComplexity, ถูกดำเนินการ <ลอย> minNodeWeight ยาว logitsDimension) วิธีการจากโรงงานเพื่อสร้างคลาสที่ปิดการดำเนินการ BoostedTreesCalculateBestFeatureSplitV2 ใหม่ |
เอาท์พุท <Integer> | featureDimensions () เมตริกซ์อันดับ 1 ระบุมิติฟีเจอร์ที่ดีที่สุดสำหรับแต่ละฟีเจอร์ที่จะแยกสำหรับโหนดบางโหนด หากฟีเจอร์นั้นมีหลายมิติ |
เอาท์พุท <Integer> | featureIds () เทนเซอร์อันดับ 1 ที่ระบุรหัสคุณลักษณะที่ดีที่สุดสำหรับแต่ละโหนด |
เอาท์พุท <ลอย> | กำไร () เทนเซอร์อันดับ 1 แสดงถึงการเพิ่มขึ้นที่ดีที่สุดสำหรับแต่ละคุณสมบัติที่จะแยกสำหรับโหนดบางตัว |
เอาท์พุท <ลอย> | leftNodeContribs () เมตริกซ์อันดับ 2 ระบุการมีส่วนร่วมของโหนดด้านซ้ายเมื่อแยกจากโหนดหลัก (กำหนดโดยองค์ประกอบเทนเซอร์ในเอาต์พุต node_ids_list) ไปทางซ้ายตามเกณฑ์ที่กำหนดสำหรับแต่ละคุณลักษณะ |
เอาท์พุท <Integer> | nodeIds () เทนเซอร์อันดับ 1 ที่ระบุรหัสโหนดแยกที่เป็นไปได้สำหรับแต่ละคุณลักษณะ |
เอาท์พุท <ลอย> | rightNodeContribs () เทนเซอร์อันดับ 2 ที่มีรูปร่าง/เงื่อนไขเหมือนกับ left_node_contribs_list แต่ค่านั้นสำหรับโหนดที่ถูกต้องเท่านั้น |
เอาท์พุท <String> | splitWithDefaultDirections () เทนเซอร์อันดับ 1 ระบุทิศทางที่จะไปหากข้อมูลหายไป |
เอาท์พุท <Integer> | เกณฑ์ () เทนเซอร์อันดับ 1 ที่ระบุ id ที่ฝากข้อมูลเพื่อเปรียบเทียบกับ (เป็นเกณฑ์) สำหรับการแยกในแต่ละโหนด |
วิธีการสืบทอด
วิธีการสาธารณะ
สาธารณะคง BoostedTreesCalculateBestFeatureSplitV2 สร้าง ( ขอบเขต ขอบเขต Operand <Integer> nodeIdRange, Iterable < Operand <ลอย >> statsSummariesList, Operand <String> splitTypes, Operand <Integer> candidateFeatureIds, Operand <ลอย> L1, Operand <ลอย> L2, Operand <ลอย > treeComplexity, Operand <ลอย> minNodeWeight ยาว 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]) สำหรับสรุปสถิติสะสม (การไล่ระดับสี/เฮสเซียน) ต่อโหนด ต่อมิติ ต่อบัคเก็ตสำหรับแต่ละฟีเจอร์ มิติข้อมูลแรกของเมตริกซ์คือจำนวนการแยกสูงสุด ดังนั้นจึงไม่ใช่ทุกองค์ประกอบของมิติข้อมูลจะถูกใช้ แต่จะใช้เฉพาะดัชนีที่ระบุโดย node_ids เท่านั้น |
splitTypes | เทนเซอร์อันดับ 1 ที่ระบุว่า Op นี้ควรทำการแยกความไม่เท่าเทียมกันหรือการแยกความเท่าเทียมกันต่อคุณสมบัติ |
ผู้สมัครFeatureIds | อันดับ 1 เทนเซอร์พร้อมรหัสสำหรับแต่ละคุณสมบัติ นี่คือรหัสที่แท้จริงของคุณลักษณะ |
l1 | l1 ปัจจัยการทำให้เป็นมาตรฐานของน้ำหนักลีฟ ต่ออินสแตนซ์ตาม |
l2 | ปัจจัยการทำให้เป็นมาตรฐาน l2 กับน้ำหนักลีฟ ต่ออินสแตนซ์ตาม |
ความซับซ้อนของต้นไม้ | การปรับเพื่อให้ได้กำไรต่อใบตาม |
minNodeWeight | ค่าเฉลี่ยขั้นต่ำของ hessians ในโหนดก่อนกำหนดให้โหนดได้รับการพิจารณาสำหรับการแยก |
logitsDimension | ขนาดของ logit คือ จำนวนคลาส |
คืนสินค้า
- อินสแตนซ์ใหม่ของ BoostedTreesCalculateBestFeatureSplitV2
ประชาชน เอาท์พุท <Integer> featureDimensions ()
เมตริกซ์อันดับ 1 ระบุมิติฟีเจอร์ที่ดีที่สุดสำหรับแต่ละฟีเจอร์ที่จะแยกสำหรับโหนดบางโหนด หากฟีเจอร์นั้นมีหลายมิติ ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
ประชาชน เอาท์พุท <Integer> featureIds ()
เทนเซอร์อันดับ 1 ที่ระบุรหัสคุณลักษณะที่ดีที่สุดสำหรับแต่ละโหนด ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
ประชาชน เอาท์พุท <ลอย> กำไร ()
เทนเซอร์อันดับ 1 แสดงถึงการเพิ่มขึ้นที่ดีที่สุดสำหรับแต่ละคุณสมบัติที่จะแยกสำหรับโหนดบางตัว ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
ประชาชน เอาท์พุท <ลอย> leftNodeContribs ()
เมตริกซ์อันดับ 2 ระบุการมีส่วนร่วมของโหนดด้านซ้ายเมื่อแยกจากโหนดหลัก (กำหนดโดยองค์ประกอบเทนเซอร์ในเอาต์พุต node_ids_list) ไปทางซ้ายตามเกณฑ์ที่กำหนดสำหรับแต่ละคุณลักษณะ ค่านี้จะใช้เพื่อสร้างค่าโหนดด้านซ้ายโดยการเพิ่มค่าโหนดหลัก ขนาดมิติที่สองคือ 1 สำหรับบันทึก 1 มิติ แต่จะใหญ่กว่าสำหรับปัญหาหลายคลาส ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
ประชาชน เอาท์พุท <Integer> nodeIds ()
เทนเซอร์อันดับ 1 ที่ระบุรหัสโหนดแยกที่เป็นไปได้สำหรับแต่ละคุณลักษณะ ความยาวของรายการคือ num_features แต่เทนเซอร์แต่ละตัวมีขนาดต่างกัน เนื่องจากแต่ละฟีเจอร์มีโหนดที่เป็นไปได้ต่างกัน ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด
ประชาชน เอาท์พุท <ลอย> rightNodeContribs ()
เทนเซอร์อันดับ 2 ที่มีรูปร่าง/เงื่อนไขเหมือนกับ left_node_contribs_list แต่ค่านั้นสำหรับโหนดที่ถูกต้องเท่านั้น
ประชาชน เอาท์พุท <String> splitWithDefaultDirections ()
เทนเซอร์อันดับ 1 ระบุทิศทางที่จะไปหากข้อมูลหายไป ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด ค่าความไม่เท่าเทียมกันกับค่าดีฟอลต์ทางซ้ายคืนค่า 0, ค่าความไม่เท่าเทียมกันกับค่าดีฟอลต์ทางขวาจะคืนค่า 1, ความเท่าเทียมกันกับค่าดีฟอลต์ทางขวาจะคืนค่า 2
ประชาชน เอาท์พุท <Integer> เกณฑ์ ()
เทนเซอร์อันดับ 1 ที่ระบุ id ที่ฝากข้อมูลเพื่อเปรียบเทียบกับ (เป็นเกณฑ์) สำหรับการแยกในแต่ละโหนด ดูรายละเอียดด้านบน เช่น รูปร่างและขนาด