¿Transforme todos mis datos o pliegues (si se aplica CV) al mismo tiempo? p.ej
(allData - mean(allData)) / sd(allData)
¿Transforme el conjunto de trenes y el conjunto de pruebas por separado? p.ej
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(testData)) / sd(testData)
¿O transformo el conjunto de trenes y uso los cálculos en el conjunto de pruebas? p.ej
(trainData - mean(trainData)) / sd(trainData)
(testData - mean(trainData)) / sd(trainData)
Creo que 3 es el camino correcto. Si 3 es correcto, ¿tengo que preocuparme de que la media no sea 0 o que el rango no esté entre [0; 1] o [-1; 1] (normalización) del testset?
R
? Vea esta pregunta: stackoverflow.com/questions/49260862/…Respuestas:
La tercera forma es correcta. Exactamente por qué se cubre con detalles maravillosos en Los elementos del aprendizaje estadístico , consulte la sección "La validación cruzada incorrecta y correcta", y también en el capítulo final de Aprendiendo de los datos , en el ejemplo del mercado de valores.
Esencialmente, los procedimientos 1 y 2 filtran información acerca de la respuesta, o del futuro, de su conjunto de datos retenidos en la capacitación o evaluación de su modelo. Esto puede causar un sesgo de optimismo considerable en la evaluación de su modelo.
La idea en la validación del modelo es imitar la situación en la que estaría cuando su modelo toma decisiones de producción, cuando no tiene acceso a la respuesta verdadera. La consecuencia es que no puede usar la respuesta en el conjunto de pruebas para nada, excepto para comparar con sus valores predichos.
Otra forma de abordarlo es imaginar que solo tiene acceso a un punto de datos desde su reserva a la vez (una situación común para los modelos de producción). Cualquier cosa que no pueda hacer bajo esta suposición debe sospecharlo con gran recelo. Claramente, una cosa que no puede hacer es agregar todos los nuevos puntos de datos pasados y futuros para normalizar su flujo de producción de datos, por lo que hacer lo mismo para la validación del modelo no es válido.
No tiene que preocuparse por la media de que su conjunto de pruebas sea distinto de cero, esa es una mejor situación en la que estar sesgando sus estimaciones de rendimiento de espera. Aunque, por supuesto, si la prueba realmente se extrae de la misma distribución subyacente que su tren (una suposición esencial en el aprendizaje estadístico), dicha media debería ser aproximadamente cero.
fuente
Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data
. Por qué no?