# Aprendizaje por conjuntos

En estadística y aprendizaje automático, los métodos por conjuntos utilizan múltiples algoritmos de aprendizaje para obtener un rendimiento predictivo mejor que el que podría obtenerse con cualquiera de los algoritmos de aprendizaje constituyentes por sí solos. A diferencia de un conjunto estadístico en mecánica estadística, que suele ser infinito, un conjunto de aprendizaje automático consta únicamente de un conjunto finito concreto de modelos alternativos, pero normalmente permite que exista una estructura mucho más flexible entre esas alternativas.

## Descripción general

Los algoritmos de aprendizaje supervisado realizan la tarea de buscar a través de un espacio de hipótesis para encontrar una hipótesis adecuada que haga buenas predicciones con un problema concreto. Aunque el espacio de hipótesis contenga hipótesis muy adecuadas para un problema concreto, puede ser muy difícil encontrar una buena. Los conjuntos combinan múltiples hipótesis para formar una hipótesis (con suerte) mejor. El término "conjunto" suele reservarse a los métodos que generan múltiples hipótesis utilizando el mismo aprendiz base. El término más amplio de sistemas clasificadores múltiples también abarca la hibridación de hipótesis que no son inducidas por el mismo aprendiz base.
Evaluar la predicción de un conjunto suele requerir más cálculos que evaluar la predicción de un único modelo. En cierto sentido, el aprendizaje por conjuntos puede considerarse una forma de compensar los algoritmos de aprendizaje deficientes realizando muchos cálculos adicionales. Por otro lado, la alternativa es realizar mucho más aprendizaje en un sistema que no es por conjuntos. Un sistema por conjuntos puede ser más eficiente a la hora de mejorar la precisión global por el mismo aumento de recursos de computación, almacenamiento o comunicación utilizando ese aumento en dos o más métodos, que lo que se habría mejorado aumentando el uso de recursos para un solo método. Los algoritmos rápidos, como los árboles de decisión, suelen utilizarse en métodos de conjuntos (por ejemplo, los bosques aleatorios), aunque los algoritmos más lentos también pueden beneficiarse de las técnicas de ensamblaje.
Por analogía, las técnicas de conjuntos se han utilizado también en escenarios de aprendizaje no supervisado, por ejemplo en la agrupación por consenso o en la detección de anomalías.

## Teoría de conjuntos

Empíricamente, los conjuntos tienden a dar mejores resultados cuando hay una diversidad significativa entre los modelos. Por lo tanto, muchos métodos de conjuntos intentan promover la diversidad entre los modelos que combinan. Aunque quizá no sea intuitivo, se pueden utilizar algoritmos más aleatorios (como los árboles de decisión aleatorios) para producir un conjunto más fuerte que algoritmos muy deliberados (como los árboles de decisión con reducción de entropía). Sin embargo, se ha demostrado que el uso de una variedad de algoritmos de aprendizaje potentes es más eficaz que el uso de técnicas que intentan simplificar los modelos para promover la diversidad. Es posible aumentar la diversidad en la fase de entrenamiento del modelo utilizando la correlación para tareas de regresión o utilizando medidas de información como la entropía cruzada para tareas de clasificación.
Teóricamente, se puede justificar el concepto de diversidad porque el límite inferior de la tasa de error de un sistema conjunto se puede descomponer en precisión, diversidad y el otro término.

## Tamaño del conjunto

Aunque el número de clasificadores componentes de un conjunto tiene un gran impacto en la precisión de la predicción, hay un número limitado de estudios que aborden este problema. La determinación a priori del tamaño del conjunto y el volumen y la velocidad de los grandes flujos de datos hacen que este aspecto sea aún más crucial para los clasificadores de conjuntos en línea. Para determinar el número adecuado de componentes se han utilizado sobre todo pruebas estadísticas. Más recientemente, un marco teórico ha sugerido que existe un número ideal de componentes clasificadores para un conjunto, de modo que tener más o menos de este número de clasificadores deterioraría la precisión. Es lo que se llama "la ley de los rendimientos decrecientes en la construcción de conjuntos". Su marco teórico muestra que utilizar el mismo número de clasificadores de componentes independientes que de etiquetas de clase proporciona la mayor precisión.

## Tipos comunes de conjuntos
### Clasificador bayesiano óptimo

El clasificador bayesiano óptimo es una técnica de clasificación. Se trata de un conjunto de todas las hipótesis del espacio de hipótesis. Por término medio, ningún otro conjunto puede superarlo. El clasificador Naive Bayes es una versión de éste que asume que los datos son condicionalmente independientes de la clase y hace que el cálculo sea más factible. A cada hipótesis se le da un voto proporcional a la probabilidad de que el conjunto de datos de entrenamiento sea muestreado de un sistema si esa hipótesis fuera cierta. Para facilitar los datos de entrenamiento de tamaño finito, el voto de cada hipótesis también se multiplica por la probabilidad a priori de esa hipótesis. El clasificador óptimo de Bayes puede expresarse con la siguiente ecuación:
    $y={\underset {c_{j}\in C}{\mathrm {argmax} }}\sum _{h_{i}\in H}{P(c_{j}|h_{i})P(T|h_{i})P(h_{i})}$
Donde $y$ es la clase prevista, $C$ es el conjunto de todas las posibles clases, $H$ es el espacio de hipótesis, $P$ se refiere a una probabilidad, y $T$ son los datos de entrenamiento. Como conjunto, el clasificador óptimo de Bayes representa una hipótesis que no está necesariamente en $H$. Sin embargo, la hipótesis representada por el clasificador óptimo de Bayes es la hipótesis óptima en el espacio de conjuntos (el espacio de todos los conjuntos posibles formados sólo por hipótesis en $H$).
Esta fórmula puede reformularse utilizando el teorema de Bayes, que dice que la probabilidad posterior es proporcional a la probabilidad multiplicada por la probabilidad anterior:
    $P(h_{i}|T)\propto P(T|h_{i})P(h_{i})$
por lo tanto,
    $y={\underset {c_{j}\in C}{\mathrm {argmax} }}\sum _{h_{i}\in H}{P(c_{j}|h_{i})P(h_{i}|T)}$

### Agregación de Bootstrap (bagging)

La agregación bootstrap (bagging) consiste en entrenar un conjunto a partir de conjuntos de datos bootstrap. Un conjunto bootstrap se crea seleccionando del conjunto de datos de entrenamiento original con reemplazo. Por lo tanto, un conjunto bootstrap puede contener un ejemplo dado cero, una o varias veces. Los miembros del conjunto también pueden tener límites en las características (por ejemplo, los nodos de un árbol de decisión), para fomentar la exploración de diversas características. La varianza de la información local en los conjuntos bootstrap y las consideraciones sobre las características promueven la diversidad en el conjunto, y pueden fortalecerlo. Para reducir el sobreajuste, un miembro puede validarse utilizando el conjunto fuera de la bolsa (los ejemplos que no están en su conjunto bootstrap).
La inferencia se realiza por votación de las predicciones de los miembros del conjunto, lo que se denomina agregación. A continuación se ilustra con un conjunto de cuatro árboles de decisión. Cada árbol clasifica el ejemplo de consulta. Como tres de los cuatro predicen la clase positiva, la clasificación global del conjunto es positiva. Los bosques aleatorios como el que se muestra son una aplicación común del ensamblaje.

### Boosting

El boosting consiste en entrenar modelos sucesivos haciendo hincapié en los datos de entrenamiento clasificados erróneamente por los modelos aprendidos previamente. Inicialmente, todos los datos (D1) tienen el mismo peso y se utilizan para aprender un modelo base M1. A los ejemplos mal clasificados por M1 se les asigna un peso mayor que a los correctamente clasificados. Estos datos reforzados (D2) se utilizan para entrenar un segundo modelo base M2, y así sucesivamente. La inferencia se realiza por votación.
En algunos casos, el boosting ha dado mejores resultados que el bagging, pero tiende a sobreajustar más. La aplicación más común de boosting es Adaboost, pero algunos algoritmos más recientes obtienen mejores resultados.

### Promedio bayesiano de modelos

El promediado bayesiano de modelos (BMA) realiza predicciones promediando las predicciones de los modelos ponderados por sus probabilidades a posteriori dados los datos. Se sabe que el BMA suele dar mejores respuestas que un único modelo, obtenido, por ejemplo, mediante regresión paso a paso (stepwise), especialmente cuando modelos muy diferentes tienen un rendimiento casi idéntico en el conjunto de entrenamiento pero, por lo demás, pueden tener un rendimiento muy diferente.
La cuestión con cualquier uso del teorema de Bayes es el prior, es decir, la probabilidad (quizá subjetiva) de que cada modelo sea el mejor para un fin determinado. Conceptualmente, BMA puede utilizarse con cualquier prior. Los paquetes de R ensembleBMA y BMA utilizan la prioridad implícita en el criterio de información bayesiano (BIC), siguiendo a Raftery (1995). El paquete de R BAS admite el uso de las prioridades implícitas en el criterio de información de Akaike (AIC) y otros criterios sobre los modelos alternativos, así como prioridades sobre los coeficientes.
La diferencia entre el BIC y el AIC es la fuerza de la preferencia por la parsimonia. La penalización del BIC por la complejidad del modelo es $\ln(n)k$, mientras que la de AIC es $2k$. La teoría asintótica de muestras grandes establece que si existe un mejor modelo, entonces, con tamaños de muestra crecientes, el BIC es fuertemente consistente, es decir, casi seguro que lo encontrará, mientras que el AIC puede que no, porque el AIC puede seguir colocando una probabilidad posterior excesiva en modelos que son más complicados de lo necesario. Por otra parte, AIC y AICc son asintóticamente "eficientes" (es decir, error medio cuadrático mínimo de predicción), mientras que BIC no lo es.
Haussler et al. (1994) demostraron que cuando se utiliza BMA para la clasificación, su error esperado es, como máximo, el doble del error esperado del clasificador óptimo de Bayes. Burnham y Anderson (1998, 2002) contribuyeron en gran medida a presentar a un público más amplio las ideas básicas del promediado bayesiano de modelos y a popularizar la metodología. La disponibilidad de software, incluidos otros paquetes gratuitos de código abierto para R además de los mencionados anteriormente, ayudó a que los métodos fueran accesibles a un público más amplio.

### Combinación bayesiana de modelos

La combinación bayesiana de modelos (BMC) es una corrección algorítmica del promedio bayesiano de modelos (BMA). En lugar de muestrear cada modelo del conjunto individualmente, se muestrea a partir del espacio de posibles conjuntos (con pesos de modelo extraídos aleatoriamente de una distribución Dirichlet con parámetros uniformes). Esta modificación supera la tendencia de BMA a converger y dar todo el peso a un único modelo. Aunque la BMC es algo más costosa que la BMA desde el punto de vista informático, tiende a producir resultados mucho mejores. Se ha demostrado que la BMC es mejor en promedio (con significación estadística) que el BMA y el bagging.
El uso de la ley de Bayes para calcular las ponderaciones de los modelos requiere calcular la probabilidad de los datos en función de cada modelo. Normalmente, ninguno de los modelos del conjunto es exactamente la distribución a partir de la cual se generaron los datos de entrenamiento, por lo que todos ellos reciben correctamente un valor cercano a cero para este término. Esto funcionaría bien si el conjunto fuera lo suficientemente grande como para muestrear todo el espacio de modelos, pero rara vez es posible. En consecuencia, cada patrón de los datos de entrenamiento hará que la ponderación del conjunto se desplace hacia el modelo del conjunto que más se aproxime a la distribución de los datos de entrenamiento. En esencia, se reduce a un método innecesariamente complejo para realizar la selección de modelos.
Las posibles ponderaciones de un conjunto pueden visualizarse como si estuvieran situadas en un simplex. En cada vértice del simplex, todo el peso se asigna a un único modelo del conjunto. El BMA converge hacia el vértice más próximo a la distribución de los datos de entrenamiento. En cambio, BMC converge hacia el punto en el que esta distribución se proyecta sobre el simplex. En otras palabras, en lugar de seleccionar el modelo más cercano a la distribución generada, busca la combinación de modelos más cercana a la distribución generada.
Los resultados de la BMA pueden aproximarse a menudo utilizando la validación cruzada para seleccionar el mejor modelo a partir de un conjunto de modelos. Del mismo modo, los resultados del BMC pueden aproximarse utilizando la validación cruzada para seleccionar la mejor combinación de conjuntos a partir de un muestreo aleatorio de posibles ponderaciones.

### Bucket of models (Cubo de modelos)

Un "cubo de modelos" es una técnica de conjunto en la que se utiliza un algoritmo de selección de modelos para elegir el mejor modelo para cada problema. Cuando se prueba con un solo problema, un cubo de modelos puede no producir mejores resultados que el mejor modelo del conjunto, pero cuando se evalúa a través de muchos problemas, normalmente producirá resultados mucho mejores, de media, que cualquier modelo del conjunto.
El método más utilizado para la selección de modelos es la validación cruzada (a veces denominada "concurso de horneado"). Se describe con el siguiente pseudocódigo:
La selección por validación cruzada puede resumirse como: "pruébelos todos con el conjunto de entrenamiento y elija el que mejor funcione".
Gating es una generalización de la selección por validación cruzada. Consiste en entrenar otro modelo de aprendizaje para decidir cuál de los modelos del cubo es el más adecuado para resolver el problema. A menudo, se utiliza un perceptrón para el modelo de gating. Puede utilizarse para elegir el "mejor" modelo o para dar un peso lineal a las predicciones de cada modelo del cubo.
Cuando se utiliza un cubo de modelos con un gran conjunto de problemas, puede ser deseable evitar el entrenamiento de algunos de los modelos que tardan mucho tiempo en entrenarse. El aprendizaje de hitos es un enfoque de metaaprendizaje que trata de resolver este problema. Consiste en entrenar sólo los algoritmos rápidos (pero imprecisos) del cubo y, a continuación, utilizar el rendimiento de estos algoritmos para ayudar a determinar qué algoritmo lento (pero preciso) tiene más probabilidades de obtener mejores resultados.

### Stacking (apilamiento)

El apilamiento (a veces denominado generalización apilada) consiste en entrenar un modelo para combinar las predicciones de otros algoritmos de aprendizaje. En primer lugar, se entrenan todos los demás algoritmos utilizando los datos disponibles y, a continuación, se entrena un algoritmo combinador (estimador final) para realizar una predicción final utilizando todas las predicciones de los demás algoritmos (estimadores base) como entradas adicionales o utilizando predicciones de validación cruzada de los estimadores base, lo que puede evitar el sobreajuste. Si se utiliza un algoritmo combinador arbitrario, el apilamiento puede representar teóricamente cualquiera de las técnicas de conjunto descritas en este artículo, aunque, en la práctica, a menudo se utiliza un modelo de regresión logística como combinador.
El apilamiento suele dar mejores resultados que cualquiera de los modelos entrenados por separado. Se ha utilizado con éxito tanto en tareas de aprendizaje supervisado (regresión, clasificación y aprendizaje a distancia) como en aprendizaje no supervisado (estimación de la densidad). También se ha utilizado para estimar la tasa de error del bagging. Se ha informado de que supera al promediado bayesiano de modelos. Los dos mejores resultados del concurso de Netflix utilizaron la mezcla, que puede considerarse una forma de apilamiento.

### Votación

La votación es otra forma de ensamblaje. Véase, por ejemplo, el algoritmo de mayoría ponderada (aprendizaje automático).

## Implementación en paquetes estadísticos

* R: al menos tres paquetes ofrecen herramientas de promediado de modelos bayesianos, entre ellos el paquete BMS (acrónimo de Bayesian Model Selection), el paquete BAS (acrónimo de Bayesian Adaptive Sampling), y el paquete BMA.
* Python: scikit-learn, un paquete para el aprendizaje automático en Python, ofrece paquetes para el aprendizaje de conjuntos, incluidos paquetes para los métodos bagging, voting y averaging.
* MATLAB: los conjuntos de clasificación se implementan en Statistics and Machine Learning Toolbox.

## Aplicaciones del aprendizaje por conjuntos

En los últimos años, debido a la creciente potencia computacional, que permite el entrenamiento en el aprendizaje de grandes conjuntos en un tiempo razonable, el número de aplicaciones de aprendizaje de conjuntos ha crecido cada vez más. Algunas de las aplicaciones de los clasificadores de conjuntos incluyen:

### Teledetección
#### Cartografía de la cubierta terrestre

La cartografía de la cubierta terrestre es una de las principales aplicaciones de los sensores de los satélites de observación de la Tierra, que utilizan datos de teledetección y geoespaciales, para identificar los materiales y objetos que se encuentran en la superficie de las zonas objetivo. Generalmente, las clases de materiales objetivo incluyen carreteras, edificios, ríos, lagos y vegetación. Para identificar eficientemente los objetos de la cubierta terrestre, se proponen diferentes enfoques de aprendizaje conjunto basados en redes neuronales artificiales, análisis de componentes principales del núcleo (KPCA), árboles de decisión con refuerzo, bosque aleatorio y diseño automático de sistemas clasificadores múltiples son propuestos para identificar eficazmente los objetos de la cubierta terrestre.

#### Detección de cambios

La detección de cambios es un problema de análisis de imágenes que consiste en la identificación de lugares en los que la cubierta terrestre ha cambiado con el tiempo. La detección de cambios se utiliza ampliamente en campos como el crecimiento urbano, la dinámica de los bosques y la vegetación, el uso del suelo y la monitorización de catástrofes. Las primeras aplicaciones de clasificadores de conjuntos en la detección de cambios se diseñaron con el voto mayoritario, el promedio de modelos bayesianos, y la máxima probabilidad posterior. Dado el crecimiento de los datos de satélite a lo largo del tiempo, en la última década se ha visto un mayor uso de métodos de series temporales para la detección continua de cambios a partir de pilas de imágenes. Un ejemplo es un método bayesiano de detección de puntos de cambio por conjuntos llamado BEAST, con el software disponible como paquete Rbeast en R, Python y Matlab.

### Seguridad informática
#### Denegación de servicio distribuido

La denegación de servicio distribuida es uno de los ciberataques más amenazadores que puede sufrir un proveedor de servicios de Internet. Al combinar la salida de clasificadores individuales, los clasificadores de conjunto reducen el error total de detectar y discriminar este tipo de ataques de los flashes legítimos.

#### Detección de malware

La clasificación de códigos maliciosos como virus informáticos, gusanos informáticos, troyanos, ransomware y programas espía mediante técnicas de aprendizaje automático se inspira en el problema de la categorización de documentos. Los sistemas de aprendizaje por conjuntos han demostrado una eficacia adecuada en este ámbito.

#### Detección de intrusos

Un sistema de detección de intrusos supervisa la red informática o los sistemas informáticos para identificar códigos de intrusos como un proceso de detección de anomalías. El aprendizaje conjunto ayuda con éxito a estos sistemas de supervisión a reducir su error total.

### Reconocimiento facial

El reconocimiento facial, que recientemente se ha convertido en una de las áreas de investigación más populares del reconocimiento de patrones, se ocupa de la identificación o verificación de una persona mediante sus imágenes digitales.
Los conjuntos jerárquicos basados en el clasificador de Gabor Fisher y las técnicas de preprocesamiento del análisis de componentes independientes son algunos de los primeros conjuntos empleados en este campo.

### Reconocimiento de emociones

Mientras que el reconocimiento del habla se basa principalmente en el aprendizaje profundo porque la mayoría de los actores de la industria en este campo como Google, Microsoft e IBM revelan que la tecnología central de su reconocimiento del habla se basa en este enfoque, el reconocimiento de emociones basado en el habla también puede tener un rendimiento satisfactorio con el aprendizaje conjunto.
También se está utilizando con éxito en el reconocimiento de emociones faciales.

### Detección de fraudes

La detección de fraudes se ocupa de la identificación de fraudes bancarios, como el blanqueo de dinero, el fraude con tarjetas de crédito y el fraude en las telecomunicaciones, que tienen vastos dominios de investigación y aplicaciones de aprendizaje automático. Dado que el aprendizaje por conjuntos mejora la solidez del modelado del comportamiento normal, se ha propuesto como una técnica eficaz para detectar estos casos y actividades fraudulentos en los sistemas bancarios y de tarjetas de crédito.

### Toma de decisiones financieras

La precisión de la predicción del fracaso empresarial es una cuestión muy crucial en la toma de decisiones financieras. Por lo tanto, se proponen distintos clasificadores de conjuntos para predecir las crisis financieras y las dificultades financieras. Asimismo, en el problema de la manipulación basada en el comercio, en el que los operadores intentan manipular los precios de las acciones mediante actividades de compra y venta, se requieren clasificadores de conjuntos para analizar los cambios en los datos del mercado de valores y detectar síntomas sospechosos de manipulación de los precios de las acciones.

### Medicina

Los clasificadores de conjuntos se han aplicado con éxito en neurociencia, proteómica y diagnóstico médico, como en la detección de trastornos neurocognitivos (por ejemplo, Alzheimer o distrofia miotónica) a partir de conjuntos de datos de IRM, y en la clasificación de citología cervical.