Wenn ich ein Einzelhandelsgeschäft besitze und messen kann, wie viele Personen pro Minute mein Geschäft betreten, und diese Daten mit einem Zeitstempel versehen, wie kann ich dann den zukünftigen Fußgängerverkehr vorhersagen?
Ich habe mich mit Algorithmen für maschinelles Lernen befasst, bin mir aber nicht sicher, welche ich verwenden soll. In meinen Testdaten ist ein Jahr-über-Jahr-Trend genauer als andere Dinge, die ich ausprobiert habe, wie z. B. KNN (mit den meiner Meinung nach sinnvollen Parametern und der Abstandsfunktion).
Es sieht fast so aus, als könnte dies der Finanzmodellierung ähneln, bei der Sie sich mit Zeitreihendaten befassen. Irgendwelche Ideen?
machine-learning
time-series
user1132959
quelle
quelle
Antworten:
Das Problem bei Modellen wie KNN ist, dass sie die Saisonalität nicht berücksichtigen (zeitabhängige Abweichungen im Trend). Um dies zu berücksichtigen, sollten Sie die Zeitreihenanalyse verwenden.
Für Zähldaten wie Ihre können Sie verallgemeinerte lineare Modelle mit automatischem gleitendem Durchschnitt (GLARMA) verwenden. Glücklicherweise gibt es ein R-Paket, das sie implementiert ( Glarma ).
Die Vignette ist eine gute Quelle für die Theorie hinter dem Werkzeug.
quelle
Ich denke, die obigen Antworten von Christopher sind völlig vernünftig. Als Alternative (oder vielleicht zusätzlich zu den Ratschlägen, die er gibt) möchte ich zunächst die Daten ein wenig visualisieren, um einen groben Überblick über die Vorgänge zu bekommen.
Wenn Sie dies noch nicht getan haben, können Sie versuchen, den Monat und den Wochentag eines Datums als Funktionen hinzuzufügen. Wenn Sie am Ende bei KNN bleiben, hilft dies dem Modell, die Saisonalität zu ermitteln.
Um dies anders zu verstehen, sollten Sie mit einem wirklich, wirklich einfachen Modell (wie OLS) beginnen. Diese Modelle sind oft sehr hilfreich, um vernünftige Vorhersagen zu generieren.
Und je mehr wir über Ihre Daten wissen, desto einfacher können wir Ihnen bei der Erstellung von Vorschlägen behilflich sein. Welchen Zeitrahmen beachten Sie? Welche Funktionen verwenden Sie derzeit? etc.
Hoffe das hilft --
quelle
Du könntest es mit Neural Network versuchen. Hier und hier finden Sie zwei großartige Erklärungen zur Anwendung von NN auf Zeitreihen .
Beachten Sie, dass Folgendes empfehlenswert ist:
Da Sie nach einem Regressionsproblem suchen, sollten
linear
und sollten die Aktivierungsfunktionen nichtsigmoid
odertanh
nur minimiert werdensum-of-squares error
(als Widerspruch zur Maximierung desnegative log-likelihood
Einteilungsproblems).quelle
Wie @Christopher Lauden oben erwähnt hat, ist eine Zeitreihenanalyse für diese Art von Dingen am besten geeignet. Wenn Sie jedoch einen traditionelleren "Ansatz für maschinelles Lernen" haben möchten, habe ich in der Vergangenheit versucht, Ihre Daten in überlappenden Zeitfenstern als Features zu blockieren und dann die nächsten Tage (oder Wochen) vorherzusagen ) der Verkehr.
Ihre Feature-Matrix würde ungefähr so aussehen:
Wo
tI
ist der Verkehr am TagI
. Die Funktion, die Sie vorhersagen, ist der Verkehr am Tag nach der letzten Spalte. Verwenden Sie im Wesentlichen ein Verkehrsfenster, um den Verkehr des nächsten Tages vorherzusagen.Jede Art von ML-Modell würde dafür funktionieren.
Bearbeiten
In Beantwortung der Frage "Können Sie erläutern, wie Sie diese Feature-Matrix verwenden":
Die Feature-Matrix enthält Werte, die den Verkehr in der Vergangenheit über einen bestimmten Zeitraum anzeigen (z. B. den stündlichen Verkehr über 1 Woche). Mit diesen Werten können Sie den Verkehr für einen bestimmten Zeitraum in der Zukunft vorhersagen. Wir nehmen unsere historischen Daten und erstellen eine Feature-Matrix des historischen Verkehrs und kennzeichnen diesen mit dem Verkehr zu einem späteren Zeitpunkt (z. B. 2 Tage nach dem Fenster im Feature). Mit einer Art Regressionsmodell für maschinelles Lernen können wir historische Verkehrsdaten verwenden und versuchen, ein Modell zu erstellen, das vorhersagt, wie sich der Verkehr in unserem historischen Datensatz bewegt hat. Es wird davon ausgegangen, dass der zukünftige Verkehr dem früheren Verkehr ähnelt.
quelle
Nun, erstens würde ich Dinge wie maschinelles Lernen nicht einmal anwenden, ohne gründliche Kenntnisse zu haben. Einfache Dinge, die ich tun würde, wenn ich diese Zeitreihe hätte, sind:
Diese beiden Punkte helfen Ihnen zu verstehen, was Ihnen Ihr Datensatz sagt. Dann sind Sie wahrscheinlich in der Lage, Algorithmen für maschinelles Lernen besser zu nutzen.
Außerdem arbeite ich derzeit daran, etwas über Zeitreihen zu erstellen, und die Verwendung der Zeitreihenanalyse hilft Ihnen viel mehr als maschinelles Lernen. Beispielsweise gibt es Mustererkennungsalgorithmen, bei denen die täglichen Daten zum Anzeigen von Mustern verwendet werden, und solche, bei denen bis zu 3 bis 6 Monate Daten zum Erfassen eines Musters verwendet werden.
quelle
Ich würde von der Verwendung eines neuronalen Netzwerks oder eines gleichwertigen Netzwerks abraten, da ich davon ausgehe, dass Sie aufgrund Ihrer Erfahrung mit dem Geschäft über einen so guten vorherigen Stand verfügen (dh dass es wahrscheinlich tägliche / saisonale Trends und einen gewissen Grad an Glätte gibt) und Ich stelle mir eine relativ kleine Datenmenge vor. Eine bessere Option für IMO wäre die Verwendung einer Kernel-Methode wie eines Gaußschen Prozesses oder einer SVM.
quelle
Erwecken Sie diesen Thread zum Leben, da dies für andere nützlich sein könnte, die hier mit ähnlichen Fragen landen.
Facebook hat kürzlich ein internes Prognosetool namens Prophet veröffentlicht und als Open-Source-Version bereitgestellt. Https://facebookincubator.github.io/prophet/
Es ist als R & Python-Paket erhältlich und stellt sich als interessante Lösung für jemanden mit wenig maschinellem Lernhintergrund heraus. Einige zusätzliche ML-Kenntnisse ermöglichen es jedoch, die produzierten Modelle abzustimmen und zu optimieren.
Ich empfehle, Prophet als ersten Schritt zu versuchen. Der schnelle Gewinn dieser Lösung ist die Leichtigkeit und Schnelligkeit des Modellbaus und des Testens: Sie können buchstäblich in wenigen Minuten eine Abstiegsprojektion erhalten. Es verhält sich in Zeitreihen sehr gut und erfasst die Saisonalität der vorliegenden Daten "auf natürliche Weise".
Unter der Haube ähnelt es einem verallgemeinerten additiven Modell (GAM) - weitere Details finden Sie auf dem entsprechenden Artikel: https://facebookincubator.github.io/prophet/static/prophet_paper_20170113.pdf
quelle