Impulso en el aprendizaje automático: qué es, funciones, tipos y características
Publicado: 2020-05-29Impulsar el aprendizaje automático es un tema importante. Muchos analistas se confunden con el significado de este término. Por eso, en este artículo, descubriremos qué se entiende por impulso de Machine Learning y cómo funciona. Boosting ayuda a los modelos de ML a mejorar su precisión de predicción. Analicemos este algoritmo en detalle:
Tabla de contenido
¿Qué es impulsar en el aprendizaje automático?
Antes de hablar sobre el " impulso del aprendizaje automático ", primero debemos considerar la definición de este término. Impulsar significa 'animar o ayudar a que algo mejore'. El impulso del aprendizaje automático hace exactamente lo mismo, ya que potencia los modelos de aprendizaje automático y mejora su precisión. Por esta razón, es un algoritmo popular en la ciencia de datos.
Impulsar en ML se refiere a los algoritmos que convierten modelos de aprendizaje débiles en modelos fuertes. Supongamos que tenemos que clasificar los correos electrónicos en las categorías 'Spam' y 'Not Spam'. Podemos tomar el siguiente enfoque para hacer estas distinciones:
- Si el correo electrónico solo tiene un archivo de imagen, es spam (porque la imagen suele ser promocional)
- Si el correo electrónico contiene una frase similar a "Has ganado una lotería", es spam.
- Si el correo electrónico solo contiene un montón de enlaces, es spam.
- Si el correo electrónico proviene de una fuente que está presente en nuestra lista de contactos, no es spam.
Ahora, aunque tenemos reglas para la clasificación, ¿crees que son lo suficientemente fuertes individualmente para identificar si un correo electrónico es spam o no? Ellos no son. De forma individual, estas reglas son débiles y no son suficientes para clasificar un correo electrónico como 'No es spam' o 'Correo no deseado'. Tendremos que fortalecerlos, y podemos hacerlo usando un promedio ponderado o considerando la predicción de la votación más alta.
Entonces, en este caso, tenemos cinco clasificadores, de los cuales tres clasificadores marcan el correo electrónico como 'Spam', por lo tanto, consideraremos un correo electrónico 'Spam' de forma predeterminada, ya que esta clase tiene una votación más alta que 'No es spam' categoría.
Este ejemplo fue para darle una idea de lo que son los algoritmos de impulso. Son más complejos que esto.

Eche un vistazo a: 25 preguntas y respuestas de la entrevista de aprendizaje automático
¿Cómo trabajan?
El ejemplo anterior nos ha mostrado que impulsar combina aprendices débiles para formar reglas estrictas. Entonces, ¿cómo identificaría estas reglas débiles? Para encontrar una regla incierta, deberá usar algoritmos de aprendizaje basados en instancias. Cada vez que aplica un algoritmo de aprendizaje base, produciría una regla de predicción débil. Repetirá este proceso para múltiples iteraciones y, con cada iteración, el algoritmo de impulso combinará las reglas débiles para formar una regla fuerte.
El algoritmo de impulso elige la distribución correcta para cada iteración a través de varios pasos. Primero, tomará todas las distintas asignaciones y les asignará el mismo peso. Si el algoritmo de aprendizaje de primera base comete un error, agregará más peso a esas observaciones. Después de asignar el peso, pasamos al siguiente paso.
En este paso, seguiremos repitiendo el proceso hasta que aumentemos la precisión de nuestro algoritmo. Luego, combinaremos el resultado de los alumnos débiles y crearemos uno fuerte que potencie nuestro modelo y lo ayude a hacer mejores predicciones. Un algoritmo de impulso se enfoca más en las suposiciones que causan errores altos debido a sus reglas débiles.
Más información: 5 aplicaciones innovadoras del aprendizaje automático
Diferentes tipos de algoritmos de refuerzo
Los algoritmos de impulso pueden usar muchos tipos de motores subyacentes, incluidos maximizadores de márgenes, sellos de decisión y otros. Principalmente, hay tres tipos de algoritmos de impulso de aprendizaje automático:
- Impulso adaptativo (también conocido como AdaBoosta)
- Aumento de gradiente
- XGBoost
Hablaremos brevemente de los dos primeros, AdaBoost y Gradient Boosting, en este artículo. XGBoost es un tema mucho más complicado, del que hablaremos en otro artículo.
1. Impulso adaptativo
Suponga que tiene una caja que tiene cinco ventajas y cinco desventajas. Tu tarea es clasificarlos y ponerlos en diferentes tablas.
En la primera iteración, asigna pesos iguales a cada punto de datos y aplica un tocón de decisión en el cuadro. Sin embargo, la línea solo segrega dos más del grupo, y todos los demás permanecen juntos. Su muñón de decisión (que es una línea que atraviesa nuestra supuesta casilla), no logra predecir correctamente todos los puntos de datos y ha colocado tres ventajas con las desventajas.

En la siguiente iteración, asignamos más peso a las tres ventajas que habíamos pasado por alto anteriormente; pero esta vez, el tocón de decisión solo separa dos minutos del grupo. Asignaremos más peso a las desventajas que nos perdimos en esta iteración y repetiremos el proceso. Después de una o dos repeticiones, podemos combinar algunos de estos resultados para producir una regla de predicción estricta.
AdaBoost funciona así. Primero predice utilizando los datos originales y asigna el mismo peso a cada punto. Entonces concede mayor importancia a las observaciones que el primer alumno no logra predecir correctamente. Repite el proceso hasta que llega a un límite en la precisión del modelo.
Puede usar sellos de decisión, así como otros algoritmos de aprendizaje automático con Adaboost.
Aquí hay un ejemplo de AdaBoost en Python:
de sklearn.ensemble importar AdaBoostClassifier
de sklearn.datasets importar make_classification
X,Y = hacer_clasificación(n_muestras=100, n_características=2, n_informativo=2,
n_redundante=0, n_repetido=0, estado_aleatorio=102)
clf = AdaBoostClassifier(n_estimadores=4, estado_aleatorio=0, algoritmo='SAMME')
clf.ajuste(X, Y)
2. Aumento de gradiente
Gradient Boosting utiliza el método de descenso de gradiente para reducir la función de pérdida de toda la operación. El descenso de gradiente es un algoritmo de optimización de primer orden que encuentra el mínimo local de una función (función diferenciable). El aumento de gradiente entrena secuencialmente varios modelos y puede adaptarse a modelos novedosos para obtener una mejor estimación de la respuesta.
Construye nuevos aprendices base que pueden correlacionarse con el gradiente negativo de la función de pérdida y que están conectados a todo el sistema. En Python, deberá usar Gradient Tree Boosting (también conocido como GBRT). Puede usarlo para problemas de clasificación y regresión.
Aquí hay un ejemplo de Gradient Tree Boost en Python:
de sklearn.ensemble importar GradientBoostingRegressor
modelo = GradientBoostingRegressor(n_estimators=3,learning_rate=1)
modelo.ajuste(X,Y)
# para clasificación
de sklearn.ensemble importar GradientBoostingClassifier
modelo = GradientBoostingClassifier ()

modelo.ajuste(X,Y)
Características de Boost en Machine Learning
Boosting ofrece muchas ventajas y, como cualquier otro algoritmo, también tiene sus limitaciones:
- Interpretar las predicciones de impulso es bastante natural porque es un modelo de conjunto.
- Selecciona características implícitamente, lo cual es otra ventaja de este algoritmo.
- El poder de predicción de los algoritmos de impulso es más confiable que los árboles de decisión y el embolsado.
- Aumentar la escala es algo complicado porque cada estimador en el impulso se basa en los estimadores anteriores.
Lea también: Ideas de proyectos de aprendizaje automático para principiantes
A dónde ir desde aquí?
Esperamos que hayas encontrado útil este artículo sobre boosting. Primero, discutimos qué es este algoritmo y cómo resuelve los problemas de aprendizaje automático. Luego echamos un vistazo a su funcionamiento y cómo opera.
También discutimos sus diversos tipos. Descubrimos sobre AdaBoost y Gradient Boosting mientras compartíamos sus ejemplos también. Si está interesado en obtener más información sobre el aprendizaje automático, consulte el Diploma PG en aprendizaje automático e IA de IIIT-B y upGrad, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, IIIT- B Estado de exalumno, más de 5 proyectos prácticos finales prácticos y asistencia laboral con las mejores empresas.
¿Cómo puedo definir impulsar el aprendizaje automático en términos simples?
El impulso en máquinas consiste en referirse a algoritmos que ayudan a convertir modelos débiles de aprendizaje en modelos fuertes. Si tomamos el ejemplo de clasificar los correos electrónicos como spam y no spam, hay ciertas distinciones que se pueden utilizar para que sea más fácil de entender. Estas distinciones se pueden abordar cuando un correo electrónico tiene un solo archivo, contiene una frase similar como Te has ganado la lotería, contiene un montón de enlaces y proviene de una lista de contactos.
¿Cómo funciona un algoritmo de impulso?
Las reglas débiles se identifican mediante el uso de algoritmos de aprendizaje basados en instancias. Una vez que se aplica un algoritmo de aprendizaje base en múltiples iteraciones, finalmente combina las reglas débiles en una regla fuerte. El algoritmo de impulso toma las decisiones correctas para distribuir cada iteración a través de múltiples pasos. Después de tomar asignaciones, asigna el mismo peso hasta que se comete un error, después de lo cual se asigna más peso. Este proceso se repite hasta que se logra una mayor precisión. A partir de entonces, todos los productos débiles se combinan para hacer uno fuerte.
¿Cuáles son los diferentes tipos de algoritmos de impulso y sus características?
Los diferentes tipos son refuerzo adaptativo, refuerzo de gradiente y XGBoost. Impulsar tiene características como que selecciona características implícitamente. Los árboles de decisión son menos confiables que los poderes de predicción. Además, escalar es más difícil porque los estimadores se basan en los anteriores. E interpretar las predicciones de impulso es natural, ya que es un modelo de conjunto.