การปรับให้พอดีและตัดแต่งกิ่งไม้

การใช้อัลกอริทึมที่อธิบายข้างต้นช่วยให้เราฝึกแผนผังการตัดสินใจที่จะแยกประเภทตัวอย่างการฝึกได้อย่างสมบูรณ์ โดยจะแยกตัวอย่างออกจากกันได้ แต่หากชุดข้อมูลมีสัญญาณรบกวน โครงสร้างต้นไม้นี้จะโอบรับกับข้อมูลและแสดงความแม่นยำในการทดสอบต่ำ

ภาพต่อไปนี้แสดงชุดข้อมูลที่มีสัญญาณรบกวนซึ่งมีความสัมพันธ์แบบเชิงเส้นระหว่างฟีเจอร์ x และป้ายกำกับ y ตัวเลขนี้ยังแสดงแผนผังการตัดสินใจที่ฝึกในชุดข้อมูลนี้โดยไม่มีการทำให้เป็นมาตรฐานประเภทใดๆ ด้วย โมเดลนี้คาดการณ์ตัวอย่างการฝึกทั้งหมดได้อย่างถูกต้อง (การคาดการณ์ของโมเดลตรงกับตัวอย่างการฝึก) อย่างไรก็ตาม ในชุดข้อมูลใหม่ที่มีรูปแบบเชิงเส้นเดียวกันและอินสแตนซ์สัญญาณรบกวนที่ต่างกัน โมเดลดังกล่าวจะทำงานได้ไม่ดี

ความชันทั่วไปคือ +1 แต่เนื่องจากชุดข้อมูลเสียงดังมาก บางครั้งจุดข้อมูลแต่ละจุดจึงห่างจากเส้นที่เหมาะสมที่สุด

รูปที่ 12 ชุดข้อมูลเสียงดัง

 

หากต้องการจำกัดแผนผังการตัดสินใจมากเกินไป ให้ใช้เกณฑ์รูปแบบอย่างใดอย่างหนึ่งหรือทั้ง 2 อย่างต่อไปนี้ขณะฝึกแผนผังการตัดสินใจ

  • ตั้งค่าความลึกสูงสุด: ป้องกันไม่ให้แผนผังการตัดสินใจขยายตัวจนเลยความลึกสูงสุด เช่น 10
  • กำหนดจำนวนตัวอย่างขั้นต่ำในใบไม้: ระบบจะไม่พิจารณาแยกใบไม้ที่มีจำนวนตัวอย่างน้อยกว่าที่กำหนด

รูปต่อไปนี้แสดงผลกระทบของจำนวนตัวอย่างขั้นต่ำที่แตกต่างกันต่อใบไม้ โมเดลจะจับสัญญาณรบกวนน้อยลง

3 พล็อต แต่ละภาพแสดงผลกระทบของค่าที่ต่างกันสำหรับจำนวนตัวอย่างขั้นต่ำต่อใบไม้ ค่าที่ต่างกันคือ 2, 5 และ 10

รูปที่ 13 จำนวนตัวอย่างขั้นต่ำต่อใบไม้จะแตกต่างกัน

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

ภาพวาดต่อไปนี้แสดงถึงแนวคิดนี้ ในส่วนนี้ เราจะทดสอบว่าการตรวจสอบความถูกต้อง ของแผนผังการตัดสินใจจะดีขึ้นไหม ถ้าโหนดสีเขียวที่ไม่ใช่ใบไม้ กลายเป็นรูปใบไม้ กล่าวคือ มีการตัดโหนดสีส้มออก

แผนผังการตัดสินใจ 2 แบบ แผนผังการตัดสินใจหนึ่งมี 9 โหนด ส่วนอีกโหนดหนึ่งถูกตัดเหลือเพียง 6 โหนดโดยเปลี่ยนเงื่อนไขใดเงื่อนไขหนึ่งให้เป็นใบไม้

รูปที่ 14 ตัดเงื่อนไขและลูกให้เป็นใบ

 

ภาพต่อไปนี้แสดงผลของการใช้ชุดข้อมูล 20% เป็นการตรวจสอบความถูกต้องเพื่อตัดโครงสร้างการตัดสินใจ

โครงเรื่องแสดงโมเดลที่คลุมทับด้วยพื้นผิวขรุขระกับโมเดลในอุดมคติของเส้นตรง

รูปที่ 15 ใช้ 20% ของชุดข้อมูลเพื่อตัดโครงสร้างการตัดสินใจ

 

โปรดทราบว่าการใช้ชุดข้อมูลการตรวจสอบจะลดจำนวนตัวอย่างที่ใช้ได้สำหรับการฝึกเบื้องต้นของแผนผังการตัดสินใจ

ผู้สร้างโมเดลจำนวนมากใช้เกณฑ์ที่หลากหลาย ตัวอย่างเช่น คุณสามารถทำสิ่งต่างๆ ต่อไปนี้ทั้งหมด

  • ใช้จำนวนตัวอย่างขั้นต่ำต่อใบไม้
  • ใช้ความลึกสูงสุดเพื่อจำกัดการเติบโตของแผนผังการตัดสินใจ
  • ตัดแผนผังการตัดสินใจ
รหัส YDF
ใน YDF อัลกอริทึมการเรียนรู้จะได้รับการกำหนดค่าไว้ล่วงหน้าด้วยค่าเริ่มต้นสำหรับไฮเปอร์พารามิเตอร์ที่ตัดออกทั้งหมด ลองดูตัวอย่างค่าเริ่มต้น สำหรับไฮเปอร์พารามิเตอร์ที่ตัดออก 2 ตัว ดังนี้
  • จำนวนตัวอย่างขั้นต่ำคือ 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 ตัวอย่าง จะสามารถเปลี่ยนโครงสร้างโดยสิ้นเชิง หรือด้วยเหตุนี้ก็จะเป็นการตีความของแผนผังการตัดสินใจด้วย

เนื่องจากวิธีการสร้างแผนผังการตัดสินใจ การแบ่งพาร์ติชันตัวอย่างการฝึก ทำให้สามารถใช้แผนผังการตัดสินใจเพื่อตีความชุดข้อมูลได้ (ซึ่งตรงข้ามกับโมเดล) แต่ละใบแทนมุมหนึ่งๆ ของชุดข้อมูล

รหัส YDF
ใน YDF คุณจะดูต้นไม้ได้ด้วยฟังก์ชัน model.describe() คุณยังเข้าถึงและวาดแผนผังต้นไม้แต่ละรายการด้วย model.get_tree() ได้ ดูรายละเอียดเพิ่มเติมได้ที่ บทแนะนำการตรวจสอบโมเดลของ YDF

อย่างไรก็ตาม การตีความทางอ้อมก็ให้ข้อมูลได้เช่นกัน