Acerca de las divisiones de datos para los modelos de AutoML

En esta página se describe cómo usa Vertex AI los conjuntos de datos de entrenamiento, validación y prueba para entrenar un modelo de AutoML, así como las formas en las que puedes controlar cómo se dividen tus datos entre estos tres conjuntos. AutoML usa las divisiones de datos de forma diferente en función del tipo de datos de los datos de entrenamiento.

En esta página se describen las divisiones de datos de imágenes. Para obtener información sobre las divisiones de datos tabulares, consulta Divisiones de datos tabulares.

En el caso de los conjuntos de datos de imágenes, AutoML usa el conjunto de entrenamiento para entrenar el modelo y el conjunto de validación para validar los resultados que devuelve el modelo durante el entrenamiento. Cuando se completa el entrenamiento, AutoML usa el conjunto de datos de prueba para proporcionar las métricas de evaluación finales.

Puedes dejar que Vertex AI divida tus datos automáticamente. Tus datos se dividen aleatoriamente en los tres conjuntos por porcentaje. Es la forma más sencilla de dividir los datos y funciona bien en la mayoría de los casos.

Definida Porcentaje
Formación 80
Validación 10
Prueba 10

Para usar la división de datos predeterminada, acepta el valor predeterminado en la Google Cloud consola o deja el campo split vacío en la API.

Si quieres controlar cómo se dividen tus datos en conjuntos, tienes las siguientes opciones:

Elige solo una de estas opciones cuando entrenes tu modelo. Algunas de estas opciones requieren que se modifiquen los datos de entrenamiento (por ejemplo, la etiqueta ml_use). Si incluyes datos o etiquetas para las opciones de división de datos, no es obligatorio que uses esas opciones. Puedes elegir otra opción cuando entrenes tu modelo.

División manual de datos sin estructurar

La división manual también se conoce como "división predefinida".

Para usar la etiqueta ml_use y controlar la división de tus datos, debes definir la etiqueta ml_use en tus datos.

Definir un valor para la etiqueta ml_use

Puedes definir la etiqueta ml_use para los datos de imagen en el momento de la importación de datos (por elemento de datos o para todo el archivo de importación) o después de la importación de datos mediante la consola Google Cloud .

Definir ml_use en elementos de datos concretos en el momento de la importación

Asigna la etiqueta ml_use a cada elemento de datos incluyendo un valor para el campo aiplatform.googleapis.com/ml_use en los datos JSON Lines o definiendo el valor de la primera columna del archivo CSV. Consulta la información sobre cómo preparar los datos para tu tipo de datos para obtener más detalles.

Si alguno de sus elementos de datos se repite en sus datos (si el mismo fragmento de imagen aparece varias veces en su archivo de importación), Vertex AI usa el valor ml_use del primer elemento de datos que encuentra e ignora los valores ml_use posteriores. El primer elemento encontrado no es necesariamente el que está más cerca del principio del archivo de subida.

Definir ml_use para todos los archivos de subida

Si sus datos se pueden clasificar en diferentes archivos de subida por valor de ml_use, puede definir el valor de ml_use de todo el archivo de subida mediante el menú desplegable por archivo cuando suba archivos con la Google Cloud consola o mediante el campo de asignación dataItemLabels en el método datasets.import.

Si define ml_use en un archivo de subida y el archivo también contiene valores de ml_use, estos valores tienen prioridad sobre el valor de todo el archivo.ml_use

Definir ml_use después de la importación

Una vez que haya subido los datos, puede definir o actualizar el valor de ml_use para elementos de datos específicos en la Google Cloud consola. Para ello, seleccione uno o varios elementos en la vista de lista y use el menú desplegable Asignar uso de aprendizaje automático.

Si vuelves a subir un archivo de datos, aunque los valores de ml_use hayan cambiado, no se actualizará el valor de ml_use. No puedes actualizar los valores de ml_use después de la importación mediante la API de Vertex AI.

Usar la etiqueta ml_use

Cuando entrenes tu modelo, selecciona Manual (Advanced) (Manual [Avanzado]) en la opción Data split (División de datos) de la Google Cloud consola. Si entrenas con la API de Vertex AI, usa el objeto FilterSplit y especifica labels.aiplatform.googleapis.com/ml_use=training para el filtro de entrenamiento, labels.aiplatform.googleapis.com/ml_use=validation para el filtro de validación y labels.aiplatform.googleapis.com/ml_use=test para el filtro de prueba. Por ejemplo:

model = job.run(
dataset=dataset,
model_display_name=_name,
training_filter_split="labels.aiplatform.googleapis.com/ml_use=training",
validation_filter_split="labels.aiplatform.googleapis.com/ml_use=validation",
test_filter_split="labels.aiplatform.googleapis.com/ml_use=test")

Los elementos de datos con un valor ml_use se asignan al conjunto especificado. Los elementos de datos que no tienen ml_use se excluyen del proceso de entrenamiento.

División de filtros de datos

Puedes usar otras etiquetas (además de ml-use) y otros campos para dividir tus datos mediante el objeto FilterSplit en la API Vertex AI. Por ejemplo, puedes definir trainingFilter como labels.flower=rose, validationFilter como labels.flower=daisy y testFilter como labels.flower=dahlia. Con este ajuste, todos los datos etiquetados como rose se añadirán al conjunto de entrenamiento, todos los datos etiquetados como daisy se añadirán al conjunto de validación y todos los datos etiquetados como dahlia se añadirán al conjunto de prueba.

Si filtras por varios campos, un elemento de datos puede coincidir con más de un filtro. En este caso, el conjunto de entrenamiento tiene prioridad, seguido del conjunto de validación y, por último, del conjunto de prueba. Es decir, un elemento solo se incluye en el conjunto de prueba si coincide con el filtro de dicho conjunto, pero no con los filtros de entrenamiento o de validación. Si un elemento no coincide con los filtros de ninguno de los conjuntos, se excluye del entrenamiento.

No uses categorías para dividir los datos en función de lo que va a predecir el modelo. Cada uno de los conjuntos debe reflejar el intervalo de datos que usa el modelo para hacer predicciones. Por ejemplo, no uses los filtros descritos anteriormente en un modelo que deba clasificar imágenes por tipo de flor.

Si no quieres que un filtro coincida con ningún elemento, asigna el valor "-" (el signo menos).

División matemática

La división matemática también se conoce como "división de fracciones".

De forma predeterminada, los datos se dividen aleatoriamente en los conjuntos según los porcentajes predeterminados de su tipo de datos. Puedes cambiar los porcentajes por cualquier valor que sume 100 (en la API Vertex AI, usa fracciones que sumen 1,0).

Para cambiar los porcentajes (fracciones), usa el objeto FractionSplit para definir las fracciones. En el caso de los tipos de datos de imagen, también puedes usar la consolaGoogle Cloud para actualizar los porcentajes de división al entrenar tu modelo.