Empacar, impulsar y apilar en el aprendizaje automático

¿Cuáles son las similitudes y diferencias entre estos 3 métodos:

  • Empaque,
  • ¿Impulso,
  • Stacking?

¿Cuál es el mejor? ¿Y por qué?

¿Puede darme una ejemplo para cada uno?

Comentarios

  • para una referencia de libro de texto, recomiendo: » Métodos de conjunto: fundamentos y algoritmos » de Zhou, Zhi-Hua
  • Vea aquí una pregunta relacionada .

Respuesta

Los tres son los llamados «metaalgoritmos»: enfoques para combinar varias técnicas de aprendizaje automático en un modelo predictivo para disminuir la varianza ( ensacado ), el sesgo ( aumento ) o mejorar la fuerza predictiva ( apilamiento alias ensemble ).

Cada algoritmo consta de dos pasos:

  1. Producir una distribución Distribución de modelos de AA simples en subconjuntos de los datos originales.

  2. Combinando la distribución en un modelo «agregado».

Aquí hay una breve descripción de los tres métodos:

  1. Embolsado (significa B ootstrap Agg regat ing )) es una forma de disminuir la variación de tu predicción al generar datos adicionales para el entrenamiento a partir de tu conjunto de datos original usando combinaciones con repeticiones para producir multisets de la misma cardinalidad / tamaño que sus datos originales. Al aumentar el tamaño de su conjunto de entrenamiento, no puede mejorar la fuerza predictiva del modelo, sino simplemente disminuir la varianza, ajustando estrechamente la predicción al resultado esperado.

  2. Impulsar es un enfoque de dos pasos, en el que primero se utilizan subconjuntos de los datos originales para producir una serie de modelos de rendimiento promedio y luego «aumenta» su rendimiento combinándolos usando una función de costo particular (= voto mayoritario). A diferencia del ensacado, en el impulso clásico la creación de subconjuntos no es aleatoria y depende del rendimiento de los modelos anteriores: cada nuevo subconjunto contiene los elementos que fueron (probablemente) clasificados erróneamente por modelos anteriores.

  3. Apilar es similar a impulsar : también aplica varios modelos a sus datos originales. La diferencia aquí es, sin embargo, no tiene solo una fórmula empírica para su función de ponderación, sino que introduce un metanivel y usa otro modelo / enfoque para estimar la entrada junto con las salidas de cada modelo para estimar las ponderaciones o, en otras palabras, para determinar qué modelos funcionan bien y qué mal dados estos datos de entrada.

Aquí hay una tabla de comparación:

Tabla comparativa

Como puede ver, todos estos son enfoques diferentes para combinar varios modelos en uno mejor, y hay no hay un solo ganador aquí: todo depende de tu dominio y de lo que vas a hacer. Aún puede tratar el apilamiento como una especie de más avances impulso , sin embargo, la dificultad de encontrar un buen enfoque para su meta-nivel hace que sea difícil aplicar este enfoque en la práctica. .

Ejemplos breves de cada uno:

  1. Embolsado : Datos de ozono .
  2. Aumento : se utiliza para mejorar la precisión del reconocimiento óptico de caracteres (OCR).
  3. Apilamiento : se utiliza en la clasificación de microarrays de cáncer en medicina.

Comentarios

  • Parece que tu definición de impulso es diferente a la de la wiki (para la que viniste) o en este documento . Ambos dicen que al impulsar el siguiente clasificador se utilizan resultados de los entrenados previamente, pero no ‘ t mencionaste eso. El método que describe por otro lado se parece a algunas de las técnicas de votación / promediado de modelos.
  • @ a-rodin: Gracias por señalar este aspecto importante, reescribí completamente esta sección para reflejarlo mejor. En cuanto a su segundo comentario, tengo entendido que el impulso es también un tipo de votación / promediado, ¿o no lo entendí mal?
  • @AlexanderGalkin Tenía en mente el aumento de gradiente en el momento de comentar: no ‘ t parece una votación, sino más bien una técnica de aproximación de función iterativa. Sin embargo, p. Ej. AdaBoost se parece más a una votación, así que no ‘ no discutí sobre ello.
  • En su primera oración, dice Boosting disminuye el sesgo, pero en la tabla de comparación dice aumenta la fuerza predictiva.¿Son ambos ciertos?

Respuesta

Embolsado :

  1. paralelo conjunto: cada modelo se construye de forma independiente

  2. apunta a disminuir la varianza , sin sesgo

  3. adecuado para modelos de alta varianza y bajo sesgo (modelos complejos)

  4. un ejemplo de un método basado en árboles es bosque aleatorio , que desarrolla árboles completamente desarrollados (tenga en cuenta que RF modifica el procedimiento de crecimiento para reducir la correlación entre árboles)

Impulso :

  1. secuencial conjunto: intente agregar nuevos modelos que funcionen bien donde los modelos anteriores carecen de

  2. tienen como objetivo disminuir b ias , no varianza

  3. adecuado para modelos de baja varianza y alto sesgo

  4. un ejemplo de un método basado en árbol es aumento de gradiente

Comentarios

  • Comentar cada uno de los puntos para responder por qué es así y cómo se logra sería un gran mejora en su respuesta.
  • ¿Puede compartir algún documento / enlace que explique que impulsar reduce la varianza y cómo lo hace? Solo quiero entenderlo con más profundidad
  • Gracias Tim, ‘ agregaré algunos comentarios más tarde. @ML_Pro, del procedimiento de refuerzo (p. Ej., Página 23 de cs.cornell.edu/courses/cs578/2005fa/… ), ‘ es comprensible que el impulso puede reducir el sesgo.

Respuesta

Sólo para desarrollar un poco la respuesta de Yuqian. La idea detrás del ensacado es que cuando sobreajusta con un método de regresión no paramétrico (generalmente árboles de regresión o clasificación, pero puede ser casi cualquier método no paramétrico), tienden a ir a la parte de alta varianza, sin sesgo (o bajo) sesgo de la compensación sesgo / varianza. Esto se debe a que un modelo de sobreajuste es muy flexible (por lo que el sesgo es bajo en muchas muestras de la misma población, si estuvieran disponibles) pero tiene alta variabilidad (si recolecto una muestra y la sobreajusto, y usted recolecta una muestra y la sobreajusta, nuestros resultados serán diferentes porque la regresión no paramétrica rastrea el ruido en los datos). ¿Qué podemos hacer? Podemos tomar muchas muestras (de bootstrapping) , cada uno sobreajustado y promediarlos juntos. Esto debería conducir al mismo sesgo (bajo) pero cancelar parte de la varianza, al menos en teoría.

El aumento de gradiente en su esencia funciona con regresiones no paramétricas UNDERFIT, que son demasiado simples y, por lo tanto, no son lo suficientemente flexible para describir la relación real en los datos (es decir, sesgados) pero, debido a que no se ajustan bien, tienen una varianza baja (tenderá a obtener el mismo resultado si recopila nuevos conjuntos de datos). ¿Cómo corrige esto? Básicamente, si no se ajusta, los RESIDUOS de su modelo todavía contienen una estructura útil (información sobre la población), por lo que aumenta el árbol que tiene (o cualquier predictor no paramétrico) con un árbol construido sobre los residuos. Esto debería ser más flexible que el árbol original. Genera repetidamente más y más árboles, cada uno en el paso k aumentado por un árbol ponderado basado en un árbol ajustado a los residuos del paso k-1. Uno de estos árboles debe ser óptimo, por lo que terminará ponderando todos estos árboles juntos o seleccionando uno que parezca ser el más adecuado. Por lo tanto, el aumento de gradiente es una forma de construir un grupo de árboles candidatos más flexibles.

Como todos los enfoques de clasificación o regresión no paramétrica, a veces el empaquetamiento o el impulso funcionan muy bien, a veces uno u otro enfoque es mediocre, y a veces uno o el otro enfoque (o ambos) se bloqueará y arderá.

Además, ambas técnicas se pueden aplicar a enfoques de regresión distintos de los árboles, pero se asocian más comúnmente con árboles, quizás porque para establecer parámetros para evitar un ajuste insuficiente o excesivo.

Comentarios

  • +1 para el argumento overfit = varnce, underfit = bias! Una de las razones para utilizar árboles de decisión es que son estructuralmente inestables, por lo que se benefician más de ligeros cambios de condiciones. ( abbottanalytics.com / assets / pdf / … )

Respuesta

Responder

Para resumir brevemente, Embolsado y Los de refuerzo se utilizan normalmente dentro de un algoritmo, mientras que el Apilamiento suele utilizado para resumir varios resultados de diferentes algoritmos.

  • Embolsado : Bootstrap subconjuntos de características y muestras para obtener varias predicciones y promedios (o otras formas) los resultados, por ejemplo, Random Forest, que elimina la variación y no tiene problemas de sobreajuste.
  • Impulsar : La diferencia con Embolsar es que el modelo posterior está intentando aprender el error cometido por uno anterior, por ejemplo, GBM y XGBoost, que eliminan la variación pero tienen problemas de sobreajuste.
  • Apilamiento : Normalmente se utiliza en las competiciones, cuando se utilizan varios algoritmos para entrenar con el mismo conjunto de datos y promedio (máx. min u otras combinaciones) el resultado para obtener una mayor precisión de predicción.

Responder

ambos embolsado y potenciar el uso de un algoritmo de aprendizaje único para todos los pasos; pero utilizan diferentes métodos para manejar las muestras de entrenamiento. ambos son métodos de aprendizaje por conjuntos que combinan decisiones de varios modelos
Embolsado :
1. vuelve a muestrear los datos de entrenamiento para obtener Subconjuntos M (bootstrapping);
2. entrena clasificadores M (mismo algoritmo) basados en conjuntos de datos M (muestras diferentes);
3. clasificador final combina M salidas mediante votación;
las muestras ponderan por igual;
clasificadores ponderan por igual;
reduce el error al disminuir la varianza
Aumentando : aquí se centra en el algoritmo adaboost
1. comience con el mismo peso para todas las muestras en la primera ronda;
2. en las siguientes rondas M-1, aumente el peso de las muestras que están mal clasificadas en la última ronda, disminuya pesos de las muestras correctamente clasificadas en la última ronda
3. utilizando una votación ponderada, el clasificador final combina múltiples clasificadores de rondas anteriores y otorga pesos más grandes a los clasificadores con menos errores de clasificación.
reevaluaciones escalonadas de las muestras; ponderaciones para cada ronda según los resultados de la última ronda
volver a pesar las muestras (aumento) en lugar de volver a muestrear (embolsar).

Respuesta

Embolsado

Bootstrap AGGregatING (Embolsado) es un Método de generación de conjuntos que usa variaciones de muestras utilizadas para entrenar clasificadores base. Para cada clasificador que se generará, Bagging selecciona (con repetición) N muestras del conjunto de entrenamiento con tamaño N y entrena un clasificador base. Esto se repite hasta que se alcanza el tamaño deseado del conjunto.

El ensacado debe usarse con clasificadores inestables, es decir, clasificadores que son sensibles a variaciones en el conjunto de entrenamiento como árboles de decisión y perceptrones.

El subespacio aleatorio es un enfoque similar interesante que usa variaciones en las características en lugar de variaciones en las muestras, generalmente indicadas en conjuntos de datos con múltiples dimensiones y espacio de características escaso.

Impulsar

Impulsar genera un conjunto por agregar clasificadores que clasifiquen correctamente las «muestras difíciles» . Para cada iteración, el impulso actualiza los pesos de las muestras, de modo que las muestras que están mal clasificadas por el conjunto pueden tener un peso mayor y, por lo tanto, una mayor probabilidad de ser seleccionadas para entrenar el nuevo clasificador.

Aumento es un enfoque interesante pero es muy sensible al ruido y solo es efectivo usando clasificadores débiles. Existen varias variaciones de las técnicas de Boosting AdaBoost, BrownBoost (…), cada una tiene su propia regla de actualización de peso para evitar algunos problemas específicos (ruido, desequilibrio de clases…).

Apilamiento

Apilamiento es un enfoque de metaaprendizaje en el que se utiliza un conjunto para «extraer características» que serán utilizadas por otra capa del conjunto. La siguiente imagen (de Guía de conjuntos de Kaggle ) muestra cómo funciona esto.

ingrese la descripción de la imagen aquí

Primero (Abajo) se entrenan varios clasificadores diferentes con el conjunto de entrenamiento, y sus resultados (probabilidades) son usado para entrenar la siguiente capa (capa intermedia), finalmente, las salidas (probabilidades) de los clasificadores en la segunda capa se combinan usando el promedio (AVG).

Hay varias estrategias que usan validación cruzada, combinación y otros enfoques para evitar el sobreajuste de apilamiento. Pero algunas reglas generales son evitar este enfoque en conjuntos de datos pequeños y tratar de usar diversos clasificadores para que puedan «complementarse» entre sí.

El apilamiento se ha utilizado en varias competencias de aprendizaje automático como Kaggle y Top Descifrador. Definitivamente es algo que debe conocer en el aprendizaje automático.

Respuesta

El empaquetamiento y el impulso tienden a utilizar muchos modelos homogéneos.

El apilamiento combina resultados de tipos de modelos heterogéneos.

Dado que ningún tipo de modelo tiende a ser el que mejor se ajusta a cualquier distribución completa, puede ver por qué esto puede aumentar el poder predictivo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *