อย่างที่คุณพูดไปมากมีการพูดคุยกันเกี่ยวกับเรื่องนี้และมีทฤษฎีที่ค่อนข้างหนักหน่วงที่ได้รับพร้อมกับที่ฉันต้องยอมรับว่าฉันไม่เคยเข้าใจ จากประสบการณ์การใช้งานจริงของฉัน AdaBoost นั้นค่อนข้างแข็งแกร่งในการ overfitting และ LPBoost (Linear Programming Boosting) ยิ่งกว่านั้นมาก (เนื่องจากฟังก์ชันวัตถุประสงค์ต้องมีการผสมผสานของผู้เรียนที่อ่อนแอซึ่งเป็นรูปแบบของการควบคุมความจุ) ปัจจัยหลักที่มีอิทธิพลต่อมันคือ:
"ความแข็งแกร่ง" ของผู้เรียนที่ "อ่อนแอ": หากคุณใช้ผู้เรียนที่อ่อนแอง่าย ๆ เช่นการตัดสินใจ (ต้นไม้ตัดสินใจ 1 ระดับ) อัลกอริทึมจะมีโอกาสน้อยที่จะ overfitting เมื่อใดก็ตามที่ฉันพยายามใช้ผู้เรียนที่อ่อนแอกว่าที่ซับซ้อนมากขึ้น (เช่นต้นไม้ตัดสินใจหรือแม้กระทั่งไฮเปอร์แพลนต์) ฉันพบว่าการให้น้ำหนักมากเกินไปเกิดขึ้นเร็วกว่ามาก
ระดับเสียงรบกวนในข้อมูล: AdaBoost โดยเฉพาะอย่างยิ่งมีแนวโน้มที่จะ overfitting ในชุดข้อมูลที่มีเสียงดัง ในการตั้งค่าแบบฟอร์มปกตินี้ (RegBoost, AdaBoostReg, LPBoost, QPBoost) จะดีกว่า
มิติของข้อมูล: เรารู้ว่าโดยทั่วไปแล้วเราพบว่ามีจำนวนมากขึ้นในพื้นที่มิติสูง ("การสาปแช่งของมิติ") และ AdaBoost ยังสามารถทนทุกข์ในแง่นั้นเพราะมันเป็นเพียงการรวมกันเชิงเส้นของตัวแยกประเภท จากปัญหา ไม่ว่าจะเป็นเช่นเดียวกับตัวแยกประเภทอื่น ๆ ยากที่จะตรวจสอบ
แน่นอนคุณสามารถใช้วิธีการแก้ปัญหาเช่นชุดการตรวจสอบความถูกต้องหรือการตรวจสอบข้าม -fold เพื่อตั้งค่าพารามิเตอร์การหยุด (หรือพารามิเตอร์อื่น ๆ ในตัวแปรที่แตกต่างกัน) ตามที่คุณต้องการสำหรับลักษณนามอื่น ๆk
caret
แพคเกจเพื่อตรวจสอบความถูกต้องของ adaboost และฉันพบว่าโดยทั่วไปแล้วจะใช้งานได้ดี