Modelo de validación cruzada

Realiza una validación cruzada de las estimaciones de parámetros para los modelos de clasificación o regresión mediante la partición de los datos

Categoría: machine learning/evaluar

Nota

Se aplica a: machine learning Studio (clásico)

Este contenido solo pertenece a Studio (clásico). Se han agregado módulos similares de arrastrar y colocar al diseñador de Azure Machine Learning. Obtenga más información en este artículo comparativa de las dos versiones.

Información general sobre el módulo

En este artículo se describe cómo usar el módulo validar modelo de forma cruzada en Azure machine learning Studio (clásico). La validación cruzada es una técnica importante que se usa a menudo en el aprendizaje automático para evaluar la variabilidad de un conjunto de datos y la confiabilidad de cualquier modelo entrenado con esos datos.

El módulo validar modelo de forma cruzada toma como entrada un conjunto de datos con etiqueta, junto con un modelo de clasificación o regresión no entrenado. Divide el conjunto de datos en varios subconjuntos (plegamientos), crea un modelo en cada plegamiento y, a continuación, devuelve un conjunto de estadísticas de precisión para cada plegamiento. Al comparar las estadísticas de precisión de todos los plegamientos, puede interpretar la calidad del conjunto de datos y comprender si el modelo es susceptible a variaciones de los datos.

La validación cruzada también devuelve probabilidades y resultados previstos para el conjunto de datos, de modo que pueda evaluar la confiabilidad de las predicciones.

Funcionamiento de la validación cruzada

  1. La validación cruzada divide aleatoriamente los datos de entrenamiento en varias particiones, también denominadas plegamientos.

    • El algoritmo se establece de forma predeterminada en 10 plegamientos si no ha particionado previamente el conjunto de datos.
    • Para dividir el conjunto de datos en un número diferente de plegamientos, puede usar el módulo de partición y ejemplo e indicar cuántos plegamientos quiere usar.
  2. El módulo reserva los datos del plegamiento 1 para la validación (se denomina a veces plegamiento de datos de exclusión) y usa los plegamientos restantes para entrenar un modelo.

    Por ejemplo, al crear cinco plegamientos, el módulo generaría cinco modelos durante la validación cruzada, con cada uno de los modelos entrenado con 4/5 de los datos y probado con el 1/5 restante.

  3. Durante las pruebas del modelo para cada plegamiento, se evalúan varias estadísticas de precisión. Las estadísticas que se usan dependen del tipo de modelo que se está evaluando. Se usan estadísticas diferentes para evaluar los modelos de clasificación y los modelos de regresión.

  4. Cuando el proceso de compilación y evaluación se completa para todos los plegamientos, el modelo de validación cruzada genera un conjunto de métricas de rendimiento y resultados puntuados para todos los datos. Debe revisar estas métricas para ver si un solo plegamiento tiene una precisión especialmente alta o baja.

Ventajas de la validación cruzada

Una forma diferente y muy común de evaluar un modelo es dividir los datos en un conjunto de entrenamiento y de prueba mediante la División de datosy, a continuación, validar el modelo en los datos de entrenamiento. Sin embargo, la validación cruzada ofrece algunas ventajas:

  • La validación cruzada utiliza más datos de prueba.

    La validación cruzada mide el rendimiento del modelo con los parámetros especificados en un espacio de datos mayor. Es decir, la validación cruzada utiliza todo el conjunto de datos de entrenamiento para el entrenamiento y la evaluación, en lugar de una parte. Por el contrario, si valida un modelo usando los datos generados de una división aleatoria, se suele evaluar el modelo solo con un 30 % o menos de los datos disponibles.

    Sin embargo, dado que la validación cruzada entrena y valida el modelo varias veces con un conjunto de datos mayor, es mucho más intensivo a nivel computacional y tarda mucho más tiempo que la validación con una división aleatoria.

  • La validación cruzada evalúa el conjunto de datos y el modelo.

    La validación cruzada no solo mide la precisión de un modelo, sino que también ofrece alguna idea sobre lo representativo que es el conjunto de datos y el grado de sensibilidad del modelo a las variaciones en los datos.

Cómo usar el modelo de validación cruzada

Hay dos formas principales de usar la validación cruzada.

La validación cruzada puede tardar mucho tiempo en ejecutarse si utiliza una gran cantidad de datos. Por lo tanto, puede usar el modelo de validación cruzada en la fase inicial de la compilación y prueba del modelo para evaluar la calidad de los parámetros del modelo (suponiendo que el tiempo de cálculo es tolerable) y, a continuación, entrenar y evaluar el modelo con los parámetros establecidos con los módulos entrenar modelo y Evaluar modelo .

Validación cruzada simple

En este escenario, se entrena y se prueba el modelo con el módulo Cross Validate Model (Modelo de validación cruzada).

  1. Agregue el módulo validar modelo de modo cruzado al experimento. Puede encontrarlo en Azure Machine Learning Studio (clásico), en la categoría machine learning , en evaluar.

  2. Conecte la salida de cualquier modelo de clasificación o regresión .

    Por ejemplo, si usa una Two Class Bayes Point Machine para la clasificación, configure el modelo con los parámetros que quiera y, a continuación, arrastre un conector del puerto del modelo no entrenado del clasificador al puerto coincidente del módulo Cross Validate Model (Modelo de validación cruzada).

    Sugerencia

    No es necesario entrenar el modelo porque el modelo de validación cruzada lo entrena automáticamente como parte de la evaluación.

  3. En el puerto de conjunto de los modelos de validación cruzada, Conecte cualquier conjunto de conexión de entrenamiento etiquetado.

  4. En el panel Propiedades del módulo Cross Validate Model (Modelo de validación cruzada), haga clic en Launch column selector (Iniciar el selector de columnas) y elija la columna única que contiene la etiqueta de clase o el valor de predicción.

  5. Establezca un valor para el parámetro Valor de inicialización aleatorio si quiere poder repetir los resultados de la validación cruzada en ejecuciones posteriores de los mismos datos.

  6. Ejecute el experimento.

  7. Consulte la sección Resultados para obtener una descripción de los informes.

    Para obtener una copia del modelo para volver a usarlo más adelante, haga clic con el botón secundario en la salida del módulo que contiene el algoritmo (por ejemplo, la máquina del punto de Bayes de clase) y haga clic en Guardar como modelo entrenado.

Validación cruzada con un barrido de parámetros

En este escenario, se usan hiperparámetros del modelo de ajuste para identificar el mejor modelo mediante la realización de un barrido de parámetros y, a continuación, se usa el modelo de validación cruzada para comprobar su confiabilidad. Esta es la manera más fácil de tener Azure Machine Learning identificar el mejor modelo y, a continuación, generar métricas para él.

  1. Agregue el conjunto de información para el entrenamiento del modelo y agregue uno de los módulos de aprendizaje automático que crea un modelo de clasificación o regresión.

  2. Agregue el módulo ajustar hiperparámetros de modelo al experimento. Puede encontrarlo en la categoría machine learning , en entrenar.

  3. Adjunte el modelo de clasificación o regresión a la entrada de modelo sin entrenar de los hiperparámetros del modelo de ajuste.

  4. Agregue el módulo validar modelo de modo cruzado al experimento. Puede encontrarlo en Azure Machine Learning Studio (clásico), en la categoría machine learning , en evaluar.

  5. Busque la mejor salida de modelo entrenado de los hiperparámetros del modelo de optimización y conéctela a la entrada de modelo no entrenado del modelo de validación cruzada.

  6. Conecte los datos de entrenamiento a la entrada del conjunto de datos de entrenamiento del modelo de validación cruzada.

  7. Ejecute el experimento.

  8. Después de revisar los resultados, y las puntuaciones de evaluación, para obtener una copia del mejor modelo para su reutilización posterior, simplemente haga clic con el botón derecho en el módulo optimizar los hiperparámetros del modelo , seleccione modelo mejor entrenado y, a continuación, haga clic en Guardar como modelo entrenado.

Nota

Podría obtener resultados diferentes si usa la entrada en el módulo ajustar los hiperparámetros del modelo para el conjunto de datos de validación opcional.

Esto se debe a que, cuando se usa esta opción, se está aplicando un conjunto de pruebas de entrenamiento estático y un conjunto de pruebas. Por lo tanto, el proceso de validación cruzada también utiliza los conjuntos de datos de entrenamiento y prueba especificados, en lugar de dividir los datos en n grupos para el entrenamiento y las pruebas. Sin embargo, las métricas se generan en una base de n.

Resultados

Una vez completadas todas las iteraciones, modelo de validación cruzada crea puntuaciones para todo el conjunto de resultados, así como métricas de rendimiento que puede usar para evaluar la calidad del modelo.

Resultados puntuados

La primera salida del módulo proporciona los datos de origen de cada fila, junto con algunos valores de predicción y las probabilidades relacionadas.

Para ver estos resultados, en el experimento, haga clic con el botón derecho en el módulo validar modelo de modo cruzado , seleccione resultados puntuados y haga clic en visualizar.

Nuevo nombre de columna Descripción
Asignaciones de plegamientos Indica el índice de base 0 del plegamiento al que se asignó cada fila de datos durante la validación cruzada.
Etiquetas puntuadas Esta columna se agrega al final del conjunto de datos y contiene el valor de predicción de cada fila.
Probabilidades puntuadas Esta columna se agrega al final del conjunto de datos e indica la probabilidad estimada del valor en Etiquetas puntuadas.

Evaluation results

El segundo informe se agrupa por plegamientos. Recuerde que, durante la ejecución, el modelo de validación cruzada divide aleatoriamente los datos de entrenamiento en n pliegues (de forma predeterminada, 10). En cada iteración sobre el conjunto de DataSet, el modelo de validación cruzada usa un subconjunto como un conjunto de un conjunto de los de validación y usa los subconjuntos n-1 restantes para entrenar un modelo. Cada uno de los n modelos se prueba en comparación con los datos de todos los demás plegamientos.

En este informe, los plegamientos se enumeran por valor de índice en orden ascendente. Para ordenar en cualquier otra columna, puede guardar los resultados como un conjunto de cambios.

Para ver estos resultados, en el experimento, haga clic con el botón derecho en el módulo validar modelo de forma cruzada, seleccione resultados de la evaluación por plegamiento y haga clic en visualizar.

Nombre de la columna Descripción
Número de plegamiento Identificador de cada plegamiento. Si ha creado 5 plegamientos, debería haber 5 subconjuntos de datos, numerados de 0 a 4.
Número de ejemplos del plegamiento Número de filas asignadas a cada plegamiento. Deben ser aproximadamente iguales.
Modelo El algoritmo usado en el modelo, identificado por el nombre de la API.

Además, se incluyen las siguientes métricas para cada plegamiento, dependiendo del tipo de modelo que se esté evaluando.

  • Modelos de clasificación: precisión, recuperación, puntuación F, AUC, pérdida de registro promedio, pérdida de registro de entrenamiento

  • Modelos de regresión: probabilidad de registro negativa, error absoluto medio, error cuadrado medio raíz, error absoluto relativo y coeficiente de determinación

Ejemplos

Para obtener ejemplos de cómo se usa la validación cruzada en el aprendizaje automático, vea la Azure AI Gallery:

Notas técnicas

  • Se recomienda normalizar los conjuntos de datos antes de usarlos para la validación cruzada.

  • Dado que el modelo de validación cruzada entrena y valida el modelo varias veces, es mucho más intensivo computacionalmente y tarda más tiempo en completarse que si se validara el modelo mediante un conjunto de información dividido aleatoriamente.

  • Se recomienda que use Modelo de validación cruzada para establecer la adecuación del modelo dados los parámetros especificados. Use los hiperparámetros del modelo de optimización para identificar los parámetros óptimos.

  • No es necesario dividir el conjunto de datos en conjuntos de entrenamiento y de prueba cuando se usa la validación cruzada para medir la precisión del modelo.

    Sin embargo, si se proporciona un conjunto de valores de validación, el módulo usa los conjuntos de usuarios de entrenamiento y prueba especificados, en lugar de dividirlos en n subconjuntos. Es decir, el primer conjunto de los conjuntos de los parámetros se usa para entrenar el modelo para cada combinación de parámetros, y los modelos se evalúan en el conjunto de los conjuntos de validación. Vea la sección sobre el uso de un barrido de parámetros con validación cruzada.

  • Aunque en este artículo se usan versiones anteriores de los módulos, tiene una buena explicación del proceso de validación cruzada: Cómo elegir parámetros para optimizar los algoritmos en Azure machine learning

Entradas esperadas

Nombre Tipo Descripción
Modelo no entrenado Interfaz ILearner Modelo no entrenado para validación cruzada en conjunto de datos
Dataset Tabla de datos Conjunto de datos de entrada

Parámetros del módulo

Nombre Intervalo Tipo Valor predeterminado Descripción
Columna de etiqueta cualquiera ColumnSelection Seleccionar la columna que contiene la etiqueta que se va a utilizar para validación
Inicialización aleatoria cualquiera Entero 0 Valor de inicialización para el generador de números aleatorios

Este valor es opcional. Si no se especifica

Salidas

Nombre Tipo Descripción
Resultados puntuados Tabla de datos Resultados de puntuación
Resultados de evaluación por iteración Tabla de datos Resultados de evaluación (por iteración y total)

Excepciones

Excepción Descripción
Error 0035 Se produce una excepción si no se proporcionaron características para un usuario o elemento determinado.
Error 0032 Se produce una excepción si el argumento no es un número.
Error 0033 Se produce una excepción si el argumento es infinito.
Error 0001 Se produce una excepción si no se encontraron una o más columnas especificadas del conjunto de datos.
Error 0003 Se produce una excepción si una o varias de las entradas son NULL o están vacías.
Error 0006 Se produce una excepción si el parámetro es mayor o igual que el valor especificado.
Error 0008 Se produce una excepción si el parámetro no se encuentra en el intervalo.
Error 0013 Se produce una excepción si el aprendiz que se pasa al módulo tiene un tipo no válido.

Para obtener una lista de los errores específicos de los módulos de Studio (clásico), consulte Machine Learning de los códigos de error.

Para obtener una lista de excepciones de API, consulte códigos de error de la API de REST de machine learning.

Consulte también

Determinar
Evaluar el recomendador
Lista de módulos A-Z