มีโพสต์บล็อกมากมายวิดีโอ YouTube และอื่น ๆ เกี่ยวกับแนวคิดของการห่อ หรือ เพิ่มต้นไม้ ความเข้าใจทั่วไปของฉันคือรหัสหลอกสำหรับแต่ละคือ:
บรรจุถุง:
- นำตัวอย่างแบบสุ่มจำนวน N% ของตัวอย่างและ y% ของฟีเจอร์
- ปรับโมเดลของคุณ (เช่นแผนผังการตัดสินใจ) ในแต่ละ N
- ทำนายผลด้วยแต่ละ N
- เฉลี่ยการคาดการณ์เพื่อให้ได้คำทำนายสุดท้าย
การส่งเสริมการ:
- ปรับโมเดลของคุณ (เช่นแผนผังการตัดสินใจ) กับข้อมูล
- รับส่วนที่เหลือ
- พอดีกับโมเดลของคุณกับของเหลือ
- ไปที่ 2 เพื่อเพิ่มรอบ N
- การทำนายขั้นสุดท้ายคือผลรวมถ่วงน้ำหนักของเครื่องทำนายลำดับ
ฉันจะขอชี้แจงความเข้าใจของฉันด้านบน แต่คำถามที่ฉันตั้งใจไว้มีดังนี้:
ทั้ง XGBoost และ LightGBM มี params ที่อนุญาตให้ใส่ถุงได้ แอปพลิเคชันไม่ได้บรรจุถุงหรือเพิ่มประสิทธิภาพ (ซึ่งเป็นสิ่งที่ทุกโพสต์ในบล็อกพูดถึง) แต่เป็นการบรรจุและเพิ่มประสิทธิภาพ รหัสหลอกสำหรับสถานที่และเวลาที่รวมถุงและการเพิ่มกำลังเกิดขึ้นคืออะไร?
ฉันคาดว่ามันจะเป็น "ต้นไม้ที่ถูกกระตุ้นให้มีต้นไม้เพิ่มขึ้น" แต่ดูเหมือนว่ามันจะเป็น ความแตกต่างดูเหมือนมาก
ต้นไม้ที่ได้รับการเสริมถุง:
- นำตัวอย่างแบบสุ่มจำนวน N% ของตัวอย่างและ y% ของฟีเจอร์
- พอดีกับต้นไม้ที่ได้รับการเร่งในแต่ละตัวอย่าง N
- ทำนายผลด้วยแต่ละ N
- เฉลี่ยการคาดการณ์เพื่อให้ได้คำทำนายสุดท้าย
ดูเหมือนว่าวิธีที่ดีที่สุดที่จะทำ ท้ายที่สุดความเสี่ยงในการเพิ่มกำลังจะมากเกินไปและประโยชน์หลักของการบรรจุคือการลดการบรรจุมากเกินไป การห่อของแบบจำลองที่ได้รับการส่งเสริมดูเหมือนจะเป็นความคิดที่ดี
อย่างไรก็ตามจากการมองผ่านตัวอย่างเช่นscikit-learn
gradient_boosting.py (ซึ่งทำตัวอย่างการใส่ถุง แต่ไม่ใช่การเลือกคุณสมบัติแบบสุ่ม) และการวนนักเก็ตเล็ก ๆ ทั่วโพสต์เกี่ยวกับ LightGBM และ XGBoost ดูเหมือนว่า XGBoost และ LightGBM จะทำงานดังนี้:
ต้นไม้ที่ได้รับถุงเพิ่ม:
- ติดตั้งแผนผังการตัดสินใจกับข้อมูลของคุณ
- สำหรับฉันในการเพิ่มรอบ N:
- รับส่วนที่เหลือ
- ถ้าฉัน mod bag_frequency == 0 (เช่นกระเป๋าทุก ๆ 5 รอบ):
- ใช้ตัวอย่างสุ่มเดียวของ x% ของกลุ่มตัวอย่างและ y% ของคุณสมบัติ ใช้ตัวอย่างแบบสุ่มนี้ไปข้างหน้า
- ต้นไม้พอดีกับส่วนที่เหลือ
- การทำนายขั้นสุดท้ายคือผลรวมถ่วงน้ำหนักของเครื่องทำนายลำดับ
โปรดแก้ไขความเข้าใจของฉันที่นี่และกรอกรายละเอียด ต้นไม้ที่ถูกกระตุ้นเพิ่ม (มีเพียง 1 ต้นที่สุ่มต่อ bag_frequency) ดูเหมือนจะไม่ทรงพลังเท่ากับต้นไม้ที่ถูกกระตุ้นต้นไม้