Los datos sin procesar deben tener ingeniería de atributos (transformación). ¿Cuándo debes transformar los datos? En términos generales, puedes realizar la ingeniería de atributos durante cualquiera de los siguientes dos períodos:
- Antes de entrenar el modelo.
- Mientras entrenas el modelo.
Transforma los datos antes del entrenamiento
En este enfoque, sigues dos pasos:
- Escribe código o usa herramientas especializadas para transformar los datos sin procesar.
- Almacena los datos transformados en un lugar donde el modelo pueda transferirlos, como en el disco.
Ventajas
- El sistema transforma los datos sin procesar solo una vez.
- El sistema puede analizar todo el conjunto de datos para determinar la mejor estrategia de transformación.
Desventajas
- Debes volver a crear las transformaciones en el momento de la predicción. Ten cuidado con el sesgo entre el entrenamiento y la entrega.
El sesgo de entrenamiento-deriva es más peligroso cuando el sistema realiza inferencias dinámicas (en línea). En un sistema que usa inferencia dinámica, el software que transforma el conjunto de datos sin procesar suele diferir del software que entrega las predicciones, lo que puede causar un sesgo entre el entrenamiento y la entrega. Por el contrario, los sistemas que usan inferencia estática (sin conexión) a veces pueden usar el mismo software.
Transforma datos durante el entrenamiento
En este enfoque, la transformación forma parte del código del modelo. El modelo transfiere datos sin procesar y los transforma.
Ventajas
- Puedes seguir usando los mismos archivos de datos sin procesar si cambias las transformaciones.
- Te garantizamos las mismas transformaciones en el momento del entrenamiento y la predicción.
Desventajas
- Las transformaciones complicadas pueden aumentar la latencia del modelo.
- Las transformaciones se producen para cada lote.
Transformar los datos por lote puede ser complicado. Por ejemplo, supongamos que deseas usar la normalización de puntuación z para transformar datos numéricos sin procesar. La normalización de puntuación z requiere el promedio y la desviación estándar del atributo. Sin embargo, las transformaciones por lote significan que solo tendrás acceso a un lote de datos, no al conjunto de datos completo. Por lo tanto, si los lotes varían mucho, una puntuación Z de, por ejemplo, -2.5 en un lote no tendrá el mismo significado que -2.5 en otro lote. Como solución alternativa, el sistema puede precalcular la media y la desviación estándar en todo el conjunto de datos y, luego, usarlas como constantes en el modelo.