Articulo de referencia

Agregación Bootstrap

El bootstrap aggregating , también llamado bagging (del latín bootstrap agg regating ) o bootstrapping , es un metaalgoritmo de conjunto de aprendizaje automático (ML) diseñado ...

El bootstrap aggregating , también llamado bagging (del latín bootstrap agg regating ) o bootstrapping , es un metaalgoritmo de conjunto de aprendizaje automático (ML) diseñado para mejorar la estabilidad y la precisión de los algoritmos de clasificación y regresión de ML . También reduce la varianza y el sobreajuste . Si bien se suele aplicar a métodos de árboles de decisión , puede utilizarse con cualquier tipo de método. Bagging es un caso especial del enfoque de promedio de conjunto .

Descripción de la técnica

Dado un conjunto de entrenamiento estándarD{\displaystyle D}de tamañonorte{\displaystyle n}, el embolsado generametro{\displaystyle m}nuevos conjuntos de entrenamientoDi{\displaystyle D_{i}}, cada uno de tamañonorte{\displaystyle n'}, mediante muestreo deD{\displaystyle D}uniformemente y con reemplazo . Al muestrear con reemplazo, algunas observaciones pueden repetirse en cadaDi{\displaystyle D_{i}}. Sinorte=norte{\displaystyle n'=n}, entonces para grandesnorte{\displaystyle n}el conjuntoDi{\displaystyle D_{i}}Se espera que tenga la fracción (1 - 1/ e ) (~63,2%) de las muestras únicas deD{\displaystyle D}, siendo el resto duplicados. [ 1 ] Este tipo de muestra se conoce como muestra bootstrap . El muestreo con reemplazo garantiza que cada bootstrap sea independiente de sus pares, ya que no depende de muestras elegidas previamente al muestrear. Entonces,metro{\displaystyle m}Los modelos se ajustan utilizando las muestras bootstrap mencionadas anteriormente y se combinan promediando el resultado (para regresión) o mediante votación (para clasificación).

Una ilustración del concepto de agregación bootstrap

El bagging conduce a "mejoras para procedimientos inestables" [ 2 ] , que incluyen, por ejemplo, redes neuronales artificiales , árboles de clasificación y regresión , y selección de subconjuntos en regresión lineal [ 3 ] . Se ha demostrado que el bagging mejora el aprendizaje de preimágenes [ 4 ] [ 5 ] . Por otro lado, puede degradar levemente el rendimiento de métodos estables como los k vecinos más cercanos [ 2 ] .

Proceso del algoritmo

Términos clave

En la agregación bootstrap existen tres tipos de conjuntos de datos: el original, el bootstrap y el out-of-bag. Cada sección siguiente explicará cómo se crea cada conjunto de datos, excepto el original. El conjunto de datos original contiene toda la información proporcionada.

Creación del conjunto de datos bootstrap

El conjunto de datos bootstrap se crea seleccionando aleatoriamente objetos del conjunto de datos original. Además, debe tener el mismo tamaño que el conjunto de datos original. Sin embargo, la diferencia radica en que el conjunto de datos bootstrap puede contener objetos duplicados. A continuación, se muestra un ejemplo sencillo para ilustrar su funcionamiento:

Ejemplo de Bootstrap

Supongamos que el conjunto de datos original es un grupo de 12 personas. Sus nombres son Emily, Jessie, George, Constantine, Lexi, Theodore, John, James, Rachel, Anthony, Ellie y Jamal.

Supongamos que, al seleccionar aleatoriamente un grupo de nombres, nuestro conjunto de datos de remuestreo contenía James, Ellie, Constantine, Lexi, John, Constantine, Theodore, Constantine, Anthony, Lexi, Constantine y Theodore. En este caso, la muestra de remuestreo contenía cuatro duplicados de Constantine y dos duplicados de Lexi y Theodore.

Creación del conjunto de datos fuera de la bolsa

El conjunto de datos fuera de la bolsa representa a las personas restantes que no estaban en el conjunto de datos bootstrap. Se puede calcular restando el conjunto de datos bootstrap al conjunto de datos original. En este caso, las muestras restantes que no fueron seleccionadas son Emily, Jessie, George, Rachel y Jamal. Tenga en cuenta que, dado que ambos conjuntos de datos son conjuntos, al calcular la diferencia se ignoran los nombres duplicados en el conjunto de datos bootstrap. La siguiente ilustración muestra cómo se realiza el cálculo:

Ejemplo completo

Solicitud

La creación de los conjuntos de datos bootstrap y out-of-bag es crucial, ya que se utilizan para probar la precisión de algoritmos de aprendizaje conjunto como el bosque aleatorio . Por ejemplo, un modelo que genera 50 árboles utilizando los conjuntos de datos bootstrap/out-of-bag tendrá una mayor precisión que si generara 10 árboles. Dado que el algoritmo genera múltiples árboles y, por lo tanto, múltiples conjuntos de datos, la probabilidad de que un objeto quede fuera del conjunto de datos bootstrap es baja. Las siguientes secciones explican con más detalle cómo funciona el algoritmo de bosque aleatorio.

Creación de árboles de decisión

El siguiente paso del algoritmo consiste en la generación de árboles de decisión a partir del conjunto de datos remuestreado. Para ello, el proceso examina cada gen/característica y determina para cuántas muestras su presencia o ausencia produce un resultado positivo o negativo. Esta información se utiliza para calcular una matriz de confusión , que enumera los verdaderos positivos, falsos positivos, verdaderos negativos y falsos negativos de la característica cuando se utiliza como clasificador. Estas características se clasifican según diversas métricas de clasificación basadas en sus matrices de confusión. Algunas métricas comunes incluyen la estimación de la corrección positiva (calculada restando los falsos positivos de los verdaderos positivos), la medida de "bondad" y la ganancia de información . Estas características se utilizan para dividir las muestras en dos conjuntos: aquellas que poseen la característica principal y aquellas que no.

El diagrama a continuación muestra un árbol de decisión de profundidad dos utilizado para clasificar datos. Por ejemplo, un punto de datos que presenta la Característica 1, pero no la Característica 2, recibirá un "No". Otro punto que no presenta la Característica 1, pero sí la Característica 3, recibirá un "Sí".

Árbol de decisión de profundidad 2

Este proceso se repite recursivamente para cada nivel sucesivo del árbol hasta alcanzar la profundidad deseada. En la base del árbol, las muestras que dan positivo para la característica final se clasifican generalmente como positivas, mientras que las que carecen de ella se clasifican como negativas. Estos árboles se utilizan posteriormente como predictores para clasificar nuevos datos.

Bosques aleatorios

La siguiente parte del algoritmo implica introducir otro elemento de variabilidad entre los árboles de arranque. Además de que cada árbol solo examina un conjunto de muestras de arranque, solo se considera un número pequeño pero constante de características únicas al clasificarlos. Esto significa que cada árbol solo conoce los datos correspondientes a un número pequeño y constante de características y un número variable de muestras que es menor o igual al del conjunto de datos original. En consecuencia, es más probable que los árboles devuelvan una gama más amplia de respuestas, derivadas de un conocimiento más diverso. Esto da como resultado un bosque aleatorio , que posee numerosas ventajas sobre un único árbol de decisión generado sin aleatoriedad. En un bosque aleatorio, cada árbol "vota" sobre si clasificar o no una muestra como positiva en función de sus características. La muestra se clasifica entonces según el voto mayoritario. Un ejemplo de esto se muestra en el diagrama a continuación, donde los cuatro árboles de un bosque aleatorio votan sobre si un paciente con las mutaciones A, B, F y G tiene cáncer o no. Dado que tres de los cuatro árboles votan que sí, el paciente se clasifica como positivo para cáncer.

Debido a sus propiedades, los bosques aleatorios se consideran uno de los algoritmos de minería de datos más precisos, tienen menos probabilidades de sobreajustarse a sus datos y se ejecutan de forma rápida y eficiente incluso con grandes conjuntos de datos. [ 6 ] Son principalmente útiles para la clasificación, a diferencia de la regresión , que intenta establecer conexiones observadas entre variables estadísticas en un conjunto de datos. Esto hace que los bosques aleatorios sean particularmente útiles en campos como la banca, la atención médica, el mercado de valores y el comercio electrónico , donde es importante poder predecir resultados futuros basándose en datos pasados. [ 7 ] Una de sus aplicaciones sería como una herramienta útil para predecir el cáncer basándose en factores genéticos, como se ve en el ejemplo anterior.

Hay varios factores importantes a considerar al diseñar un bosque aleatorio. Si los árboles en los bosques aleatorios son demasiado profundos, aún puede ocurrir sobreajuste debido a la sobreespecificidad. Si el bosque es demasiado grande, el algoritmo puede volverse menos eficiente debido a un mayor tiempo de ejecución. Los bosques aleatorios tampoco suelen tener un buen desempeño cuando se les proporciona datos dispersos con poca variabilidad. [ 7 ] Sin embargo, aún tienen numerosas ventajas sobre algoritmos de clasificación de datos similares, como las redes neuronales , ya que son mucho más fáciles de interpretar y generalmente requieren menos datos para el entrenamiento. Como componente integral de los bosques aleatorios, la agregación bootstrap es muy importante para los algoritmos de clasificación y proporciona un elemento crítico de variabilidad que permite una mayor precisión al analizar nuevos datos, como se explica más adelante.

Mejorando los algoritmos Random Forests y Bagging.

Si bien las técnicas descritas anteriormente utilizan bosques aleatorios y bagging (también conocido como bootstrapping), existen ciertas técnicas que pueden emplearse para mejorar su tiempo de ejecución y votación, su precisión predictiva y su rendimiento general. A continuación, se detallan los pasos clave para crear un bosque aleatorio eficiente:

  1. Especifique la profundidad máxima de los árboles: en lugar de permitir que el bosque aleatorio continúe hasta que todos los nodos sean puros, es mejor cortarlo en un punto determinado para disminuir aún más las posibilidades de sobreajuste.
  2. Recorte el conjunto de datos: El uso de un conjunto de datos extremadamente grande puede generar resultados menos representativos de los datos proporcionados que un conjunto más pequeño que represente con mayor precisión aquello en lo que se centra la atención.
    • Continúe eliminando los datos en cada división de nodo, en lugar de hacerlo solo en el proceso de bagging original.
  3. Decide entre precisión y velocidad: Según los resultados deseados, aumentar o disminuir la cantidad de árboles en el bosque puede ser útil. Generalmente, aumentar la cantidad de árboles proporciona resultados más precisos, mientras que disminuirla permite obtener resultados más rápidos.

Algoritmo (clasificación)

Diagrama de flujo del algoritmo de bagging cuando se utiliza para la clasificación.

Para la clasificación, utilice un conjunto de entrenamiento.D{\displaystyle D}, InductorI{\displaystyle I}y el número de muestras bootstrapmetro{\displaystyle m}como entrada. Generar un clasificadordo{\displaystyle C^{*}}como salida [ 12 ]

  1. Crearmetro{\displaystyle m}nuevos conjuntos de entrenamiento Di{\displaystyle D_{i}}, deD{\displaystyle D}con reemplazo
  2. Clasificadordoi{\displaystyle C_{i}}se construye a partir de cada conjuntoDi{\displaystyle D_{i}}usandoI{\displaystyle I}para determinar la clasificación del conjuntoDi{\displaystyle D_{i}}
  3. Finalmente, clasificadordo{\displaystyle C^{*}}se genera utilizando el conjunto de clasificadores creado previamentedoi{\displaystyle C_{i}}en el conjunto de datos originalD{\displaystyle D}, la clasificación predicha con mayor frecuencia por los subclasificadoresdoi{\displaystyle C_{i}}es la clasificación final
para i = 1 a m { D' = muestra bootstrap de D (muestra con reemplazo) Ci = I(D') } C*(x) = argmax #{i:Ci(x)=y} (etiqueta predicha con mayor frecuencia: y) y∈Y 

Ejemplo: datos de ozono

Para ilustrar los principios básicos del bagging, a continuación se presenta un análisis sobre la relación entre el ozono y la temperatura (datos de Rousseeuw y Leroy (1986), análisis realizado en R ).

La relación entre la temperatura y el ozono parece ser no lineal en este conjunto de datos, según el diagrama de dispersión. Para describir matemáticamente esta relación, se utilizan suavizadores LOESS (con un ancho de banda de 0,5). En lugar de construir un único suavizador para el conjunto de datos completo, se extrajeron 100 muestras bootstrap . Cada muestra se compone de un subconjunto aleatorio de los datos originales y mantiene una semejanza con la distribución y la variabilidad del conjunto maestro. Para cada muestra bootstrap, se ajustó un suavizador LOESS. Posteriormente, se realizaron predicciones a partir de estos 100 suavizadores en todo el rango de los datos. Las líneas negras representan estas predicciones iniciales. Las líneas no coinciden en sus predicciones y tienden a sobreajustarse a sus puntos de datos, lo cual se evidencia en el flujo irregular de las líneas.

Al calcular el promedio de 100 suavizadores, cada uno correspondiente a un subconjunto del conjunto de datos original, obtenemos un predictor agregado (línea roja). El flujo de la línea roja es estable y no se ajusta excesivamente a ningún punto de datos.

Ventajas y desventajas

Ventajas:

  • Muchos aprendices débiles, en conjunto, suelen superar a un solo aprendiz en todo el conjunto y presentan menos sobreajuste.
  • Reduce la varianza en el aprendiz débil de alta varianza y bajo sesgo , [ 13 ] lo que puede mejorar la eficiencia (estadística)
  • Puede realizarse en paralelo , ya que cada bootstrap separado puede procesarse por separado antes de la agregación. [ 14 ]

Desventajas:

  • Para un aprendiz débil con alto sesgo, el bagging también llevará un alto sesgo a su agregado [ 13 ].
  • Pérdida de interpretabilidad de un modelo.
  • Puede resultar computacionalmente costoso dependiendo del conjunto de datos.

Historia

El concepto de agregación bootstrap se deriva del concepto de bootstrapping desarrollado por Bradley Efron. [ 15 ] La agregación bootstrap fue propuesta por Leo Breiman , quien también acuñó el término abreviado "bagging" ( agregación bootstrap ) . Breiman desarrolló el concepto de bagging en 1994 para mejorar la clasificación mediante la combinación de clasificaciones de conjuntos de entrenamiento generados aleatoriamente. Argumentó: "Si perturbar el conjunto de aprendizaje puede causar cambios significativos en el predictor construido, entonces el bagging puede mejorar la precisión". [ 3 ]

Véase también

Referencias

  1. Aslam, Javed A.; Popa, Raluca A.; y Rivest, Ronald L. (2007); Sobre la estimación del tamaño y la confianza de una auditoría estadística , Actas del Taller de Tecnología de Votación Electrónica (EVT '07), Boston, MA, 6 de agosto de 2007. De manera más general, al realizar un sorteo con reemplazonorte{\displaystyle n'}valores de un conjunto denorte{\displaystyle n}(diferentes e igualmente probables), el número esperado de sorteos únicos esnorte(1minorte/norte){\displaystyle n(1-e^{-n'/n})}.
  2. 1 2 Breiman, Leo (1996). "Bagging predictors". Machine Learning . 24 (2): 123– 140. CiteSeerX 10.1.1.32.9399 . doi : 10.1007/BF00058655 . S2CID 47328136 .  
  3. 1 2 Breiman, Leo (septiembre de 1994). "Bagging Predictors" (PDF) . Informe técnico (421). Departamento de Estadística, Universidad de California Berkeley . Recuperado el 28 de julio de 2019 .
  4. Sahu, A., Runger, G., Apley, D., Eliminación de ruido de imágenes con un enfoque de componentes principales de núcleo multifase y una versión de conjunto , Taller de reconocimiento de patrones de imágenes aplicadas de IEEE, págs. 1-7, 2011.
  5. Shinde, Amit, Anshuman Sahu, Daniel Apley y George Runger. « Preimágenes para patrones de variación a partir de PCA de kernel y Bagging ». IIE Transactions, vol. 46, núm. 5, 2014.
  6. "Bosques aleatorios - descripción de la clasificación" . stat.berkeley.edu . Consultado el 09/12/2021 .
  7. 1 2 "Introducción a Random Forest en aprendizaje automático" . Programa de Educación en Ingeniería (EngEd) | Sección . Recuperado el 09-12-2021 .
  8. "Random Forest Pros & Contras" . HolyPython.com . Consultado el 26 de noviembre de 2021 .
  9. K, Dhiraj (22 de noviembre de 2020). "Ventajas y desventajas del algoritmo Random Forest" . Medium . Consultado el 26 de noviembre de 2021 .
  10. Equipo, Towards AI (2 de julio de 2020). "¿Por qué elegir Random Forest y no árboles de decisión? – Towards AI – La publicación líder mundial en IA y tecnología" . Recuperado el 26 de noviembre de 2021 .
  11. "Bosque aleatorio" . Instituto de Finanzas Corporativas . Consultado el 26 de noviembre de 2021 .
  12. Bauer, Eric; Kohavi, Ron (1999). "Una comparación empírica de algoritmos de clasificación de votación: Bagging, Boosting y variantes" . Machine Learning . 36 : 108–109 . doi : 10.1023/A:1007515423169 . S2CID 1088806 . 
  13. 1 2 "¿Qué es Bagging (Agregación Bootstrap)?" . CFI . Corporate Finance Institute . Consultado el 5 de diciembre de 2020 .
  14. Zoghni, Raouf (5 de septiembre de 2020). "Bagging (Bootstrap Aggregating), Descripción general" . The Startup vía Medium.
  15. Efron, B. (1979). "Métodos Bootstrap: Otra mirada al jackknife" . The Annals of Statistics . 7 (1): 1– 26. doi : 10.1214/aos/1176344552 .

Lecturas adicionales

  • Breiman, Leo (1996). "Bagging predictors". Machine Learning . 24 (2): 123– 140. CiteSeerX 10.1.1.32.9399 . doi : 10.1007/BF00058655 . S2CID 47328136 .  
  • Alfaro, E., Gámez, M. y García, N. (2012). "adabag: un paquete R para clasificación con AdaBoost.M1, AdaBoost-SAMME y Bagging" .{{cite journal}}: La cita de la revista requiere |journal=( ayuda ) CS1 maint: nombres múltiples: lista de autores ( enlace )
  • Kotsiantis, Sotiris (2014). "Variantes de bagging y boosting para el manejo de problemas de clasificación: una revisión". Knowledge Eng. Review . 29 (1): 78– 100. doi : 10.1017/S0269888913000313 . S2CID 27301684 . 
  • Boehmke, Bradley; Greenwell, Brandon (2019). «Bagging». Aprendizaje automático práctico con R. Chapman & Hall. pp. 191–202 . ISBN  978-1-138-49568-5.