2.5.4
Bagging
สรุป
- สรุปเป้าหมาย สมมติฐาน และเงื่อนไขที่เหมาะสมของวิธีนี้.
- ตรวจสอบว่ากฎการอัปเดตหรือเกณฑ์การแบ่งส่งผลต่อพฤติกรรมโมเดลอย่างไร.
- ใช้ตัวอย่างโค้ดเพื่อกำหนดแนวทางปรับพารามิเตอร์อย่างเป็นรูปธรรม.
สัญชาตญาณ #
Bagging (Bootstrap Aggregating) ควรเข้าใจผ่านสมมติฐาน กลไกการปรับปรุงโมเดล และรูปแบบความผิดพลาดบนข้อมูลจริง เพื่อให้เลือกโมเดลและปรับพารามิเตอร์ได้อย่างเหมาะสม.
คำอธิบายโดยละเอียด #
ขั้นตอน #
- สุ่มข้อมูลจากชุดฝึกแบบ bootstrap เพื่อสร้างชุดย่อยหลายชุด
- ฝึกฐานโมเดล (เช่น decision tree) บนแต่ละชุด
- สำหรับงานจำแนกใช้การโหวต สำหรับงานถดถอยใช้ค่าเฉลี่ย
Bagging เน้นลด variance ของผู้เรียนที่ “เสียงดัง” เช่น decision tree ที่ลึก
โค้ดตัวอย่าง #
| |
พารามิเตอร์ที่สำคัญ #
n_estimators: จำนวนโมเดลย่อย มากขึ้น → แปรปรวนลดลงแต่ใช้เวลามากขึ้นmax_samples,max_features: สัดส่วนข้อมูล/ฟีเจอร์ที่ใช้ต่อโมเดลย่อยbootstrap,bootstrap_features: เลือกสุ่มซ้ำทั้งตัวอย่างหรือฟีเจอร์oob_score: ประเมินประสิทธิภาพจากตัวอย่างที่ไม่ได้ใช้ (out-of-bag) เพื่อเลี่ยงการแบ่ง validation เพิ่ม
ข้อดี / ข้อจำกัด #
| ข้อดี | ข้อจำกัด |
|---|---|
| โค้ดง่าย ขนาน (parallelize) ได้ | ต้องเก็บโมเดลหลายตัว ใช้หน่วยความจำสูง |
| ลด variance ได้มาก | ไม่ลด bias มาก ถ้าโมเดลฐานอ่อนแอเกินไป |
| มี OOB score ไม่ต้องแบ่ง validation | ผลลัพธ์ยากตีความยิ่งกว่าต้นไม้เดี่ยว |