バックグラウンド
私は、エネルギーメーターの測定値の時系列データセットに取り組んでいます。シリーズの長さはメートルによって異なります-私が数年持っているものもあれば、数ヶ月しかいないものもあります。
私が取り組んできたものの1つは、これらの時系列のクラスタリングです。私の仕事は今のところ学術的であり、データの他の分析も行っていますが、クラスタリングを実行するという特定の目標があります。
さまざまな機能(週末と平日で使用される割合、異なる時間ブロックで使用される割合など)を計算する初期作業を行いました。その後、動的タイムワーピング(DTW)を使用して異なるシリーズ間の距離を取得し、差分値に基づいてクラスタリングを検討することに進み、これに関連するいくつかの論文を見つけました。
質問
特定のシリーズの季節性の変化により、クラスタリングが不正確になりますか?もしそうなら、どのように対処しますか?
私の懸念は、時系列のパターンが変更された場合、DTWによって取得された距離が誤解を招く可能性があることです。これにより、誤ったクラスタリングが発生する可能性があります。
上記が不明な場合は、次の例を検討してください。
例1
メーターの真夜中から午前8時までの測定値が低く、次の1時間は測定値が急激に増加し、午前9時から午後5時まで高値を維持し、次の1時間にわたって急激に減少し、午後6時から深夜まで低値を維持します。メーターは、このパターンを毎日数か月間一貫して継続しますが、読み取り値が1日を通して一貫したレベルにとどまるパターンに変わります。
例2
メーターは、ほぼ毎月消費されるエネルギー量を示します。数年後、夏季のエネルギー使用量が通常の量に戻る前のパターンに変わります。
可能な方向
- 私は、時系列全体を比較し続けることができるかどうか疑問に思っていましたが、パターンを大幅に変更する場合は、それらを分割し、別のシリーズと見なします。ただし、これを行うには、そのような変更を検出できる必要があります。また、これが適切な方法なのか、データを操作するのかわからないだけです。
- また、データを分割し、それを多くの別個の時系列として考慮することも検討しました。たとえば、毎日/メーターの組み合わせを個別のシリーズと考えることができます。ただし、毎週/毎月/毎年のパターンを検討する場合は、同様に行う必要があります。私が考えて、これは動作しますが、それは潜在的にかなり厄介だと私は欠けていることにもっと良い方法があるのなら、私はこの道を行くことを憎みます。
さらなる注記
これらは、コメントに出てきたもの、またはコメントが原因で私が考えたもので、関連性があるかもしれません。関連情報を取得するためにすべてを読み通す必要がないように、ここに配置しています。
- 私はPythonで作業していますが、Rの方が適している場所にはrpyがあります。私は必ずしもPythonの答えを探しているわけではありません-誰かが実際に何をすべきかについての答えを持っているなら、実装の詳細を自分で理解して幸せです。
- 私はたくさんの「ラフドラフト」コードを実行しています。DTWをいくつか実行したり、いくつかの異なるタイプのクラスタリングを実行したりしています。本当に探しているのは、距離を見つける前にデータを処理する方法、クラスタリングを実行する方法などに関連しています。
- これらの論文は時系列とDTWについて特に有益であり、トピック領域の背景が必要な場合に役立つことがあります:http : //www.cs.ucr.edu/~eamonn/selected_publications.htm