Cómo calcular la cantidad óptima de datos de entrenamiento para un pronóstico de series de tiempo usando Python

Tenga en cuenta que no importa qué herramienta esté utilizando, siempre que pueda modelar correctamente los datos que está tratando de pronosticar.

Ahora que eso está fuera del camino, pasemos a los negocios.

Me gustaría que consideraras dos escenarios:

  1. Los datos son muy regulares (cíclicos, por ejemplo), pero con deriva a largo plazo.
  2. Los patrones de datos cambian a lo largo del tiempo.

Hay otros casos que podría usar, pero esos son los más simples.

En el primer caso, es obvio que querrá estabilizar sus estimaciones tanto como sea posible y es probable que desee utilizar todos los datos. (A menos que el patrón sea tan regular y la deriva sea tan predecible que no lo necesite todo, esto también reducirá el tiempo de entrenamiento).

En el segundo caso, no está claro. ¿Qué pasa si hay un patrón general que regula los cambios en los patrones que ves en el nivel de 5K? Por otro lado, si no existe ese patrón general, es mejor que prediga a partir de los últimos 5 km … pero no lo sabrá hasta que haya examinado los datos.

El pronóstico casi puede considerarse un arte: hay mucha intuición involucrada, una vez que lo haces mucho. He podido ver las parcelas y ver qué funcionará bastante bien. En realidad, nunca he hecho esto en la práctica, porque la primera regla de pronóstico (en mi libro) es que todo cambia con el tiempo, así que no dé nada por sentado.

No puedo responder a su pregunta a menos que yo mismo vea y trabaje con los datos, podría haber algunos casos sobre los que podría aconsejar, en dominios que conozco muy bien, pero en general, no puedo. A medida que se vuelva más competente y practique más, también desarrollará una intuición. Da pequeños pasos y estarás bien.

¿Entonces que haces ahora? Examinas los datos, los trazas. Dividirlo en conjuntos de prueba de validación de tren (y en este caso, la prueba viene después de la validación después del tren a tiempo casi siempre). Se ajustan a algunos modelos en general y los últimos, digamos, 5K registros en tren. Ya ves cómo funcionan en la validación. Cuando esté satisfecho, vea cómo funciona su modelo final en el conjunto de prueba.

De alguna manera, no es muy diferente del enfoque ML habitual, excepto que desea dividir su conjunto de datos de manera determinista por tiempo en lugar de al azar.

La rutina típica para probar la precisión, ya sea Python o R, o cualquier otra plataforma, es trazar la precisión de su algoritmo frente al número de puntos de datos en su conjunto de entrenamiento.

Una vez que la precisión se ‘satura’ (o [matemáticas] \ frac {\ delta} {\ delta N} [/ matemáticas] donde N es el número de puntos se acerca a 0), significa que aumentar el número de puntos en el entrenamiento el set no te dará beneficios.

PD: Hay un gran curso sobre aprendizaje automático en Udacity, impartido por personas de Google, dedican un montón de ellos a la precisión de las pruebas.

Suponiendo que está entrenando sus datos utilizando una red neuronal profunda, más datos son generalmente mejores para el entrenamiento que menos.

No dices nada sobre el número de características de entrenamiento o resultados objetivo. Tampoco tiene información sobre el tipo de red o arquitectura, número de capas, etc., lo que hace que sea difícil dar una regla general. Hay muchas redes de muestra y conjuntos de datos disponibles en línea y podría intentar compararlos. ¡Buena suerte!