Algoritmo AdaBoost

La traducción del artículo fue preparada en la víspera del inicio del curso avanzado "Matemáticas para la ciencia de datos" .



Introducción


El algoritmo AdaBoost se puede usar para mejorar el rendimiento de cualquier algoritmo de aprendizaje automático. El aprendizaje automático se ha convertido en una herramienta poderosa para hacer predicciones basadas en grandes cantidades de datos. Se ha vuelto tan popular hoy en día que las aplicaciones de aprendizaje automático encuentran aplicación incluso en las tareas cotidianas. Uno de los ejemplos más comunes son las recomendaciones de productos basadas en compras pasadas realizadas por un cliente. El aprendizaje automático, a menudo llamado análisis predictivo o modelado predictivo, se puede definir como la capacidad de las computadoras para aprender sin programación explícita. El aprendizaje automático utiliza algoritmos preconstruidos para analizar datos de entrada para hacer predicciones basadas en ciertos criterios.

¿Qué es el algoritmo AdaBoost?


En el aprendizaje automático, se necesita impulsar para convertir clasificadores débiles en fuertes. Un algoritmo o clasificador de aprendizaje débil es un algoritmo de aprendizaje que funciona mejor que adivinar al azar, y funcionará bien en caso de reentrenamiento, porque con un gran conjunto de clasificadores débiles, cualquier clasificador débil funcionará mejor que el muestreo aleatorio. Como un clasificador débil, el habitual se usa a menudo de thresholdacuerdo con cierto criterio. Si el signo se encuentra más alto threshold(valor umbral) de lo predicho, se refiere al área positiva, de lo contrario, al negativo.

AdaBoost significa "refuerzo adaptativo" o refuerzo adaptativo. Convierte algoritmos de aprendizaje débiles en algoritmos fuertes para resolver problemas de clasificación.

La ecuación final para la clasificación puede ser la siguiente:



Aquí f m es el clasificador débil m-ésimo, donde m es responsable del peso correspondiente.

¿Cómo funciona el algoritmo AdaBoost?


AdaBoost se puede utilizar para mejorar el rendimiento de los algoritmos de aprendizaje automático . Funciona mejor con algoritmos de entrenamiento débiles, por lo que dichos modelos pueden lograr una precisión muy superior al azar al resolver el problema de clasificación. Los algoritmos más comunes utilizados con AdaBoost son árboles de decisión de un solo nivel . Un algoritmo de aprendizaje débil es un algoritmo de clasificación o predicción que funciona relativamente mal en términos de precisión. Además, podemos decir que los clasificadores débiles son fáciles de calcular, por lo que puede combinar muchas entidades del algoritmo para crear un clasificador más fuerte mediante el refuerzo.

Si tenemos un conjunto de datos en el que n es el número de puntos y



Donde -1 es la clase negativa y 1 es la positiva. Luego, se inicializará el peso de cada punto, como se muestra a continuación:



cada m en la siguiente expresión variará de 1 a M.
Primero, debe seleccionar un clasificador débil con el error de clasificación ponderado más pequeño, aplicando el clasificador al conjunto de datos.



Luego calculamos el peso del clasificador débil mth, como se muestra a continuación:



El peso es positivo para cualquier clasificador con una precisión superior al 50%. Cuanto más peso, más preciso es el clasificador. El peso se vuelve negativo cuando la precisión cae por debajo del 50%. Las predicciones se pueden combinar invirtiendo el signo. Por lo tanto, un clasificador con una precisión del 40% se puede convertir en un clasificador con una precisión del 60%. Por lo tanto, el clasificador contribuirá a la predicción final, incluso si funcionó peor que adivinar al azar. Sin embargo, el resultado final no cambiará de ninguna manera bajo la influencia de un clasificador cuya precisión sea del 50%.

El exponente en el numerador siempre será mayor que 1 en caso de clasificación incorrecta del clasificador con un peso positivo. Después de la iteración, aumentará el peso de los objetos clasificados incorrectamente. Los clasificadores con peso negativo se comportarán de manera similar. Hay una diferencia en la inversión de signos: la clasificación correcta se volverá incorrecta. El pronóstico final se puede calcular teniendo en cuenta la contribución de cada clasificador y calculando la suma de sus pronósticos ponderados.

El peso para cada punto se actualizará de la siguiente manera:



Aquí Z m es un parámetro de normalización. Es necesario asegurarse de que la suma de todos los pesos de instancia sea 1.

¿Dónde se usa el algoritmo AdaBoost?


AdaBoost se puede utilizar para el reconocimiento facial, ya que es un algoritmo estándar para tales tareas. Utiliza una cascada de rechazo que consta de varias capas de clasificadores. Cuando el área de reconocimiento no detecta caras en ninguna capa, se rechaza. El primer clasificador en la región descarta la región negativa para minimizar el costo de la computación. Aunque AdaBoost se usa para combinar clasificadores débiles, los principios de AdaBoost también se usan para encontrar las mejores características para cada capa en la cascada.

Algoritmo de AdaBoost ventajas y desventajas


Una de las muchas ventajas del algoritmo AdaBoost es que es fácil, rápido y fácil de programar. Además, es lo suficientemente flexible como para combinarlo con cualquier algoritmo de aprendizaje automático sin establecer parámetros, excepto el parámetro T. Se puede expandir a tareas de aprendizaje más complicadas que la clasificación binaria, y es lo suficientemente universal porque puede usarse con datos numéricos o textuales.

AdaBoost también tiene varios inconvenientes, al menos el hecho de que este algoritmo está probado empíricamente y es muy vulnerable al ruido distribuido de manera uniforme. Los clasificadores débiles si son demasiado débiles pueden conducir a malos resultados y reentrenamiento.

Ejemplo de algoritmo AdaBoost


Como ejemplo, tome la campaña de admisión de la universidad, donde un solicitante puede ser admitido en la universidad o no. Aquí puede tomar varios datos cuantitativos y cualitativos. Por ejemplo, el resultado de la admisión, que puede expresarse como "sí" o "no", puede cuantificarse, mientras que las habilidades y pasatiempos de los estudiantes pueden determinarse cualitativamente. Podemos llegar fácilmente a la clasificación correcta de los datos de entrenamiento. Supongamos que si un estudiante se mostró bien en cierta disciplina, entonces será aceptado con una mayor probabilidad. Sin embargo, predecir con alta precisión es un asunto complicado y es aquí donde ayudan los clasificadores débiles.

Conclusión


AdaBoost ayuda a elegir un conjunto de entrenamiento para cada clasificador, que se entrena en función de los resultados del clasificador anterior. En cuanto a la combinación de los resultados, el algoritmo determina cuánto peso debe asignarse a cada clasificador en función de la respuesta recibida. Combina clasificadores débiles para crear errores de clasificación fuertes y correctos, y también es un algoritmo de refuerzo extremadamente exitoso para problemas de clasificación binaria.



Aprende más sobre el curso.



All Articles