Logo Studenta

Mejora de Modelos de Machine Learning I

¡Este material tiene más páginas!

Vista previa del material en texto

Mejora de Modelos de Machine Learning I
SURFEANDO EL OVERFITTING
Bias-Variance (Sesgo vs Varianza)
Bias:
El error debido al Bias de un modelo, es simplemente la diferencia entre el valor esperado del estimador (es decir, la predicción media del modelo) y el valor real. Cuando se dice que un modelo tiene un bias muy alto quiere decir que el modelo es muy simple y no se ha ajustado a los datos de entrenamiento (suele ser underfitting), por lo que produce un error alto en todas las muestras: entrenamiento, validación y test.
Variance:
La varianza de un estimador, es cuánto varía la predicción según los datos que utilicemos para el entrenamiento. Como bien sabemos, la mayoría de los algoritmos de Machine Learning aprenden de los datos de entrenamiento de manera aleatoria. Así que es normal que todos los modelos tengan cierta varianza. Aunque si creamos un modelo robusto, este debería aprender las relaciones entre las variables y el target.
Entonces, podemos determinar las siguientes apreciaciones:
· Un modelo con varianza baja indica que cambiar los datos de entrenamiento se producen cambios pequeños en la estimación.
· Al contrario, un modelo con varianza alta quiere decir que pequeños cambios en el dataset conlleva a grandes cambios en el output (generalmente overfitting).
¡Importante!
Los algoritmos que suelen tener un error de bias alto suelen tener una varianza baja. A su vez, los que tienen bias bajo suelen tener varianza alta.
¿Qué es el tradeoff bias vs variance ?
Lo óptimo que queremos tener, es un modelo que tenga poco bias y poca varianza. Esto es lo que podríamos llamar un modelo robusto.
El problema justamente lo tenemos, cuando no contamos con un modelo robusto y queremos mejorar uno de estos errores. Aquí se encuentra el famoso “tradeoff”.
· Disminuir la varianza implica aumentar el bias.
· Disminuir el bias hace que la varianza aumente.
Esto se explica porque un modelo con bias es un modelo sencillo y un modelo con varianza es un modelo complejo.
Un modelo predictivo bueno será el que tenga un buen balance entre bias y varianza de manera que se minimice el error total:
 	 Error Total = Bias2 + Varianza + Error Irreducible.
Encontrando el balance perfecto
El punto óptimo será aquel donde se minimice el error total.
¿Cuáles son las causas del overfitting?
Las causas del overfitting pueden ser complicadas. Generalmente, podemos categorizarlas en tres tipos:
· Ruido en el conjunto de entrenamiento: Cuando el conjunto de entrenamiento es demasiado pequeño o tiene menos datos representativos o demasiado ruido. Esta situación hace que los ruidos tengan grandes posibilidades de ser aprendidos, y luego actuar como base de predicciones. Por lo tanto, un algoritmo que funcione bien debería poder distinguir los datos representativos de los ruidos.
· No gestionar correctamente el Tradeoff - Bias vs Variance: Esto se debe a lo que hemos hablado anteriormente, cuando no se logra gestionar efectivamente el equilibrio entre sesgo y varianza nuestro modelo incluso, puede verse afectado por el underfitting.
· Falta de Datos: Sin dudas, cuando tenemos pocos registros en nuestro dataset es un problema a la hora de lograr una generalización de nuestro modelo.
Para evitar el overfitting podemos hacer uso de diferentes técnicas por ejemplo: 
· Limpiar el dataset antes de entrenar – Data Wrangling.
· Realizar el entrenamiento del modelo con más datos.
· Aplicar KFold - CrossValidatión.
· Hypertuning de Parámetros.
· Hacer uso de métodos Ensamble por ejemplo. 
KFold – CrossValidation
Antes de hablar de la Validación Cruzada, tenemos que entender el concepto de la Validación Simple, este tipo de validación consiste en repartir aleatoriamente las observaciones disponibles en dos grupos, uno se emplea para entrenar al modelo y otro para evaluarlo. 
Si bien es la opción más simple, tiene dos problemas importantes:
· La estimación del error es altamente variable dependiendo de qué observaciones se incluyan como conjunto de entrenamiento y cuáles como conjunto de validación (problema de varianza).
· Al excluir parte de las observaciones disponibles como datos de entrenamiento (generalmente el 30%), se dispone de menos información con la que entrenar el modelo y, por lo tanto, se reduce su capacidad (problema de bias).
Otro método muy popular es Leave One Out Cross-Validation (LOOCV) 
Este método es de tipo iterativo y se inicia empleando como conjunto de entrenamiento todas las observaciones disponibles excepto una, que se excluye para emplearla como validación. Si se emplea una única observación para calcular el error, este varía mucho dependiendo de qué observación se haya seleccionado. Para evitarlo, el proceso se repite tantas veces como observaciones disponibles, excluyendo en cada iteración una observación distinta, ajustando el modelo con el resto y calculando el error con dicha observación. 
La principal desventaja de este método es su coste computacional. El proceso requiere que el modelo sea reajustado y validado tantas veces como observaciones disponibles (n) lo que en algunos casos puede ser muy complicado. LOOCV es un método de validación muy extendido ya que puede aplicarse para evaluar cualquier tipo de modelo. Sin embargo, si bien aunque es muy aceptable, también suele aplicarse el método de K-Fold Cross-Validation.
KFold – CrossValidation
Ahora sí! ¿Qué es la Validación Cruzada?
El método K-Fold Cross-Validation es también un proceso iterativo. Consiste en dividir los datos de forma aleatoria en k grupos de aproximadamente el mismo tamaño, k-1 grupos se emplean para entrenar el modelo y uno de los grupos se emplea como validación. Este proceso se repite k veces utilizando un grupo distinto como validación en cada iteración. El proceso genera k estimaciones del error cuyo promedio se emplea como estimación final.
Existen dos grandes ventajas del método K-Fold Cross-Validation frente al LOOCV:
· Requerimientos computacionales: El número de iteraciones necesarias viene determinado por el valor k escogido. Por lo general, se recomienda un k entre 5 y 10. LOOCV es un caso particular de K-Fold Cross-Validation en el que k = nº observaciones, si el data set es muy grande o el modelo muy complejo, se requiere muchas más iteraciones.
· Balance entre bias y varianza: La principal ventaja de K-fold CV es que consigue una estimación precisa del error de test gracias a un mejor balance entre bias y varianza. En el método K-fold CV los k grupos empleados como entrenamiento son mucho menos solapantes, lo que se traduce en menor varianza al promediar las estimaciones de error.
Stratified K-Fold
Statified K-fold es una variante mejorada de K-fold, que cuando hace los splits (las divisiones) del conjunto de train tiene en cuenta mantener equilibradas las clases, esto significa que cada conjunto contiene aproximadamente el mismo porcentaje de muestras de cada clase objetivo que el conjunto completo. Esto es muy útil, en el siguiente caso por ejemplo: Tenemos que clasificar nuestro target en “SI/NO” entonces si una de las iteraciones del K-fold normal tuviera muestras con etiquetas sólo “SI” el modelo no podría aprender a generalizar y aprenderá para cualquier input a responder “SI”. 
Optimización de Modelos - Hypertuning Parameter
La optimización de los modelos es uno de los desafíos más difíciles en la implementación de soluciones de aprendizaje automático. 
La optimización de hiper parámetros en el aprendizaje automático, tiene por objeto encontrar los hiper parámetros de un determinado algoritmo de aprendizaje automático que ofrezcan el mejor rendimiento medido en un conjunto de validación. 
Los hiper parámetros, a diferencia de los parámetros de los modelos, son establecidos por el científico de datos. Podemos pensar, que los hiper parámetros son los ajustes del modelo para que el modelo pueda resolver de manera óptima el problema de aprendizaje automático.
La optimización de hiper parámetros, encuentra una combinación de hiper parámetros que devuelve un modelo óptimoque reduce una función de pérdida predefinida y a su vez aumenta la performance del mismo.
Los hiper parámetros pueden tener un impacto directo en el entrenamiento de los algoritmos de aprendizaje automático. Por lo tanto, para lograr el máximo rendimiento, es importante entender cómo optimizarlos. A continuación, abordaremos las principales técnicas que debemos tener en cuenta como Científicos de Datos.
1. Ajuste manual de hiper parámetros: Tradicionalmente, los hiper parámetros se ajustaban manualmente por ensayo y error. Esto todavía se hace comúnmente, y los ingenieros experimentados pueden "adivinar" los valores de los parámetros que ofrecerán una muy alta precisión para los modelos de aprendizaje automático. Sin embargo, hay una búsqueda continua de métodos mejores, más rápidos y automáticos para optimizar los hiper parámetros.
2. Búsqueda de Cuadrícula – GridSearch CV: La búsqueda de cuadrícula, es esencialmente un algoritmo de optimización que nos permite seleccionar los mejores parámetros para un problema de optimización de una lista de opciones de parámetros que nosotros le proporcionaremos al método, con esto logramos automatizar la aplicación de tipo ‘prueba y error’. Aunque se puede aplicar a muchos problemas de optimización, es más conocido por su uso en el Machine Learning para obtener los parámetros en los que el modelo ofrece la mejor precisión.
Entonces podemos decir que el método de Grid Search, es un método de ajuste de parámetros que realiza una búsqueda exhaustiva entre todas las selecciones de parámetros candidatos, a través de bucles y probando todas las posibilidades existentes, hasta encontrar el mejor hyperparámetro existente. 
La principal desventaja de este método es que consume mucho tiempo. Por lo tanto, la búsqueda en la cuadrícula es adecuada para tres o cuatro (o menos) hiperparámetros (cuando el número de hiperparámetros crece, la complejidad computacional de la búsqueda en la cuadrícula aumentará exponencialmente.
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html
3. Búsqueda aleatoria: Muchas veces algunos de los hiper parámetros importan más que otros. Realizar una búsqueda aleatoria en lugar de una búsqueda por cuadrículas, permite un descubrimiento mucho más preciso de los buenos valores para los hiperparámetros más importantes.
La Búsqueda Aleatoria establece una cuadrícula de valores hiper paramétricos y selecciona combinaciones aleatorias para entrenar y puntuar el modelo. El número de iteraciones de búsqueda se establece en función del tiempo o los recursos, Scikit Learn ofrece la función RandomizedSearchCV para este proceso.
Aunque es posible que RandomizedSearchCV no encuentre un resultado tan preciso como GridSearchCV, sorprendentemente escoge el mejor resultado más a menudo y en una fracción del tiempo que GridSearchCV habría tardado. Con los mismos recursos, la Búsqueda Aleatoria puede incluso superar a la Búsqueda por Cuadrículas.
Link de Interés:
· https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RandomizedSearchCV.html
4. Optimización Bayesiana:
Los dos métodos anteriores realizaron experimentos individuales construyendo modelos con varios valores de hiper parámetros registrando el rendimiento del modelo para cada uno. Debido a que cada experimento se realizó de forma aislada, no podemos utilizar la información de un experimento para mejorar el siguiente.
La optimización bayesiana pertenece a una clase de algoritmos de optimización basada en modelos secuenciales (SMBO) que permiten utilizar los resultados de nuestra iteración anterior para mejorar nuestro método de muestreo del siguiente experimento. Esto a su vez, limita el número de veces que un modelo necesita ser entrenado para la validación, ya que sólo aquellos ajustes que se espera que generen una mayor puntuación de validación se pasan para su evaluación.
En términos generales, la optimización bayesiana de hiperparámetros consiste en crear un modelo probabilístico en el que el valor de la función objetivo es la métrica de validación del modelo (rmse, auc, precisión..). Con esta estrategia, se consigue que la búsqueda se vaya redirigiendo en cada iteración hacia las regiones de mayor interés.
El objetivo final es reducir el número de combinaciones de hiperparámetros con las que se evalúa el modelo, eligiendo únicamente los mejores candidatos. Esto significa que, la ventaja frente a las otras estrategias mencionadas, se maximiza cuando el espacio de búsqueda es muy amplio o la evaluación del modelo es muy lenta.

Continuar navegando

Materiales relacionados

109 pag.
DocsTec-6241

ITESM

User badge image

Todo para Aprender

72 pag.
11 pag.
yoli - Yolanda Moreno torres

User badge image

Desafío México Veintitrés