Як ви кажете, багато обговорювалося з цього приводу, і є якась досить важка теорія, яка пішла разом з цим, що, маю визнати, я ніколи не до кінця зрозумів. На моєму практичному досвіді AdaBoost є досить надійним для надмірного оснащення, а LPBoost (підвищення рівня лінійного програмування) ще більше (тому що цільова функція вимагає рідкого поєднання слабких учнів, що є формою контролю за можливостями). Основними факторами, які на це впливають, є:
"Сила" "слабких" учнів: Якщо ви користуєтеся дуже простими слабкими учнями, такими як пеньки (дерева рішень на 1 рівні), алгоритми набагато менше схильні до надмірної підготовки. Кожного разу, коли я намагався використовувати більш складні слабкі студенти (наприклад, дерева рішень або навіть гіперплани), я виявляв, що надмірне оснащення відбувається набагато швидше
Рівень шуму в даних: AdaBoost особливо схильний до надмірного розміщення на галасливих наборах даних. У цьому налаштуванні переважні регульовані форми (RegBoost, AdaBoostReg, LPBoost, QPBoost).
Розмірність даних: Ми знаємо, що в цілому ми відчуваємо більше пристосування у просторах високих розмірів ("прокляття розмірності"), і AdaBoost також може постраждати в цьому відношенні, оскільки це просто лінійна комбінація класифікаторів, які самі страждають від проблеми. Чи настільки він схильний, як інші класифікатори, важко визначити.
Звичайно, ви можете використовувати евристичні методи, такі як набори валідації або кратну перехресну валідацію, щоб встановити параметр зупинки (або інші параметри в різних варіантах), як для будь-якого іншого класифікатора.к
caret
пакет для перехресної перевірки adaboost, і я виявив, що він зазвичай добре узагальнюється.