Una buena práctica común en Machine Learning es hacer la normalización de características o la estandarización de datos de las variables predictoras, eso es todo, centrar los datos restando la media y normalizarlos dividiendo por la varianza (o la desviación estándar también). Para la autocontención y, a mi entender, hacemos esto para lograr dos cosas principales:
- Evite pesos de modelos extra pequeños con el propósito de estabilidad numérica.
- Garantice la convergencia rápida de algoritmos de optimización como, por ejemplo, Gradiente conjugado, de modo que la gran magnitud de una dimensión predictiva con las otras no conduzca a una convergencia lenta.
Por lo general, dividimos los datos en conjuntos de capacitación, validación y prueba. En la literatura generalmente vemos que para hacer la normalización de características toman la media y la varianza (o desviación estándar) sobre todo el conjunto de variables predictoras. El gran defecto que veo aquí es que si haces eso, de hecho estás introduciendo información futura en las variables predictoras de entrenamiento, es decir, la información futura contenida en la media y la varianza.
Por lo tanto, sí presento la normalización sobre los datos de entrenamiento y guardo la media y la varianza. Luego aplico la normalización de características a las variables predictoras de los conjuntos de datos de validación y prueba usando la media de entrenamiento y las variaciones. ¿Hay alguna falla fundamental con esto? ¿Alguien puede recomendar una mejor alternativa?
fuente
Respuestas:
Su enfoque es completamente correcto. Aunque las transformaciones de datos a menudo se infravaloran como "preprocesamiento", no se puede enfatizar lo suficiente que las transformaciones para optimizar el rendimiento del modelo pueden y deben tratarse como parte del proceso de construcción del modelo.
Razonamiento: un modelo se aplicará a datos invisibles que, en general, no están disponibles en el momento en que se construye el modelo. El proceso de validación (incluida la división de datos) simula esto. Entonces, para obtener una buena estimación de la calidad del modelo (y el poder de generalización) es necesario restringir el cálculo de los parámetros de normalización (media y varianza) al conjunto de entrenamiento.
Solo puedo adivinar por qué esto no siempre se hace en la literatura. Un argumento podría ser que el cálculo de la media y la varianza no es tan sensible a pequeñas variaciones de datos (pero incluso esto solo es cierto si el tamaño básico de la muestra es lo suficientemente grande y los datos se distribuyen aproximadamente normalmente sin valores extremos).
fuente
La normalización de características consiste en hacer diferentes características en la misma escala. El escalado acelera el descenso del gradiente al evitar muchas iteraciones adicionales que se requieren cuando una o más características toman valores mucho más grandes que el resto (sin escalar, la función de costo que se visualiza mostrará una gran asimetría).
Creo que tiene sentido usar la media y var del conjunto de entrenamiento cuando llegan los datos de la prueba. Sin embargo, si el tamaño de los datos es enorme, tanto los conjuntos de entrenamiento como los de validación pueden verse aproximadamente como una distribución normal, por lo que comparten aproximadamente la media y la var.
fuente
La metodología que ha descrito es sólida como han dicho otros. Debe realizar exactamente la misma transformación en las características de su conjunto de prueba que en las características de su conjunto de entrenamiento.
Creo que vale la pena agregar que otra razón para la normalización de características es mejorar el rendimiento de ciertos procesos que son sensibles a las diferencias en la escala de ciertas variables. Por ejemplo, el análisis de componentes principales (PCA) tiene como objetivo capturar la mayor proporción de varianza, y como resultado dará más peso a las variables que exhiben la mayor varianza si la normalización de la característica no se realiza inicialmente.
fuente