Realiza el procesamiento previo de datos para algoritmos tabulares integrados

En esta página, se proporciona una descripción general de cómo AI Platform Training realiza el procesamiento previo de los datos para el entrenamiento con algoritmos tabulares integrados. Además, se explican los requisitos y las limitaciones para tus datos de entrada.

Algoritmos tabulares integrados

Los algoritmos integrados que aceptan datos tabulares (datos numéricos y categóricos) tienen algunas funciones de procesamiento previo.

A fin de obtener detalles específicos del funcionamiento del procesamiento previo para cada algoritmo tabular integrado, consulta la guía correspondiente:

La versión distribuida del algoritmo XGBoost no es compatible con el procesamiento previo automático.

Establece el formato de los datos de entrada

Tus datos de entrada deben estar en un archivo CSV con codificación UTF-8.

Debes preparar tu archivo CSV de entrada para cumplir con los siguientes requisitos:

  • Quita la fila del encabezado. La fila del encabezado contiene las etiquetas para cada columna. Quita la fila del encabezado a fin de evitar enviarla con el resto de las instancias de datos como parte de los datos de entrenamiento.
  • Asegúrate de que la columna de destino sea la primera. La columna de destino contiene el valor que estás intentando predecir. Para un algoritmo de clasificación, todos los valores en la columna de destino son una clase o una categoría. Para un algoritmo de regresión, todos los valores en la columna de destino son numéricos.

Cómo funciona el procesamiento previo

El procesamiento previo automático funciona para los datos categóricos y numéricos. La rutina de procesamiento previo primero analiza y, a continuación, transforma tus datos.

Análisis

Primero, AI Platform Training analiza las columnas del conjunto de datos una por una. En cada una, AI Platform Training detecta de forma automática el tipo de datos, identifica cómo se debe tratar la columna en relación con la transformación de datos y calcula algunas estadísticas de los datos de la columna. El trabajo de entrenamiento captura los resultados de este análisis en el archivo metadata.json, que se incluye junto con otros artefactos de entrenamiento en el bucket de Cloud Storage.

  • Tipo: La columna puede ser numérica o categórica.
  • Tratamiento: El algoritmo identifica cómo se debe tratar cada columna. Las columnas se pueden tratar como constants o como constants. Las columnas categóricas también se pueden etiquetar por identidad o vocabulario, en función de si los valores categóricos son números enteros o strings. Una columna con un gran número de categorías recibe un tratamiento de hashing para calcular un número de categorías más pequeño y manejable.
  • Estadísticas: Las estadísticas se calculan para ayudar a transformar los atributos de cada columna, según el tipo y el tratamiento de la columna.

Transformación

Una vez finalizado el análisis inicial del conjunto de datos, AI Platform Training transforma los datos en función de los tipos, los tratamientos y las estadísticas que se aplicaron al conjunto de datos. AI Platform Training realiza transformaciones en el siguiente orden:

  1. Divide el conjunto de datos de entrenamiento en conjuntos de datos de validación y de prueba si especificas los porcentajes de división.
  2. Quita las filas que tienen más del 10% de atributos faltantes.
  3. Rellena los valores faltantes. La media se usa para las columnas numéricas. En XGBoost, los ceros se emplean para las columnas categóricas.

Ejemplos de transformaciones

Se quitan las filas con el 10% de los valores faltantes. En los siguientes ejemplos, supongamos que la fila tiene 10 valores. Cada fila de ejemplo se trunca para que sea más simple.

Problema de la fila Valores originales Valores transformados Explicación
Fila de ejemplo sin valores faltantes [3, 0.45, …,
'fruits', 0, 1]
[3, 0.45, …,
1, 0, 0, 0, 1]
La string “fruits” se transforma en los valores “1, 0, 0” en la codificación one-hot. En los algoritmos basados en TensorFlow, esto sucede en el grafo de TensorFlow. En XGBoost, AI Platform Training realiza esta transformación.
Demasiados valores faltantes [3, 0.45, …,
'fruits', __, __]
Se quita la fila Falta más del 10% de los valores en la fila.
Valor numérico faltante [3, 0.45, …,
'fruits', 0, __]
[3, 0.45, …,
1, 0, 0, 0, 0.54]
  • El valor medio de la columna reemplaza el valor numérico faltante. En este ejemplo, la media es 0.54.
  • La string 'fruits' se transforma en los valores "1, 0, 0" en la codificación one-hot. En los algoritmos basados en TensorFlow, esto sucede en el grafo de TensorFlow. En XGBoost, AI Platform Training realiza esta transformación.
Valor categórico faltante [3, 0.45, …,
__, 0, 1]
[3, 0.45, …,
0, 0, 0, 0, 1]
  • El valor categórico faltante se transforma en los valores “0, 0, 0” en la codificación one-hot. En los algoritmos basados en TensorFlow, esto sucede en el grafo de TensorFlow. En XGBoost, AI Platform Training realiza esta transformación.

Existen otras diferencias en el proceso de transformación, según el framework de AA en el que se base el algoritmo integrado. En los algoritmos integrados basados en TensorFlow (algoritmo de aprendizaje lineal y algoritmo de amplitud y profundidad), los tratamientos de las columnas se relacionan directamente con las columnas de atributos que se crean en el modelo de TensorFlow. AI Platform Training solo asigna columnas de atributos para el modelo del Estimador de TensorFlow y, luego, la transformación de datos se vuelve parte del procesamiento previo que ocurre dentro de este modelo.

De lo contrario, como sucede con XGBoost, AI Platform Training aplica tratamientos de columnas y realiza las transformaciones de datos directamente.

¿Qué sigue?

  • Comienza con uno de los algoritmos integrados.