Par exemple:
Je veux prévoir les valeurs futures d'une série chronologique sur la base des valeurs précédentes de plusieurs séries chronologiques à l'aide d'un ANN et / ou SVM. Les entrées seront des valeurs décalées de chaque série chronologique, et les sorties seront des prévisions à un pas (les prévisions avec d'autres horizons se feront en "déplaçant" les prévisions vers l'avant en utilisant les prédictions précédentes).
Maintenant, les SVM et les ANN ne devraient-ils pas être capables d'apprendre les tendances et les cycles? Ne seraient-ils pas capables d'apprendre des choses comme ", toutes choses étant égales par ailleurs, la sortie de cette série devrait être 2x la sortie précédente?" Ou, si je fournis une variable catégorielle pour le mois, "puisque c'est janvier, divisez la prédiction que j'aurais faite par 2?"
Est-ce que la tentative de décycle et de détérioration des données entraînerait l'imposition de plus de biais que nécessaire?
Réponses:
Avec les algorithmes d'apprentissage automatique, il est souvent avantageux d'utiliser la mise à l'échelle ou la normalisation des fonctionnalités pour aider l'algorithme à converger rapidement pendant la formation et pour éviter qu'un ensemble de fonctionnalités n'en domine un autre. Prenons, par exemple, le problème de la prévision des cours boursiers. Si vous incluez des actions à prix élevé telles qu'Apple ou Microsoft ainsi que des actions penny, les fonctionnalités de grande valeur que vous extrairez nécessairement d'Apple et des prix Microsoft submergeront celles que vous extrayez des actions penny, et vous ne vous entraînerez pas sur un pomme à pomme (sans jeu de mots!), et le modèle entraîné résultant pourrait ne pas se généraliser très bien.
Cependant, à mon humble avis, "tenter de recycler et de détruire les données" serait une très bonne chose à faire. Extraire les diverses composantes cycliques et de tendance et les normaliser en soustrayant leurs moyennes respectives et en les divisant par leurs écarts-types placerait toutes les données de toutes les séries chronologiques dans la même plage approximative, puis vous vous entraîneriez à aimer les données qui, lorsque rééchelonné en inversant la normalisation, généraliserait probablement beaucoup mieux à des fins prédictives.
De plus, pour n'importe quelle série temporelle, il peut arriver que la tendance submerge la composante cyclique, vous pouvez donc finir par vous entraîner sur des données de tendance uniquement qui ne fonctionneront certainement pas bien sur des séries chronologiques cycliques, et vice versa. En séparant les deux composants et en vous entraînant sur chacun avec des SVM ou NN séparés, puis en recombinant les deux prédictions, vous pourriez vous retrouver avec un algorithme plus précis et plus facilement généralisable.
la source
Dans quelle mesure prévoyez-vous par rapport aux délais sur lesquels la tendance ou les cycles opèrent? Zhang, Qi 2005 - Les «prévisions de réseaux neuronaux pour les séries chronologiques saisonnières et tendancielles» trouvent bénéfiques la désaisonnalisation et la décroissance (DSDT), mais leurs délais de prédiction sont similaires à leurs échelles de temps tendance / saisonnières. En revanche, j'ai travaillé sur des données où je fais des prévisions à court terme (par exemple 1 jour) et la tendance / saisonnalité n'agit que sur des périodes beaucoup plus longues. Le DSDT améliore encore ma précision prédictive dans une certaine mesure, mais le ML peut assez bien se débrouiller seul sans DSDT, car la tendance / la saisonnalité n'est en fait pas pertinente pour les derniers points de données.
la source
Je suis presque sûr que vous utilisez de mauvais outils ici.
Les méthodes ML sont créées pour l'interpolation (comme la prédiction des séries chronologiques A à partir des séries chronologiques B et C); pour les extrapolations, nous avons des chaînes et des amis de Markov.
Le problème avec votre approche est qu'il est extrêmement facile d'ajuster le modèle dans ces conditions et, pire encore, il est difficile de repérer cela (la validation croisée normale échouera, il est donc très difficile d'adapter les paramètres de la bonne manière, etc. .).
Ajouter du temps explicite aux prédicteurs est également une mauvaise idée - j'ai vu des modèles ajustés uniquement sur le temps et la décision avec une précision de 90% sur la validation croisée et des suppositions aléatoires sur les tests de données post-formation. Si vous avez besoin de temps, il est préférable de l'inclure sous la forme d'une série de descripteurs de cycle comme le jour de la semaine ou les secondes après minuit, sans jamais dépasser ni même approcher la durée de votre série d'entraînement.
la source