การปรับให้พอดีและตัดแต่งกิ่งไม้
การใช้อัลกอริทึมที่อธิบายข้างต้นช่วยให้เราฝึกแผนผังการตัดสินใจที่จะแยกประเภทตัวอย่างการฝึกได้อย่างสมบูรณ์ โดยจะแยกตัวอย่างออกจากกันได้ แต่หากชุดข้อมูลมีสัญญาณรบกวน โครงสร้างต้นไม้นี้จะโอบรับกับข้อมูลและแสดงความแม่นยำในการทดสอบต่ำ
ภาพต่อไปนี้แสดงชุดข้อมูลที่มีสัญญาณรบกวนซึ่งมีความสัมพันธ์แบบเชิงเส้นระหว่างฟีเจอร์ x และป้ายกำกับ y ตัวเลขนี้ยังแสดงแผนผังการตัดสินใจที่ฝึกในชุดข้อมูลนี้โดยไม่มีการทำให้เป็นมาตรฐานประเภทใดๆ ด้วย โมเดลนี้คาดการณ์ตัวอย่างการฝึกทั้งหมดได้อย่างถูกต้อง (การคาดการณ์ของโมเดลตรงกับตัวอย่างการฝึก) อย่างไรก็ตาม ในชุดข้อมูลใหม่ที่มีรูปแบบเชิงเส้นเดียวกันและอินสแตนซ์สัญญาณรบกวนที่ต่างกัน โมเดลดังกล่าวจะทำงานได้ไม่ดี
รูปที่ 12 ชุดข้อมูลเสียงดัง
หากต้องการจำกัดแผนผังการตัดสินใจมากเกินไป ให้ใช้เกณฑ์รูปแบบอย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างต่อไปนี้ขณะฝึกแผนผังการตัดสินใจ
- ตั้งค่าความลึกสูงสุด: ป้องกันไม่ให้แผนผังการตัดสินใจขยายตัวจนเลยความลึกสูงสุด เช่น 10
- กำหนดจำนวนตัวอย่างขั้นต่ำในใบไม้: ระบบจะไม่พิจารณาแยกใบไม้ที่มีจำนวนตัวอย่างน้อยกว่าที่กำหนด
รูปต่อไปนี้แสดงผลกระทบของจำนวนตัวอย่างขั้นต่ำที่แตกต่างกันต่อใบไม้ โมเดลจะจับสัญญาณรบกวนน้อยลง
รูปที่ 13 จำนวนตัวอย่างขั้นต่ำต่อใบไม้จะแตกต่างกัน
นอกจากนี้คุณยังทำให้เป็นประจําหลังจากการฝึกได้โดยการเลือกนํา (ตัด) บางสาขาออก (ตัด) ซึ่งก็คือการแปลงโหนดที่ไม่ใช่ใบไม้บางจุดเป็นใบ วิธีทั่วไปในการเลือกสาขาที่จะนำออกคือการใช้ชุดข้อมูลการตรวจสอบ กล่าวคือ หากการนำสาขาออกจะช่วยเพิ่มคุณภาพของโมเดลในชุดข้อมูลการตรวจสอบได้ ระบบก็จะนำสาขานั้นออก
ภาพวาดต่อไปนี้แสดงถึงแนวคิดนี้ ในส่วนนี้ เราจะทดสอบว่าการตรวจสอบความถูกต้อง ของแผนผังการตัดสินใจจะดีขึ้นไหม ถ้าโหนดสีเขียวที่ไม่ใช่ใบไม้ กลายเป็นรูปใบไม้ กล่าวคือ มีการตัดโหนดสีส้มออก
รูปที่ 14 ตัดเงื่อนไขและลูกให้เป็นใบ
ภาพต่อไปนี้แสดงผลของการใช้ชุดข้อมูล 20% เป็นการตรวจสอบความถูกต้องเพื่อตัดโครงสร้างการตัดสินใจ
รูปที่ 15 ใช้ 20% ของชุดข้อมูลเพื่อตัดโครงสร้างการตัดสินใจ
โปรดทราบว่าการใช้ชุดข้อมูลการตรวจสอบจะลดจำนวนตัวอย่างที่ใช้ได้สำหรับการฝึกเบื้องต้นของแผนผังการตัดสินใจ
ผู้สร้างโมเดลจำนวนมากใช้เกณฑ์ที่หลากหลาย ตัวอย่างเช่น คุณสามารถทำสิ่งต่างๆ ต่อไปนี้ทั้งหมด
- ใช้จำนวนตัวอย่างขั้นต่ำต่อใบไม้
- ใช้ความลึกสูงสุดเพื่อจำกัดการเติบโตของแผนผังการตัดสินใจ
- ตัดแผนผังการตัดสินใจ
- จำนวนตัวอย่างขั้นต่ำคือ 5 (
min_examples = 5
) - ระบบจะเก็บชุดข้อมูลการฝึก 10% ไว้เพื่อตรวจสอบ (
validation_ratio = 0.1
)
validation_ratio=0.0
เกณฑ์เหล่านั้นจะแนะนำไฮเปอร์พารามิเตอร์ใหม่ที่ต้องปรับแต่ง (เช่น ความลึกสูงสุดของโครงสร้างต้นไม้) ซึ่งมักต้องทำในการปรับแต่งไฮเปอร์พารามิเตอร์อัตโนมัติ โดยทั่วไปแล้ว แผนผังการตัดสินใจ เร็วพอที่จะฝึกเพื่อใช้การปรับแต่งไฮเปอร์พารามิเตอร์กับ การตรวจสอบแบบข้ามระบบ เช่น ในชุดข้อมูลที่มีตัวอย่าง "n"
- แบ่งตัวอย่างการฝึกออกเป็นกลุ่มๆ ที่ไม่ทับซ้อนกัน ตัวอย่างเช่น
p=10
- สำหรับค่าไฮเปอร์พารามิเตอร์ที่เป็นไปได้ทั้งหมด เช่น ความลึกสูงสุด
ใน {3,5,6,7,8,9} ตัวอย่างต่ำสุดใน {5,8,10,20}
- ประเมินคุณภาพของแผนผังการตัดสินใจในแต่ละกลุ่มที่ผ่านการฝึกในกลุ่ม P-1 อื่นๆ
- เฉลี่ยการประเมินให้กับทั้งกลุ่ม
- เลือกค่าไฮเปอร์พารามิเตอร์ที่มีการประเมินหาค่าเฉลี่ยดีที่สุด
- ฝึกโครงสร้างการตัดสินใจขั้นสุดท้ายโดยใช้ตัวอย่าง "n" ทั้งหมดกับไฮเปอร์พารามิเตอร์ที่เลือก
ในส่วนนี้ เราได้กล่าวถึงวิธีที่ต้นไม้การตัดสินใจจำกัดการจัดองค์ประกอบมากเกินไป ถึงแม้จะด้วยวิธีการเหล่านี้แล้ว แต่ความไม่พอดีและมากเกินไปก็เป็นจุดอ่อนที่สำคัญของแผนผังการตัดสินใจ ป่าการตัดสินใจนำเสนอวิธีการใหม่ๆ ในการจำกัดการวางซ้อนที่มากเกินไป ซึ่งเราจะเห็นในภายหลัง
การตีความแผนผังการตัดสินใจโดยตรง
แผนผังการตัดสินใจตีความได้ง่ายๆ อย่างไรก็ตาม การเปลี่ยนตัวอย่างแม้ 2-3 ตัวอย่าง จะสามารถเปลี่ยนโครงสร้างโดยสิ้นเชิง หรือด้วยเหตุนี้ก็จะเป็นการตีความของแผนผังการตัดสินใจด้วย
เนื่องจากวิธีการสร้างแผนผังการตัดสินใจ การแบ่งพาร์ติชันตัวอย่างการฝึก ทำให้สามารถใช้แผนผังการตัดสินใจเพื่อตีความชุดข้อมูลได้ (ซึ่งตรงข้ามกับโมเดล) แต่ละใบแทนมุมหนึ่งๆ ของชุดข้อมูล
model.describe()
คุณยังเข้าถึงและวาดแผนผังต้นไม้แต่ละรายการด้วย model.get_tree()
ได้
ดูรายละเอียดเพิ่มเติมได้ที่
บทแนะนำการตรวจสอบโมเดลของ YDF
อย่างไรก็ตาม การตีความทางอ้อมก็ให้ข้อมูลได้เช่นกัน