¿Qué es el boosting en machine learning?

El boosting es un método utilizado en el machine learning para reducir los errores en el análisis predictivo de datos. Los científicos de datos entrenan el software de machine learning, llamado modelos de machine learning, con datos etiquetados para efectuar predicciones sobre datos no etiquetados. Un único modelo de machine learning puede cometer errores de predicción según la precisión del conjunto de datos de entrenamiento. Por ejemplo, si un modelo de identificación de gatos se entrenó solo con imágenes de gatos blancos, es posible que en ocasiones no identifique un gato de color negro. El boosting intenta solucionar este problema mediante el entrenamiento secuencial de varios modelos para mejorar la precisión del sistema en general.

¿Por qué es importante el boosting?

El boosting mejora la precisión predictiva y el rendimiento de los modelos de machine learning, ya que convierte varios estudiantes débiles en un modelo de aprendizaje fuerte y único. Los modelos de machine learning pueden ser estudiantes débiles o estudiantes fuertes:

Estudiantes débiles

Los estudiantes débiles tienen una precisión de predicción baja, similar a predicciones aleatorias. Son propensos al sobreajuste, es decir, no pueden clasificar datos que varían demasiado de su conjunto de datos original. Por ejemplo, si entrena el modelo para identificar a los gatos como animales que tienen orejas puntiagudas, es probable que el modelo no reconozca a un gato que tenga las orejas dobladas.

Estudiantes fuertes

Los estudiantes fuertes tienen una precisión de predicción más alta. El boosting convierte un sistema de estudiantes débiles en un único sistema de aprendizaje fuerte. Por ejemplo, para identificar la imagen del gato, se combina un estudiante débil que identifica las orejas puntiagudas y otro estudiante que identifica la forma de los ojos. Después de analizar la imagen del animal por las orejas puntiagudas, el sistema la analiza una vez más por la forma de los ojos. Esto mejora la precisión general del sistema.

Amazon SageMaker’s Built-in Algorithm Webinar Series: XGBoost (Serie de seminarios web sobre el algoritmo integrado de Amazon SageMaker: XGBoost)

¿Cómo funciona el boosting?

Para comprender cómo funciona el boosting, describiremos cómo toman decisiones los modelos de machine learning. Si bien existen muchas variaciones en la implementación, los científicos de datos muchas veces utilizan algoritmos de árbol de decisión:

Árboles de decisión

Los árboles de decisión son estructuras de datos en el machine learning que dividen el conjunto de datos en subconjuntos cada vez más pequeños en función de sus características. La idea es que los árboles de decisión dividan los datos reiteradamente hasta que solo quede una clase. Por ejemplo, es posible que el árbol haga una serie de preguntas de sí o no y divida los datos en categorías en cada paso.

Método de conjunto boosting

El boosting crea un modelo de conjunto mediante la combinación secuencial de varios árboles de decisión débiles. Asigna ponderaciones a las salidas de los árboles individuales. Luego, a las clasificaciones incorrectas del primer árbol de decisión les da una ponderación más alta y una entrada al árbol siguiente. Después de numerosos ciclos, el método boosting combina estas reglas débiles en una única regla de predicción poderosa.

Boosting en comparación con bagging

Boosting y bagging son los dos métodos de conjunto comunes que mejoran la precisión de la predicción. La diferencia principal entre estos métodos de aprendizaje es el método de entrenamiento. En el bagging, los científicos de datos mejoran la precisión de los estudiantes débiles mediante el entrenamiento de varios de ellos a la vez y en varios conjuntos de datos. En cambio, el boosting entrena a los estudiantes débiles de forma individual.

¿Cómo se lleva a cabo el entrenamiento en el boosting?

El método de entrenamiento varía en función del tipo de proceso de boosting denominado algoritmo de boosting. Sin embargo, un algoritmo sigue los siguientes pasos generales para entrenar el modelo de boosting:

Paso 1

El algoritmo de boosting asigna la misma ponderación a cada muestra de datos. Ingresa los datos al primer modelo de machine learning, llamado algoritmo base. El algoritmo base hace predicciones para cada muestra de datos.

Paso 2

El algoritmo de boosting evalúa las predicciones del modelo y aumenta la ponderación de las muestras que presentan un error más significativo. También asigna una ponderación basada en el rendimiento del modelo. Un modelo que genera excelentes predicciones tendrá una gran influencia sobre la decisión final.

Paso 3

El algoritmo pasa los datos ponderados al siguiente árbol de decisión.

Paso 4

El algoritmo repite los pasos 2 y 3 hasta que las instancias de errores de entrenamiento estén por debajo de cierto límite.

¿Cuáles son los tipos de boosting?

A continuación, se encuentran los tres tipos de boosting principales:

Adaptive Boosting

Adaptive Boosting (AdaBoost) fue unos de los primeros modelos de boosting que se desarrollaron. Se adapta e intenta autocorregirse en cada iteración del proceso de boosting

Al principio AdaBoost brinda la misma ponderación a cada conjunto de datos. Luego, ajusta de forma automática las ponderaciones de los puntos de datos después de cada árbol de decisión. Otorga más ponderación a los elementos clasificados de forma incorrecta para corregirlos en la siguiente ronda. Repite el proceso hasta que el error residual, o la diferencia entre los valores reales y los previstos, cae por debajo de un límite aceptable.

AdaBoost se puede utilizar con muchos predictores y, por lo general, no es tan sensible como otros algoritmos de boosting. Este enfoque no funciona bien cuando existe una correlación entre las características o una dimensionalidad alta de los datos. En general, AdaBoost es un tipo de boosting adecuado para problemas de clasificación.

Gradient boosting

Gradient Boosting (GB) es similar a AdaBoost, ya que también es una técnica de entrenamiento secuencial. La diferencia entre el AdaBoost y el GB es que el GB no asigna más ponderación a los elementos que se clasificaron de forma incorrecta. En cambio, el software del GB optimiza la función de pérdida mediante la generación secuencial de estudiantes base, de manera que el estudiante base presente sea siempre más efectivo que el anterior. Este método intenta generar resultados precisos desde el principio en lugar de corregir errores a lo largo del proceso, como AdaBoost. Por este motivo, el software de GB puede conducir a resultados más precisos. Gradient Boosting puede ayudar con problemas basados en la clasificación y en la regresión.

Extreme gradient boosting

Extreme Gradient Boosting (XGBoost) mejora el boosting de gradiente para la velocidad computacional y para escalar de varias maneras. XGBoost utiliza varios núcleos en la CPU para que el aprendizaje pueda ocurrir en paralelo durante el entrenamiento. Es un algoritmo de boosting que puede manejar grandes conjuntos de datos, lo que lo hace atractivo para aplicaciones de macrodatos. Las características clave de XGBoost son la paralelización, la computación distribuida, la optimización de la memoria caché y el procesamiento fuera del núcleo.

¿Qué beneficios ofrece el boosting?

El boosting ofrece los siguientes beneficios principales:

Implementación fácil

El boosting cuenta con algoritmos fáciles de comprender y de interpretar que aprenden de sus errores. Estos algoritmos no necesitan un procesamiento previo de datos y tienen rutinas integradas para manejar la falta de datos. Además, la mayoría de los lenguajes tienen bibliotecas integradas para implementar algoritmos de boosting con muchos parámetros que pueden ajustar el rendimiento.

Reducción del sesgo

El sesgo es la presencia de incertidumbre o inexactitud en los resultados del machine learning. Los algoritmos de boosting combinan varios estudiantes débiles en un método secuencial, lo que mejora las observaciones de forma iterativa. Este enfoque ayuda a reducir el sesgo alto, que es común en los modelos de machine learning.

Eficacia computacional

Los algoritmos de boosting priorizan las características que aumentan la precisión predictiva durante el entrenamiento. Pueden ayudar a reducir los atributos de los datos y manejar grandes conjuntos de datos de manera eficiente.

¿Qué desafíos presenta el boosting?

A continuación, se mencionan limitaciones comunes de los modos de boosting:

Vulnerabilidad a datos atípicos

Los modelos de boosting son vulnerables a valores atípicos o valores de datos que son diferentes del resto del conjunto de datos. Debido a que cada modelo intenta corregir las fallas de su predecesor, los valores atípicos pueden sesgar los resultados de forma significativa.

Implementación en tiempo real

Es posible que le resulte difícil utilizar el boosting para la implementación en tiempo real porque el algoritmo es más complejo que otros procesos. Los métodos de boosting tienen alta adaptabilidad; por lo tanto, puede utilizar una amplia variedad de parámetros del modelo que afectan de inmediato el rendimiento del modelo.

¿Cómo puede AWS ayudarlo con el boosting?

Los servicios de red de AWS están diseñados para proporcionar a las empresas:

Amazon SageMaker

Amazon SageMaker reúne un amplio conjunto de capacidades especialmente diseñadas para el machine learning. Puede utilizarlo para preparar, crear, entrenar e implementar rápidamente modelos de machine learning de alta calidad.

Amazon SageMaker Autopilot

Amazon SageMaker Autopilot elimina las arduas tareas de creación de modelos de machine learning y lo ayuda a crear y entrenar de forma automática modelos basados en sus datos. Con SageMaker Autopilot, usted proporciona un conjunto de datos tabular y selecciona la columna de destino para predecir, lo que puede ser un número o una categoría. SageMaker Autopilot analiza diferentes soluciones de manera automática para encontrar el mejor modelo. Luego, implementa de forma directa el modelo en la etapa de producción con un solo clic o itera en las soluciones recomendadas con Amazon SageMaker Studio para mejorar aún más la calidad del modelo.

Amazon SageMaker Debugger

Amazon SageMaker Debugger facilita la optimización de los modelos de machine learning mediante la captura de métricas de entrenamiento en tiempo real y el envío de alertas cuando se detectan errores. Esto ayuda a corregir de forma inmediata las predicciones imprecisas del modelo, como la identificación incorrecta de una imagen.

Amazon SageMaker ofrece métodos rápidos y sencillos para entrenar grandes conjuntos de datos y modelos de aprendizaje profundo. Las bibliotecas de entrenamiento distribuidas de SageMaker forman grandes conjuntos de datos más rápido.

Cree una cuenta de AWS y comience a utilizar Amazon SageMaker hoy mismo.

Próximos pasos de AWS Machine Learning

Descubra otros recursos relacionados con el producto
Obtenga más información sobre los servicios de machine learning 
Vea los servicios gratuitos de machine learning

Obtenga acceso al instante a servicios gratuitos de machine learning con el nivel gratuito de AWS.

Vea los servicios gratuitos de machine learning 
Comience a crear en la consola

Comience a crear con SageMaker en la consola de administración de AWS.

Regístrese