Introducción a la transformación de datos

La ingeniería de atributos es el proceso que consiste en determinar qué atributos pueden ser útiles para entrenar un modelo y, luego, crearlos mediante la transformación de datos sin procesar que se encuentran en archivos de registro y otras fuentes. En esta sección, nos enfocamos en cuándo y cómo transformar datos numéricos y categóricos, y las compensaciones de diferentes enfoques.

Motivos para la transformación de datos

Transformamos los atributos principalmente por los siguientes motivos:

  1. Transformaciones obligatorias para la compatibilidad de datos Los siguientes son algunos ejemplos:

    • Convertir atributos no numéricos en numéricos No puedes multiplicar matrices en una string, por lo que debemos convertirla en alguna representación numérica.
    • Cambiando el tamaño de las entradas a un tamaño fijo. Los modelos lineales y las redes neuronales de reenvío de feeds tienen una cantidad fija de nodos de entrada, por lo que tus datos de entrada siempre deben tener el mismo tamaño. Por ejemplo, los modelos de imagen deben cambiar la forma de las imágenes de su conjunto de datos a un tamaño fijo.
  2. Transformaciones de calidad opcionales que pueden ayudar a que el modelo tenga un mejor rendimiento. Los siguientes son algunos ejemplos:

    • Asignación de token o minúsculas en los atributos de texto
    • Atributos numéricos normalizados (la mayoría de los modelos tienen un mejor rendimiento después).
    • Permitir que los modelos lineales introduzcan no linealidades en el espacio de atributos

En sentido estricto, las transformaciones de calidad no son necesarias: el modelo aún podría ejecutarse sin ellas. Sin embargo, usar estas técnicas puede permitir que el modelo brinde mejores resultados.

¿Dónde realizar la transformación?

Puedes aplicar transformaciones mientras se generan los datos en el disco o dentro del modelo.

Cómo realizar transformaciones antes del entrenamiento

En este enfoque, realizamos la transformación antes del entrenamiento. Este código se encuentra separado de tu modelo de aprendizaje automático.

Ventajas

  • Los cálculos se realizan solo una vez.
  • El procesamiento puede observar todo el conjunto de datos para determinar la transformación.

Desventajas

  • Las transformaciones se deben reproducir en el momento de la predicción. Ten cuidado con las desviaciones.
  • Cualquier cambio de transformación requiere volver a ejecutar la generación de datos, lo que lleva a iteraciones más lentas.

El sesgo es más peligroso para los casos que involucran la entrega en línea. En la entrega sin conexión, es posible que puedas reutilizar el código que genera los datos de entrenamiento. En la entrega en línea, el código que crea el conjunto de datos y el que se usa para manejar el tráfico en vivo son casi necesariamente diferentes, lo que facilita la introducción de sesgo.

Transformación dentro del modelo

En este enfoque, la transformación forma parte del código del modelo. El modelo toma datos no transformados como entrada y los transformará dentro del modelo.

Ventajas

  • Iteraciones sencillas. Si cambias las transformaciones, aún puedes usar los mismos archivos de datos.
  • Se le garantizan las mismas transformaciones en el momento del entrenamiento y la predicción.

Desventajas

  • Las transformaciones costosas pueden aumentar la latencia del modelo.
  • Las transformaciones se realizan por lotes.

Hay muchas consideraciones para la transformación por lotes. Supongamos que deseas normalizar un atributo por su valor promedio, es decir, quieres cambiar los valores de los atributos para que tengan la 0 promedio y la desviación estándar 1. Cuando se transforma dentro del modelo, esta normalización tendrá acceso a un solo lote de datos, y no al conjunto de datos completo. Puedes normalizar por el valor promedio dentro de un lote (peligroso si los lotes son muy variantes), o calcular previamente el promedio y corregirlo como una constante en el modelo. Exploraremos la normalización en la próxima sección.

Explore, limpie y visualice sus datos

Explore y limpie sus datos antes de realizar transformaciones en ellos. Es posible que hayas realizado algunas de las siguientes tareas mientras recopilaste y construiste tu conjunto de datos:

  • Examinar varias filas de datos
  • Revisar las estadísticas básicas
  • Corrige las entradas numéricas que faltan.

Visualiza tus datos con frecuencia. Los gráficos pueden ayudar a encontrar anomalías o patrones que no son claros de las estadísticas numéricas. Por lo tanto, antes de profundizar en los análisis, observa los datos de manera gráfica, ya sea mediante diagramas de dispersión o histogramas. Visualiza los grafos no solo al comienzo de la canalización, sino también durante la transformación. Las visualizaciones te ayudarán a verificar continuamente tus suposiciones y a observar los efectos de cualquier cambio importante.