Estoy trabajando en un modelo de pronóstico basado en ANN para una serie de tiempo financiera. Estoy usando 5 veces la validación cruzada y el rendimiento promedio es regular. El rendimiento en el último pliegue (la iteración donde el último segmento se omite del entrenamiento y se usa para la validación) es mejor que el promedio.
¿Es esto una coincidencia / dependiente de los datos, o el rendimiento de validación en el último pliegue suele ser mejor? (presumiblemente porque el entrenamiento con todos los datos anteriores está más relacionado con los datos posteriores en series de tiempo)
Esto se siente un poco como una pregunta extraña, pero espero algunas respuestas de todos modos. Gracias por adelantado :)
Respuestas:
Con las series de tiempo, no puede probar un modelo de pronóstico mediante validación cruzada de la manera normal porque está utilizando observaciones futuras para predecir el pasado. Debe usar solo observaciones pasadas para predecir el futuro. La serie de tiempo equivalente de LOO CV es usar un origen de pronóstico continuo en su lugar. He escrito sobre esto en esta publicación de blog . No estoy seguro si k-fold CV tiene una serie de tiempo directa equivalente.
fuente
En Sci-Kit Learn Python Kit tienen algo llamado "TimeSeriesSplit", que básicamente se parece al conjunto de muestras de entrenamiento / prueba que obtendría de una optimización de Walk Forward. Rob tenía razón, no puede usar puntos de datos futuros para entrenar para conjuntos de pruebas anteriores ... por lo que la mejor manera de validar en forma cruzada es dividir sus conjuntos de entrenamiento en tantos "pliegues" como sea posible mientras mantiene el conjunto de pruebas "Caminando hacia adelante" . La consecuencia es que cada entrenamiento sucesivo establezca un superconjunto de los anteriores y cada prueba establezca datos cada vez más recientes para mantenerse por delante del "avance".
fuente