Al evaluar y comparar el rendimiento de diferentes modelos de aprendizaje automático es habitual observar que las mejores predicciones no siempre proceden del mismo modelo. En un subconjunto de datos los mejores resultados los ofrece la regresión lineal, pero en otro funcionan mejor los árboles de decisión. Lo que indica que el mejor modelo sería una combinación de los mejores. Afortunadamente para estas situaciones tan habituales se cuenta con los métodos de aprendizaje por conjuntos (Ensemble Learning). Métodos con los que se entrena diferentes modelos empleando el mismo conjunto de datos y combina el conjunto de predicciones realizadas por cada modelo para obtener una que sea más precisa y menos propensa a errores. Básicamente, los métodos existentes de aprendizaje por conjuntos se pueden dividir en tres tipos: Votación (Voting), Bagging y Boosting. Tipos que se describirán a continuación.
Votación (Voting)
Los modelos de aprendizaje por conjuntos basados en votación son posiblemente los más sencillos. Tal como su nombre indica en estos se entrenan diferentes modelos con el mismo conjunto de datos y se selecciona la mejor predicción por un sistema de votación. Cada uno de los modelos entrenados emite su predicción en cada caso y la más votada será la seleccionada por el conjunto.
Por ejemplo, se pueden entrenar con un conjunto de datos tres modelos diferentes. Uno basado en árboles de decisión, otro en el que se use una regresión logística y un tercero construido con k-vecinos. Tras el entrenamiento cada modelo podrá realizar predicciones para cada uno de los casos que se le presente, las cuales no tienen porqué ser la misma en los tres modelos. Siendo la predicción del conjunto aquella en la que más modelos coinciden. Esto es, si los árboles de decisión y la regresión logística realizan una predicción cuyo valor es verdadero, mientras que en el caso de k-vecinos es falsa. El resultado final será verdadero ya que esta tiene dos votos frente a uno para el caso de falso.
Votación dura, votación blanda (Hard Voting, Soft Voting)
Los modelos de votación se pueden dividir en dos tipos dependiendo de cómo se cuenten los votos: votación dura o votación blanda. En el caso de votación dura cada uno de los modelos realiza una predicción y todos los modelos tienen el mismo peso. Seleccione, como en el ejemplo de la sección anterior, la predicción que más veces se repite. Por otro lado, en el caso de la votación blanda, cada uno de los modelos además de la predicción debe indicar la confianza que tiene en esta. Seleccionando la predicción del conjunto mediante un sistema de votación ponderada, dando mayor peso a los modelos que devuelve una mayor confianza en sus predicciones. Por lo que no todas las familias de modelos se pueden emplear para este tipo de votación, es necesario que pueden estimar una probabilidad para la predicción. Seleccionando la predicción en base
Bagging
En el caso de Bagging solamente se entrenan modelos basados en una única familia de algoritmos, pero usando en cada caso un subconjunto de datos diferente generado de manera aleatoria. Por ejemplo, Random Forest es un caso de Bagging en el que se usan árboles de decisión. Pero, al igual que en el caso de Votación, la predicción del conjunto se obtiene mediante la votación de todos los modelos entrenados.
Los modelos finales creados mediante Bagging tienen una menor variabilidad y una mayor precisión. Reduciendo la probabilidad de sobreajuste, ya que ninguno de los modelos es entrenado con la totalidad de los datos.
Boosting
Finalmente, está Boosting, en el que se entrena varios modelos en serie y cada uno de ellos aprende de los errores de los anteriores e intenta corregir sus predicciones. Siendo los dos métodos más populares de esta familia Ada Boost y Gradient Boosting.
Ada Boosting
Ada Boost o Adaptive Boosting es un método de aprendizaje por conjuntos en el que cada modelo se centra especialmente en las predicciones erróneas de su antecesor. Asignado un mayor peso a las instancias que clasifican erróneamente los datos.
Gradient Boosting
En el Gradient Boosting se busca hacer que los modelos que aprenden mal mejoren, actualizando para ello los pesos de los modelos. Empleando para ello la técnica de Stochastic Gradient Boosting donde se usan subconjuntos aleatorios de datos para mejorar las predicciones.
Conclusiones
Los modelos de aprendizaje por conjuntos (Ensemble Learning) son una excelente herramienta para mejorar las predicciones en aprendizaje automático. Combinando las fortalezas de las diferentes familias de modelo con los que contamos para la creación de estos.
Imagen de Ben Kerckx en Pixabay
Deja una respuesta