小売店があり、毎分何人の人が私の店に入るかを測定し、そのデータにタイムスタンプを付ける方法がある場合、どうすれば将来の足のトラフィックを予測できますか?
機械学習アルゴリズムを検討しましたが、どのアルゴリズムを使用すべきかわかりません。私のテストデータでは、KNNのように(賢明なパラメーターと距離関数であると思う)他の試みと比較して、年ごとの傾向がより正確です。
これは、時系列データを扱う金融モデリングに似ているようです。何か案は?
小売店があり、毎分何人の人が私の店に入るかを測定し、そのデータにタイムスタンプを付ける方法がある場合、どうすれば将来の足のトラフィックを予測できますか?
機械学習アルゴリズムを検討しましたが、どのアルゴリズムを使用すべきかわかりません。私のテストデータでは、KNNのように(賢明なパラメーターと距離関数であると思う)他の試みと比較して、年ごとの傾向がより正確です。
これは、時系列データを扱う金融モデリングに似ているようです。何か案は?
回答:
KNNなどのモデルの問題は、季節性(傾向の時間依存変動)を考慮していないことです。これらを考慮するには、時系列分析を使用する必要があります。
自分のようなカウントデータの場合、一般化線形自己回帰移動平均モデル(GLARMA)を使用できます。幸いなことに、それらを実装するRパッケージがあります(glarma)。
ビネットは、ツールの背後にある理論のための優れたリソースです。
上記のクリストファーの答えは完全に理にかなっていると思います。別のアプローチとして(またはおそらく彼が与えたアドバイスに加えて)、データを少し視覚化して、何が起こっているのかを大まかに理解することから始めるかもしれません。
まだこれを行っていない場合は、機能として日付の月と曜日を追加してみてください-KNNに固執するようになった場合、これはモデルが季節性を把握するのに役立ちます。
これを実行する別の方法として、本当に基本的なモデル(OLSなど)から開始することを検討することもできます。これらは、妥当な予測を生成するのに大いに役立ちます。
最後に、あなたのデータについて知れば知るほど、私たちが提案を生成するのを助けるのがより簡単になります-あなたはどの時間枠を観察していますか?現在使用している機能は何ですか?等
お役に立てれば -
ニューラルネットワークを試すことができます。こことここで、NNを時系列に適用する方法に関する2つの優れた説明を見つけることができます。
以下がベストプラクティスであることに注意してください。
あなたが探していることは、回帰問題であるため、活性化の機能があるべきlinear
ではなくsigmoid
、またはtanh
、あなたが最小化することを目指してsum-of-squares error
(の最大化に反対としてnegative log-likelihood
分類問題で)。
@Christopher Laudenが前述したように、時系列分析はこの種のものに最も適しています。しかし、より伝統的な「機械学習アプローチ」をしたい場合、過去に私がやったことは、データを機能として重複する時間枠にブロックし、それを使用して次の日(または週)を予測することです) トラフィック。
機能マトリックスは次のようになります。
t1 | t2 | ... | tN
t2 | t3 | ... | tN+1
t3 | t4 | ... | tN+2
...
tW | tW+1 | ... |tN+W
tI
日の交通はどこですかI
。予測する機能は、最後の列の翌日のトラフィックです。基本的に、トラフィックのウィンドウを使用して、翌日のトラフィックを予測します。
これには、あらゆる種類のMLモデルが有効です。
編集
「この機能マトリックスの使用方法について詳しく説明してください」という質問に対する回答:
機能マトリックスには、ある期間にわたる過去のトラフィック(たとえば、1週間にわたる1時間ごとのトラフィック)を示す値があり、これを使用して、将来の特定の期間のトラフィックを予測します。履歴データを取得して、履歴トラフィックの機能マトリックスを構築し、将来のある期間(たとえば、機能のウィンドウの2日後)のトラフィックでラベル付けします。ある種の回帰機械学習モデルを使用して、過去のトラフィックデータを取得し、過去のデータセットでトラフィックがどのように移動したかを予測できるモデルを作成してみます。将来のトラフィックは過去のトラフィックに似ていると推定されます。
まあ、まず第一に、私は機械学習のようなものさえも、深い知識がなければ使用しません。私がこの時系列を持っていたら私がするだろう単純なことは次のとおりです。
この2つのことは、データセットが何を伝えているかを理解するのに役立ちます。次に、それを手に入れると、おそらく機械学習アルゴリズムを使用するのに適した状態になります。
また、私は現在、時系列で何かを構築する作業を行っています。時系列分析を使用すると、機械学習よりもはるかに役立ちます。たとえば、毎日のデータを使用してパターンを表示するパターン認識アルゴリズムや、最大3〜6か月のデータを使用してパターンをキャッチするパターン認識アルゴリズムがあります。
このスレッドを生き返らせてください。これは、同様の質問でここに着く他の人に役立つかもしれません。
Facebookは最近、Prophet https://facebookincubator.github.io/prophet/と呼ばれる内部予測ツールの1つをリリースし、オープンソース化しました。
RとPythonの両方のパッケージとして提供されており、Machine Learningの経験がほとんどない人にとって興味深いソリューションであることが証明されています。ただし、追加のMLの知識により、生成されたモデルを調整および最適化できます。
最初のステップとしてProphetを試してみることをお勧めします。このソリューションでの迅速な勝利は、モデルの構築とテストの容易さと速度です。文字通り数分で降下予測を取得できます。時系列で非常によく動作し、手元のデータの季節性を「自然に」キャッチします。
内部では、一般的な加法モデル(GAM)に似ています-専用のペーパーの詳細:https : //facebookincubator.github.io/prophet/static/prophet_paper_20170113.pdf