Si j'ai un magasin de détail et que j'ai un moyen de mesurer le nombre de personnes qui entrent dans mon magasin chaque minute et d'horodater ces données, comment puis-je prédire le trafic piétonnier futur?
J'ai étudié les algorithmes d'apprentissage automatique, mais je ne sais pas lequel utiliser. Dans mes données de test, une tendance d'une année à l'autre est plus précise par rapport à d'autres choses que j'ai essayées, comme KNN (avec ce que je pense être des paramètres sensibles et une fonction de distance).
Il semble presque que cela pourrait être similaire à la modélisation financière, où vous traitez des données de séries chronologiques. Des idées?
machine-learning
time-series
user1132959
la source
la source
Réponses:
Le problème avec des modèles comme KNN est qu'ils ne prennent pas en compte la saisonnalité (variations de tendance en fonction du temps). Pour en tenir compte, vous devez utiliser l'analyse des séries chronologiques.
Pour les données de comptage, telles que les vôtres, vous pouvez utiliser des modèles de moyenne mobile linéaire auto-régressive généralisée (GLARMA). Heureusement, il existe un package R qui les implémente ( glarma ).
La vignette est une bonne ressource pour la théorie derrière l'outil.
la source
Je pense que les réponses de Christopher ci-dessus sont tout à fait sensées. En tant qu'approche alternative (ou peut-être juste en plus des conseils qu'il a donnés), je pourrais commencer par simplement visualiser les données un peu pour essayer d'avoir une idée approximative de ce qui se passe.
Si vous ne l'avez pas déjà fait, vous pouvez essayer d'ajouter le mois et le jour de la semaine en tant que fonctionnalités - si vous restez fidèle à KNN, cela aidera le modèle à saisir la saisonnalité.
Comme autre façon de procéder, vous pourriez envisager de commencer avec un modèle vraiment, vraiment basique (comme OLS). Ceux-ci vont souvent très loin dans la génération de prévisions raisonnables.
Enfin, plus nous en savons sur vos données, plus il nous sera facile de vous aider à générer des suggestions - Quel délai observez-vous? Quelles sont les fonctionnalités que vous utilisez actuellement? etc.
J'espère que cela t'aides --
la source
Vous pouvez essayer Neural Network. Vous pouvez trouver 2 excellentes explications sur la façon d'appliquer NN sur des séries chronologiques ici et ici .
Notez qu'il est recommandé de:
Parce que ce que vous recherchez est un problème de régression, les fonctions d'activation doivent être
linear
et nonsigmoid
outanh
et vous visez à minimiser lesum-of-squares error
(par opposition à la maximisation dunegative log-likelihood
dans un problème de classification).la source
Comme @Christopher Lauden l'a mentionné ci-dessus, l'analyse des séries chronologiques est la plus appropriée pour ce genre de chose. Si, cependant, vous souhaitiez faire une "approche d'apprentissage machine" plus traditionnelle, j'ai déjà fait quelque chose par le passé pour bloquer vos données dans des fenêtres de temps qui se chevauchent en tant que fonctionnalités, puis utilisez-les pour prédire les prochains jours (ou semaines) ) circulation.
Votre matrice de fonctionnalités serait quelque chose comme:
où
tI
est le trafic le jourI
. La fonctionnalité que vous prédirez est le trafic le lendemain de la dernière colonne. Essentiellement, utilisez une fenêtre de trafic pour prédire le trafic du lendemain.Toute sorte de modèle ML fonctionnerait pour cela.
Éditer
En réponse à la question, "pouvez-vous expliquer comment vous utilisez cette matrice de fonctionnalités":
La matrice de caractéristiques a des valeurs indiquant le trafic passé sur une période de temps (par exemple, le trafic horaire sur 1 semaine), et nous l'utilisons pour prédire le trafic pour une période de temps spécifiée à l'avenir. Nous prenons nos données historiques et construisons une matrice de caractéristiques du trafic historique et étiquetons cela avec le trafic à une certaine période dans le futur (par exemple 2 jours après la fenêtre dans la fonctionnalité). En utilisant une sorte de modèle d'apprentissage automatique de régression, nous pouvons prendre des données de trafic historiques et essayer de construire un modèle qui peut prédire comment le trafic s'est déplacé dans notre ensemble de données historiques. La présomption est que le trafic futur ressemblera au trafic passé.
la source
Eh bien, tout d'abord, je n'utiliserais même pas des choses comme le Machine Learning sans avoir une connaissance approfondie. Les choses simplistes que je ferais si j'avais cette série chronologique sont:
Ces deux choses vous aideront à comprendre ce que votre ensemble de données vous dit. Ensuite, avec cela en main, vous serez probablement dans un meilleur état pour utiliser des algorithmes d'apprentissage automatique.
De plus, je travaille actuellement à la construction de quelque chose sur des séries temporelles, et l'utilisation de l'analyse de séries temporelles vous aidera beaucoup plus que l'apprentissage automatique. Par exemple, il existe des algorithmes de reconnaissance de modèle que vous pouvez utiliser qui utilisent des données quotidiennes pour afficher des modèles et d'autres qui utilisent jusqu'à 3 à 6 mois de données pour capturer un modèle.
la source
Je déconseille d'utiliser un réseau de neurones ou équivalent car, je suppose, vous avez un si bon avant en fonction de votre expérience avec le magasin (c'est-à-dire qu'il y a probablement des tendances quotidiennes / saisonnières et un certain niveau de douceur) et J'imagine une quantité relativement petite de données. Une meilleure option IMO serait d'opter pour une méthode du noyau telle qu'un processus gaussien ou SVM.
la source
Ramener ce fil à la vie, car cela pourrait être utile à d'autres atterrissant ici avec des questions similaires.
Facebook a récemment publié et open source un de leur outil de prévision interne appelé Prophet https://facebookincubator.github.io/prophet/
Il est disponible sous forme de packages R & Python et s'avère être une solution intéressante pour quelqu'un avec peu d'expérience en Machine Learning. Cependant, certaines connaissances supplémentaires en ML permettent de régler et d'optimiser les modèles produits.
Je recommande d'essayer Prophet dans un premier temps. Le gain rapide sur cette solution est la facilité et la rapidité de construction et de test du modèle: vous pouvez littéralement obtenir une projection de descente en quelques minutes. Il se comporte très bien sur les séries chronologiques, saisissant «naturellement» la saisonnalité des données disponibles.
Sous le capot, il est similaire à un modèle additif généralisé (GAM) - plus de détails sur le papier dédié: https://facebookincubator.github.io/prophet/static/prophet_paper_20170113.pdf
la source