Estoy un poco confundido sobre el aprendizaje conjunto. En pocas palabras, ejecuta k modelos y obtiene el promedio de estos k modelos. ¿Cómo se puede garantizar que el promedio de los k modelos sea mejor que cualquiera de los modelos por sí mismos? Entiendo que el sesgo está "extendido" o "promediado". Sin embargo, ¿qué pasa si hay dos modelos en el conjunto (es decir, k = 2) y uno de ellos es peor que el otro? ¿No sería el conjunto peor que el mejor modelo?
machine-learning
ensemble
user1691278
fuente
fuente
Respuestas:
No esta garantizado. Como dices, el conjunto podría ser peor que los modelos individuales. Por ejemplo, tomar el promedio del modelo verdadero y un modelo malo daría un modelo bastante malo.
El promedio de modelos solo será una mejora si los modelos son (algo) independientes entre sí. Por ejemplo, en el ensacado, cada modelo se construye a partir de un subconjunto aleatorio de los datos, por lo que se incorpora cierta independencia. O los modelos se pueden construir usando diferentes combinaciones de características, y luego se combinan mediante el promedio.k
Además, el promedio de modelos solo funciona bien cuando los modelos individuales tienen una alta varianza. Es por eso que se construye un bosque aleatorio usando árboles muy grandes. Por otro lado, promediar un montón de modelos de regresión lineal todavía te da un modelo lineal, que probablemente no sea mejor que los modelos con los que comenzaste (¡pruébalo!)
Otros métodos de conjunto, como el refuerzo y la combinación, funcionan tomando los resultados de los modelos individuales, junto con los datos de entrenamiento, como entradas para un modelo más grande. En este caso, no es sorprendente que a menudo funcionen mejor que los modelos individuales, ya que de hecho son más complicados y aún usan los datos de entrenamiento.
fuente
En su ejemplo, su conjunto de dos modelos podría ser peor que un solo modelo en sí. Pero su ejemplo es artificial, generalmente construimos más de dos en nuestro conjunto.
No hay garantía absoluta de que un modelo de conjunto funcione mejor que un modelo individual, pero si construye muchos de ellos, y su clasificador individual es débil . Su rendimiento general debería ser mejor que un modelo individual.
En el aprendizaje automático, el entrenamiento de múltiples modelos generalmente supera al entrenamiento de un solo modelo. Eso es porque tienes más parámetros para sintonizar.
fuente
Solo quiero arrojar algo que rara vez se discute en este contexto, y debería darle algo de reflexión.
¡Ensemble también funciona con humanos!
Se ha observado que promediar las predicciones humanas da mejores predicciones que cualquier predicción individual. Esto se conoce como la sabiduría de la multitud.
Ahora, podría argumentar que es porque algunas personas tienen información diferente, por lo que efectivamente está promediando información. Pero no, esto es cierto incluso para tareas como adivinar la cantidad de frijoles en un frasco.
Hay muchos libros y experimentos escritos sobre esto, y el fenómeno aún desconcierta a los investigadores.
Dicho esto, como señaló @Flounderer, las ganancias reales provienen de los llamados modelos inestables, como los árboles de decisiones, donde cada observación generalmente tiene un impacto en el límite de decisión. Los más estables como SVM no ganan tanto porque el remuestreo generalmente no afecta mucho a los vectores de soporte.
fuente
En realidad, es bastante posible que los modelos individuales sean mejores que los conjuntos.
Incluso si no hay puntos en sus datos donde algunos de sus modelos estén sobreestimados y otros subestimados (en ese caso, puede esperar que se niegue el error promedio), algunas de las funciones de pérdida más populares (como la pérdida cuadrática media) son penalizadoras. grandes desviaciones individuales más que cierto número de desviaciones moderadas. Si los modelos que está promediando son algo diferentes, puede esperar que la variación se vuelva "menor" a medida que el promedio mata las desviaciones pendientes. Probablemente es explicable con eso .
fuente
Sí, podría ser el caso, pero la idea para el ensamblaje es entrenar modelos más simples para evitar un ajuste excesivo mientras se capturan diferentes características de los datos de diferentes conjuntos. Por supuesto, no hay garantía de que un modelo de conjunto supere a un solo modelo mientras se entrena con los mismos datos de entrenamiento. Se puede obtener un rendimiento superior combinando modelos de conjunto y potenciación (por ejemplo, AdaBoost). Al aumentar, entrena cada modelo de conjunto siguiente asignando pesos en cada punto de datos y actualizándolos según el error. Por lo tanto, considérelo como un algoritmo de descenso coordinado, permite que el error de entrenamiento disminuya con cada iteración mientras se mantiene una complejidad promedio constante del modelo. En general, esto tiene un impacto en el rendimiento. Hay muchos
fuente