ต้นไม้ตัดสินใจ: ต้นไม้ฉลาด (ดีที่สุดก่อน) และระดับต้นไม้ฉลาด


14

ปัญหาที่ 1:

ฉันสับสนกับคำอธิบายของ LightGBMเกี่ยวกับวิธีการขยายต้นไม้

พวกเขาระบุ:

ขั้นตอนวิธีการเรียนรู้ต้นไม้ตัดสินใจส่วนใหญ่จะปลูกต้นไม้ตามระดับ (ความลึก) ในแนวนอนเช่นภาพต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

คำถามที่ 1 : อัลกอริทึม "ส่วนใหญ่" ใดถูกนำมาใช้ในลักษณะนี้ เท่าที่ฉันรู้ C4.5 และ CART ใช้ DFS XGBoost ใช้ BFS อัลกอริธึมหรือแพ็คเกจอื่นใดที่ใช้ BFS สำหรับต้นไม้ตัดสินใจ

ปัญหาที่ 2:

สถานะ LightGBM:

LightGBM ปลูกต้นไม้ตามใบฉลาด (ดีที่สุดก่อน) มันจะเลือกใบไม้ที่มีการสูญเสียเดลต้าสูงสุดที่จะเติบโต เมื่อปลูกใบเดียวกันอัลกอริทึมใบไม้ฉลาดสามารถลดการสูญเสียมากกว่าอัลกอริทึมระดับฉลาด

ป้อนคำอธิบายรูปภาพที่นี่

คำถามที่ 2 : ถูกต้องหรือไม่ที่จะบอกว่าต้นไม้เจริญเติบโตที่ชาญฉลาดระดับจะมีความลึกเท่ากันสำหรับใบไม้ทั้งหมด?

คำถามที่ 3:หากคำถามที่ 2 ไม่ถูกต้องต้นไม้จากการเติบโตในระดับที่ฉลาดและใบไม้จะมีลักษณะเหมือนกันในตอนท้ายของการสำรวจเส้นทาง (โดยไม่ต้องตัดแต่งกิ่ง ฯลฯ ) มันเป็นคำสั่งที่ถูกต้องหรือไม่

คำถามที่ 4:ถ้าคำถามที่ 3 ถูกต้อง "อัลกอริทึมใบไม้ที่ฉลาดสามารถลดการสูญเสียได้มากกว่าอัลกอริทึมระดับฉลาด" ได้อย่างไร? มันต้องทำอย่างไรกับอัลกอริธึมหลังการตัดแต่งกิ่ง?

คำตอบ:


11

หากคุณปลูกต้นไม้เต็มต้นที่ดีที่สุด (ใบไม้ฉลาด) และลึกแรก (ระดับฉลาด) จะส่งผลในต้นไม้เดียวกัน ความแตกต่างอยู่ในลำดับที่ต้นไม้ถูกขยาย เนื่องจากปกติแล้วเราจะไม่ปลูกต้นไม้ให้เต็มความลึกการเรียงลำดับ: การใช้เกณฑ์การหยุดก่อนกำหนดและวิธีการตัดแต่งกิ่งทำให้ต้นไม้แตกต่างกันมาก เนื่องจากใบฉลาดเลือกแบ่งตามการมีส่วนร่วมในการสูญเสียทั่วโลกและไม่เพียง แต่การสูญเสียตามสาขาเฉพาะมันมักจะ (ไม่เสมอไป) จะเรียนรู้ต้นไม้ที่มีข้อผิดพลาดต่ำกว่า "เร็ว" กว่าระดับฉลาด เช่นมีโหนดจำนวนน้อยใบไม้ที่ฉลาดจะทำให้ประสิทธิภาพในระดับที่ไม่ดี เมื่อคุณเพิ่มโหนดมากขึ้นโดยไม่หยุดหรือตัดพวกเขาจะรวมตัวกันเพื่อประสิทธิภาพเดียวกันเพราะพวกเขาจะสร้างต้นไม้เดียวกันในที่สุด

อ้างอิง:

Shi, H. (2007) การเรียนรู้การตัดสินใจต้นไม้ที่ดีที่สุดอันดับแรก (วิทยานิพนธ์, วิทยาศาสตรมหาบัณฑิต (MSc)) มหาวิทยาลัย Waikato, Hamilton, New Zealand เรียกดูจากhttps://hdl.handle.net/10289/2317


แก้ไข: สำหรับคำถามแรกของคุณทั้ง C4.5 และ CART เป็นตัวอย่างแรกที่เจาะลึกไม่ใช่ดีที่สุดก่อน นี่คือเนื้อหาที่เกี่ยวข้องจากการอ้างอิงข้างต้น:

1.2.1 ต้นไม้ตัดสินใจมาตรฐาน

อัลกอริธึมมาตรฐานเช่น C4.5 (Quinlan, 1993) และ CART (Breiman et al., 1984) สำหรับการชักนำการตัดสินใจจากบนลงล่างของต้นไม้การตัดสินใจขยายโหนดในลำดับความลึกแรกในแต่ละขั้นตอนโดยใช้กลยุทธ์การแบ่งและพิชิต โดยปกติที่แต่ละโหนดของแผนผังการตัดสินใจการทดสอบจะเกี่ยวข้องกับคุณลักษณะเดียวเท่านั้นและค่าของแอตทริบิวต์จะถูกเปรียบเทียบกับค่าคงที่ แนวคิดพื้นฐานของแผนผังการตัดสินใจแบบมาตรฐานคือก่อนอื่นให้เลือกแอตทริบิวต์เพื่อวางที่โหนดรูทและสร้างบางสาขาสำหรับแอตทริบิวต์นี้ตามเกณฑ์บางอย่าง (เช่นข้อมูลหรือดัชนี Gini) จากนั้นแบ่งอินสแตนซ์การฝึกอบรมออกเป็นชุดย่อยหนึ่งชุดสำหรับแต่ละสาขาที่ขยายจากโหนดรูท จำนวนชุดย่อยจะเหมือนกันกับจำนวนสาขา จากนั้นขั้นตอนนี้ซ้ำสำหรับสาขาที่เลือกโดยใช้เฉพาะอินสแตนซ์ที่เข้าถึงได้จริง คำสั่งคงที่ใช้เพื่อขยายโหนด (โดยปกติจากซ้ายไปขวา) หากตลอดเวลาอินสแตนซ์ทั้งหมดที่โหนดมีเลเบลคลาสเดียวกันซึ่งเรียกว่าโหนดบริสุทธิ์การแยกหยุดและโหนดจะกลายเป็นโหนดเทอร์มินัล กระบวนการก่อสร้างนี้จะดำเนินต่อไปจนกว่าโหนดทั้งหมดจะบริสุทธิ์ จากนั้นตามด้วยกระบวนการตัดแต่งกิ่งเพื่อลดการโอเวอร์โหลด (ดูหัวข้อ 1.3)

1.2.2 ต้นไม้ตัดสินใจที่ดีที่สุดอันดับแรก

ความเป็นไปได้อีกประการหนึ่งซึ่งดูเหมือนว่าจะได้รับการประเมินในบริบทของการเพิ่มอัลกอริธึมเท่านั้น (Friedman et al., 2000) คือการขยายโหนดในลำดับที่ดีที่สุดอันดับแรกแทนที่จะเป็นลำดับที่ตายตัว วิธีการนี้จะเพิ่มการแยก "ดีที่สุด" โหนดไปยังต้นไม้ในแต่ละขั้นตอน โหนด“ ดีที่สุด” คือโหนดที่ลดความบริสุทธิ์สูงสุดในบรรดาโหนดทั้งหมดที่มีให้สำหรับการแยก (เช่นไม่ได้ระบุว่าเป็นโหนดเทอร์มินัล) แม้ว่าสิ่งนี้จะส่งผลในต้นไม้ที่โตเต็มที่เช่นเดียวกับการขยายความลึกมาตรฐานครั้งแรก แต่ก็ช่วยให้เราสามารถตรวจสอบวิธีการตัดแต่งกิ่งต้นไม้ใหม่ที่ใช้การตรวจสอบข้ามเพื่อเลือกจำนวนการขยาย ทั้งการตัดล่วงหน้าและการตัดภายหลังสามารถทำได้ด้วยวิธีนี้ซึ่งทำให้สามารถทำการเปรียบเทียบได้อย่างยุติธรรม (ดูหัวข้อ 1.3)

ต้นไม้การตัดสินใจที่ดีที่สุดอันดับแรกถูกสร้างขึ้นในรูปแบบการแบ่งและพิชิตที่คล้ายกับต้นไม้การตัดสินใจที่มีความลึกอันดับแรก แนวคิดพื้นฐานของการสร้างทรีแรกที่ดีที่สุดมีดังนี้ ก่อนอื่นให้เลือกแอททริบิวเพื่อวางที่โหนดรูทและสร้างกิ่งก้านสำหรับแอททริบิวนี้ตามเกณฑ์บางอย่าง จากนั้นแบ่งอินสแตนซ์การฝึกอบรมออกเป็นชุดย่อยหนึ่งชุดสำหรับแต่ละสาขาที่ขยายจากโหนดรูท ในวิทยานิพนธ์นี้พิจารณาเฉพาะต้นไม้ตัดสินใจแบบทวิภาคและจำนวนสาขาเป็นสอง จากนั้นขั้นตอนนี้ซ้ำสำหรับสาขาที่เลือกโดยใช้เฉพาะอินสแตนซ์ที่เข้าถึงได้จริง ในแต่ละขั้นตอนเราเลือกชุดย่อย "ดีที่สุด" ในกลุ่มย่อยทั้งหมดที่มีให้สำหรับการขยาย กระบวนการสร้างนี้จะดำเนินต่อไปจนกว่าโหนดทั้งหมดจะบริสุทธิ์หรือถึงจำนวนการขยายที่เฉพาะเจาะจง รูปที่ 1. 1 แสดงความแตกต่างในลำดับการแยกระหว่างต้นไม้ไบนารีแรกที่ดีที่สุดแรกที่มีสมมติฐานและต้นไม้ต้นไม้แรกลึกไบนารี โปรดทราบว่าอาจมีการเลือกลำดับอื่น ๆ สำหรับทรีแรกที่ดีที่สุดในขณะที่ลำดับนั้นจะเหมือนกันเสมอในกรณีที่ความลึกแรก


คุณช่วยตอบคำถามแรกด้วยได้ไหม?
Jekaterina Kokatjuhha

อัปเดตคำตอบของฉัน รุ่นสั้นคือทั้ง C4.5 และ CART เป็นตัวอย่างของความลึกแรกไม่ใช่ดีที่สุดก่อน
David Marx

คำถามแรกของฉันไม่เกี่ยวกับคำนิยามหรือคำอธิบายที่ดีที่สุดแรกหรือ DFS และฉันก็บอกตัวเองว่า C4.5 และ CART เป็น DFS คำถามแรกเกี่ยวกับอัลกอริธึม "ส่วนใหญ่" ใดที่ถูกใช้งานโดยระดับที่ชาญฉลาด [... ] อัลกอริทึมหรือแพ็คเกจอื่นใดที่ใช้ BFS สำหรับต้นไม้ตัดสินใจ?
Jekaterina Kokatjuhha

1
การเจริญเติบโตของต้นไม้ "แรกแรก" เป็นระดับที่ชาญฉลาด นั่นคือสิ่งที่ฉันพยายามจะบอกคุณ อ่านข้อความที่ฉันไฮไลต์ให้คุณอ่าน อย่าสับสน DFS และ BFS การสำรวจเส้นทางด้วยกราฟที่นี่ด้วยการเติบโตของต้นไม้ "อันดับแรก" และ "ดีที่สุดก่อน" สิ่งเหล่านี้ไม่เหมือนกันและการเติบโตครั้งแรกของความลึกหมายถึงสิ่งที่คุณเรียกว่า "BFS" ​​ไม่ใช่ "DFS"
David Marx

นั่นคือจุดวิกฤติที่ฉันขาดหายไปตลอดเวลา ขอบคุณ.
Jekaterina Kokatjuhha
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.