Evitar el sobreajuste y los datos desequilibrados con el aprendizaje automático automatizadoPrevent overfitting and imbalanced data with automated machine learning

El sobreajuste y los datos desequilibrados son un problema común al crear modelos de Machine Learning.Over-fitting and imbalanced data are common pitfalls when you build machine learning models. De forma predeterminada, el aprendizaje automático automatizado de Azure Machine Learning proporciona gráficos y métricas para facilitar la identificación de estos riesgos, e implementa procedimientos recomendados para ayudarle a mitigarlos.By default, Azure Machine Learning's automated machine learning provides charts and metrics to help you identify these risks, and implements best practices to help mitigate them.

Identificación del sobreajusteIdentify over-fitting

El sobreajuste en el aprendizaje automático se produce cuando un modelo se ajusta demasiado bien a los datos de entrenamiento y, como resultado, no puede predecir con precisión sobre datos de prueba desconocidos.Over-fitting in machine learning occurs when a model fits the training data too well, and as a result can't accurately predict on unseen test data. En otras palabras, el modelo simplemente ha memorizado patrones y ruido específicos de los datos de entrenamiento, pero no es lo suficientemente flexible como para realizar predicciones sobre datos reales.In other words, the model has simply memorized specific patterns and noise in the training data, but is not flexible enough to make predictions on real data.

Examine los siguientes modelos entrenados y sus correspondientes precisiones de entrenamiento y prueba.Consider the following trained models and their corresponding train and test accuracies.

ModeloModel Precisión del entrenamientoTrain accuracy Precisión de la pruebaTest accuracy
AA 99,9 %99.9% 95 %95%
BB 87 %87% 87 %87%
CC 99,9 %99.9% 45 %45%

Si observa el modelo A, hay una idea equivocada habitual de que si la precisión de la prueba en los datos desconocidos es inferior a la del entrenamiento, el modelo está sobreajustado.Considering model A, there is a common misconception that if test accuracy on unseen data is lower than training accuracy, the model is over-fitted. Pero la precisión de la prueba siempre debe ser menor que la del entrenamiento y la distinción entre el sobreajuste y el ajuste adecuado se convierte en cuánto menos preciso.However, test accuracy should always be less than training accuracy, and the distinction for over-fit vs. appropriately fit comes down to how much less accurate.

Al comparar los modelos A y B, A es un modelo mejor porque tiene mayor precisión en las pruebas y, aunque es ligeramente inferior al 95 %, no es una diferencia significativa que sugiera la existencia de sobreajuste.When comparing models A and B, model A is a better model because it has higher test accuracy, and although the test accuracy is slightly lower at 95%, it is not a significant difference that suggests over-fitting is present. No elegiría el modelo B simplemente porque las precisiones del entrenamiento y la prueba están más próximas.You wouldn't choose model B simply because the train and test accuracies are closer together.

El modelo C representa un caso claro de sobreajuste; la precisión del entrenamiento es muy alta, pero la de la prueba no tanto.Model C represents a clear case of over-fitting; the training accuracy is very high but the test accuracy isn't anywhere near as high. Esta distinción es subjetiva, pero proviene del conocimiento del problema y los datos y de las magnitudes de error que son aceptables.This distinction is subjective, but comes from knowledge of your problem and data, and what magnitudes of error are acceptable.

Prevención del sobreajustePrevent over-fitting

En los casos más notorios, un modelo sobreajustado supondrá que las combinaciones de valores de características que se han visto durante el entrenamiento siempre darán exactamente la misma salida para el destino.In the most egregious cases, an over-fitted model will assume that the feature value combinations seen during training will always result in the exact same output for the target.

La mejor manera de evitar el sobreajuste es seguir los procedimientos recomendados de ML, entre los que se incluyen los siguientes:The best way to prevent over-fitting is to follow ML best-practices including:

  • Usar más datos de entrenamiento y eliminar el sesgo estadísticoUsing more training data, and eliminating statistical bias
  • Evitar pérdidas de destinoPreventing target leakage
  • Usar menos característicasUsing fewer features
  • Regularización y optimización de hiperparámetrosRegularization and hyperparameter optimization
  • Limitaciones de la complejidad del modeloModel complexity limitations
  • Validación cruzadaCross-validation

En el contexto del aprendizaje automático automatizado, los tres primeros elementos anteriores son procedimientos recomendados que usted implementa.In the context of automated ML, the first three items above are best-practices you implement. Los tres últimos elementos en negrita son procedimientos recomendados que el aprendizaje automático automatizado implementa de forma predeterminada para protegerse frente al sobreajuste.The last three bolded items are best-practices automated ML implements by default to protect against over-fitting. En configuraciones distintas al aprendizaje automático automatizado, es conveniente seguir los seis procedimientos recomendados para evitar modelos con sobreajuste.In settings other than automated ML, all six best-practices are worth following to avoid over-fitting models.

Procedimientos recomendados que usted implementaBest practices you implement

El uso de más datos es la forma más sencilla y óptima de evitar el sobreajuste y, como ventaja adicional, suele aumentar la precisión.Using more data is the simplest and best possible way to prevent over-fitting, and as an added bonus typically increases accuracy. Cuando se usan más datos, resulta más difícil para el modelo memorizar patrones exactos y se ve obligado a obtener soluciones que son más flexibles para acomodar más condiciones.When you use more data, it becomes harder for the model to memorize exact patterns, and it is forced to reach solutions that are more flexible to accommodate more conditions. También es importante reconocer el sesgo estadístico, para asegurarse de que los datos de entrenamiento no incluyen patrones aislados que no existen en los datos de predicción en directo.It's also important to recognize statistical bias, to ensure your training data doesn't include isolated patterns that won't exist in live-prediction data. Este escenario puede ser difícil de resolver, ya que es posible que no haya sobreajuste entre los conjuntos de entrenamiento y pruebas, pero puede haberlo cuando se comparan con los datos de pruebas en directo.This scenario can be difficult to solve, because there may not be over-fitting between your train and test sets, but there may be over-fitting present when compared to live test data.

La pérdida de destino es un problema similar, en el que es posible que no vea sobreajuste entre los conjuntos de entrenamiento y pruebas, sino que aparece en tiempo de predicción.Target leakage is a similar issue, where you may not see over-fitting between train/test sets, but rather it appears at prediction-time. La pérdida de destino se produce cuando el modelo "hace trampa" durante el entrenamiento al tener acceso a datos que normalmente no debería tener en el momento de la predicción.Target leakage occurs when your model "cheats" during training by having access to data that it shouldn't normally have at prediction-time. Por ejemplo, si el problema es predecir el lunes cuál será el precio el viernes, pero una de las características incluye accidentalmente datos del jueves, serían datos que el modelo no tendrá en tiempo de predicción, ya que no puede ver el futuro.For example, if your problem is to predict on Monday what a commodity price will be on Friday, but one of your features accidentally included data from Thursdays, that would be data the model won't have at prediction-time since it cannot see into the future. La pérdida de destino es un error sencillo de evitar, pero a menudo se caracteriza por una precisión anormalmente alta para el problema.Target leakage is an easy mistake to miss, but is often characterized by abnormally high accuracy for your problem. Si intenta predecir el precio de las acciones y ha entrenado un modelo con una precisión del 95 %, es probable que se produzcan pérdidas de destino en alguna parte de las características.If you are attempting to predict stock price and trained a model at 95% accuracy, there is likely target leakage somewhere in your features.

La eliminación de características también puede ayudar con el sobreajuste, ya que impide que el modelo tenga demasiados campos para memorizar patrones específicos, lo que hace que sea más flexible.Removing features can also help with over-fitting by preventing the model from having too many fields to use to memorize specific patterns, thus causing it to be more flexible. Puede ser difícil de medir cuantitativamente, pero si puede eliminar características y conservar la misma precisión, probablemente haya hecho que el modelo sea más flexible y haya reducido el riesgo de sobreajuste.It can be difficult to measure quantitatively, but if you can remove features and retain the same accuracy, you have likely made the model more flexible and have reduced the risk of over-fitting.

Procedimientos recomendados que implementa el aprendizaje automático automatizadoBest practices automated ML implements

La regularización es el proceso de minimizar una función de costo para penalizar modelos complejos y sobreajustados.Regularization is the process of minimizing a cost function to penalize complex and over-fitted models. Hay diferentes tipos de funciones de regularización, pero en general todas penalizan el tamaño del coeficiente del modelo, la varianza y la complejidad.There are different types of regularization functions, but in general they all penalize model coefficient size, variance, and complexity. El aprendizaje automático automatizado usa L1 (Lasso), L2 (Ridge) y ElasticNet (L1 y L2 simultáneamente) en combinaciones diferentes con otras configuraciones de hiperparámetros del modelo que controlan el sobreajuste.Automated ML uses L1 (Lasso), L2 (Ridge), and ElasticNet (L1 and L2 simultaneously) in different combinations with different model hyperparameter settings that control over-fitting. En términos simples, el aprendizaje automático automatizado variará cuánto se regula un modelo y elegirá el mejor resultado.In simple terms, automated ML will vary how much a model is regulated and choose the best result.

El aprendizaje automático automatizado también implementa limitaciones de complejidad del modelo explícitas para evitar el sobreajuste.Automated ML also implements explicit model complexity limitations to prevent over-fitting. En la mayoría de los casos, esta implementación se aplica específicamente a árboles de decisión o algoritmos de bosque, donde la profundidad máxima del árbol individual está limitada y el número total de árboles que se usan en el bosque o las técnicas conjunto están limitados.In most cases this implementation is specifically for decision tree or forest algorithms, where individual tree max-depth is limited, and the total number of trees used in forest or ensemble techniques are limited.

La validación cruzada (CV) es el proceso de tomar muchos subconjuntos de los datos de entrenamiento completos y entrenar un modelo en cada subconjunto.Cross-validation (CV) is the process of taking many subsets of your full training data and training a model on each subset. La idea es que un modelo podría tener "suerte" y conseguir una gran precisión con un subconjunto, pero al usar muchos subconjuntos el modelo no la alcanzará cada vez.The idea is that a model could get "lucky" and have great accuracy with one subset, but by using many subsets the model won't achieve this high accuracy every time. Al realizar la CV, se proporciona un conjunto de datos de exclusión de la validación, se especifican los plegamientos de la CV (número de subconjuntos) y el aprendizaje automático automatizado entrena el modelo y ajusta los hiperparámetros para minimizar el error en el conjunto de validación.When doing CV, you provide a validation holdout dataset, specify your CV folds (number of subsets) and automated ML will train your model and tune hyperparameters to minimize error on your validation set. Un plegamiento de la CV podría estar sobreajustado, pero si se usan muchos de ellos, se reduce la probabilidad de que el modelo final esté sobreajustado.One CV fold could be over-fit, but by using many of them it reduces the probability that your final model is over-fit. La contrapartida es que la CV genera tiempos de entrenamiento más largos y, por tanto, un costo mayor, porque en lugar de entrenar un modelo una vez, se entrena una vez por cada n subconjuntos de CV.The tradeoff is that CV does result in longer training times and thus greater cost, because instead of training a model once, you train it once for each n CV subsets.

Nota

La validación cruzada no está habilitada de forma predeterminada; se debe configurar en la configuración de aprendizaje automático automatizado.Cross-validation is not enabled by default; it must be configured in automated ML settings. Pero después de configurar la validación cruzada y proporcionar un conjunto de datos de validación, el proceso es automático.However, after cross-validation is configured and a validation data set has been provided, the process is automated for you. Más información sobre la configuración de validación cruzada en ML automatizadoLearn more about cross validation configuration in Auto ML

Identificación de modelos con datos no equilibradosIdentify models with imbalanced data

Los datos no equilibrados suelen encontrarse en los datos de escenarios de clasificación de aprendizaje automático y hacen referencia a los datos que contienen una relación desproporcionada de observaciones en cada clase.Imbalanced data is commonly found in data for machine learning classification scenarios, and refers to data that contains a disproportionate ratio of observations in each class. Este desequilibrio puede dar lugar a un efecto positivo percibido de manera falsa de la precisión de un modelo, ya que los datos de entrada tienen un sesgo hacia una clase, lo que da lugar a que el modelo entrenado imite ese sesgo.This imbalance can lead to a falsely perceived positive effect of a model's accuracy, because the input data has bias towards one class, which results in the trained model to mimic that bias.

Además, las ejecuciones de ML automatizado generan automáticamente los gráficos siguientes, que pueden ayudar a entender la corrección de las clasificaciones del modelo e identificar los modelos potencialmente afectados por los datos no equilibrados.In addition, automated ML runs generate the following charts automatically, which can help you understand the correctness of the classifications of your model, and identify models potentially impacted by imbalanced data.

GráficoChart DescripciónDescription
Matriz de confusiónConfusion Matrix Evalúa las etiquetas clasificadas correctamente con respecto a las etiquetas reales de los datos.Evaluates the correctly classified labels against the actual labels of the data.
Precisión-coincidenciaPrecision-recall Evalúa la proporción de etiquetas correctas con respecto a la de las instancias de etiquetas encontradas de los datos.Evaluates the ratio of correct labels against the ratio of found label instances of the data
Curvas ROCROC Curves Evalúa la proporción de etiquetas correctas con respecto a la de etiquetas de falsos positivos.Evaluates the ratio of correct labels against the ratio of false-positive labels.

Manejo de datos no equilibradosHandle imbalanced data

Como parte de su objetivo de simplificar el flujo de trabajo de aprendizaje automático, el ML automatizado tiene funcionalidades integradas que ayudan a tratar con datos no equilibrados como, por ejemplo:As part of its goal of simplifying the machine learning workflow, automated ML has built in capabilities to help deal with imbalanced data such as,

  • Una columna de peso: el ML automatizado admite una columna de pesos como entrada, lo que provoca que las filas de los datos se puedan subir o bajar, que se puede usar para que una clase sea más o menos "importante".A weight column: automated ML supports a column of weights as input, causing rows in the data to be weighted up or down, which can be used to make a class more or less "important".

  • Los algoritmos que usa el ML automatizado detectan el desequilibrio cuando el número de muestras de la clase de minoría es igual o menor que el 20 % del número de muestras en la clase de mayoría, donde la clase de minoría se refiere a la que tiene menos muestras y la clase de mayoría, a la que tiene más muestras.The algorithms used by automated ML detect imbalance when the number of samples in the minority class is equal to or fewer than 20% of the number of samples in the majority class, where minority class refers to the one with fewest samples and majority class refers to the one with most samples. Posteriormente, AutoML ejecutará un experimento con datos submuestreados para comprobar si el uso de pesos de clase solucionará este problema y mejorará el rendimiento.Subsequently, AutoML will run an experiment with sub-sampled data to check if using class weights would remedy this problem and improve performance. Si se garantiza un mejor rendimiento a través de este experimento, se aplica esta solución.If it ascertains a better performance through this experiment, then this remedy is applied.

  • Use una métrica de rendimiento que se ocupe mejor de los datos no equilibrados.Use a performance metric that deals better with imbalanced data. Por ejemplo, AUC_weighted es una métrica primaria que calcula la contribución de cada clase en función del número relativo de muestras que representan esa clase, por lo que es más robusta frente al desequilibrio.For example, the AUC_weighted is a primary metric that calculates the contribution of every class based on the relative number of samples representing that class, hence is more robust against imbalance.

Las técnicas siguientes son otras opciones para controlar los datos no equilibrados fuera del ML automatizado.The following techniques are additional options to handle imbalanced data outside of automated ML.

  • Vuelva a muestrear para equilibrar el desequilibrio de clases, ya sea mediante el muestreo ascendente de las clases más pequeñas o el muestreo descendente de las más grandes.Resampling to even the class imbalance, either by up-sampling the smaller classes or down-sampling the larger classes. Estos métodos requieren conocimientos de proceso y análisis.These methods require expertise to process and analyze.

  • Revise las métricas de rendimiento de los datos desequilibrados.Review performance metrics for imbalanced data. Por ejemplo, la puntuación F1 es la media armónica de precisión y coincidencia.For example, the F1 score is the harmonic mean of precision and recall. La precisión mide la exactitud de un clasificador, donde una precisión más alta indica menos falsos positivos, mientras que la coincidencia mide la integridad de un clasificador, donde una coincidencia más alta indica menos falsos negativos.Precision measures a classifier's exactness, where higher precision indicates fewer false positives, while recall measures a classifier's completeness, where higher recall indicates fewer false negatives.

Pasos siguientesNext steps

Vea ejemplos y aprenda cómo generar modelos mediante aprendizaje automático automatizado:See examples and learn how to build models using automated machine learning: