Como dices se ha discutido mucho sobre este asunto, y hay una teoría bastante pesada que lo acompaña que tengo que admitir que nunca entendí del todo. En mi experiencia práctica, AdaBoost es bastante robusto al sobreajuste, y LPBoost (Linear Programming Boosting) aún más (porque la función objetivo requiere una combinación dispersa de aprendices débiles, que es una forma de control de la capacidad). Los principales factores que influyen son:
-
La "fuerza" de los aprendices "débiles": Si se utilizan aprendices débiles muy sencillos, como los tocones de decisión (árboles de decisión de 1 nivel), los algoritmos son mucho menos propensos al sobreajuste. Siempre que he intentado utilizar aprendices débiles más complicados (como árboles de decisión o incluso hiperplanos) he descubierto que el sobreajuste se produce mucho más rápidamente
-
El nivel de ruido en los datos: AdaBoost es especialmente propenso a sobreajustarse en conjuntos de datos ruidosos. En este caso, son preferibles las formas regularizadas (RegBoost, AdaBoostReg, LPBoost, QPBoost).
-
La dimensionalidad de los datos: Sabemos que, en general, experimentamos más el sobreajuste en espacios de alta dimensionalidad ("la maldición de la dimensionalidad"), y AdaBoost también puede sufrir en ese sentido, ya que es simplemente una combinación lineal de clasificadores que a su vez sufren el problema. Es difícil determinar si es tan propenso como otros clasificadores.
Por supuesto, puede utilizar métodos heurísticos como los conjuntos de validación o $k$ -fold cross-validation para establecer el parámetro de parada (u otros parámetros en las diferentes variantes) como lo haría para cualquier otro clasificador.
1 votos
Mi intuición es que es más propenso al sobreajuste que un bosque aleatorio. Sin embargo, el algoritmo está diseñado para evitar el sobreajuste, y normalmente no parece ser un problema. No tengo referencias que respalden esto, pero se puede utilizar el
caret
para la validación cruzada de adaboost, y he comprobado que suele generalizar bien.