多変量時系列クラスタリング


8

多変量時系列のグループを収集しています。たとえば、2000の時系列があります。各時系列は12次元です。

多変量時系列をクラスター化できる体系的なモデル/アルゴリズムはありますか?たとえば、他とは非常に異なる時系列を特定したいと思います。

さらに、オンライン監視では、このアルゴリズムを時間どおりに実行する場合があります。たとえば、10分ごとに、この種のアルゴリズムを10分をカバーする時系列に対して実行します。これに関して効率的なアルゴリズムはありますか?

回答:


5

Rパッケージ pdc多変量時系列のクラスタリングを提供します。順列分布クラスタリングは、時系列の複雑さに基づく非類似性の尺度です。時系列の違いは複雑さの違いによるものであり、特に平均、分散、またはモーメントの違いによるものではないと想定できる場合、これは有効なアプローチである可能性があります。多変量時系列のpdc表現を計算するアルゴリズムの時間の複雑さはO(DTN)にあり、Dは次元数、Tは時系列の長さ、Nは時系列の数です。各時系列の各次元を1回スイープするだけで、圧縮された複雑さの表現を得るのに十分であるため、これはおそらく同じくらい効率的です。

多変量ホワイトノイズ時系列の階層的クラスタリングを使用した簡単な例を次に示します(プロットは各時系列の最初の次元のみを示しています)。

require("pdc")

num.ts <- 20 # number of time series
num.dim <- 12 # number of dimensions
len.ts <- 600*10 # number of time series

# generate Gaussian white noise
data <- array(dim = c(len.ts, num.ts, num.dim),data = rnorm(num.ts*num.dim*len.ts))

# obtain clustering with embedding dimension of 5
pdc <- pdclust(X = data, m=5,t=1)

# plot hierarchical clustering
plot(pdc)

多変量ホワイトノイズの階層的クラスタリング

このコマンドpdcDist(data)は、非類似度行列を生成します。

データはすべてホワイトノイズであるため、非類似度行列に明らかな構造はありません。

         1        2        3        4        5        6        7
2 4.832894                                                      
3 4.810718 4.790286                                             
4 4.812738 4.796530 4.809482                                    
5 4.798458 4.772756 4.751079 4.786206                           
6 4.812076 4.793027 4.798996 4.758193 4.751691                  
7 4.786515 4.771505 4.754735 4.837236 4.775775 4.794706         
8 4.808709 4.832403 4.722993 4.781267 4.784397 4.776600 4.787757

詳細については、以下を参照してください。

Brandmaier、AM(2015)。pdc:時系列の複雑度ベースのクラスタリング用のRパッケージ。Journal of Statistical Software、67. doi:10.18637 / jss.v067.i05 (フルテキスト)


1
+1 @Brandmaierは、対応と優れたパッケージに感謝します。
予測者

3

RTEFC(「リアルタイム指数フィルタークラスタリング」)またはRTMAC(「リアルタイム移動平均クラスタリング」)をチェックします。これらは、プロトタイプクラスタリングが適切な場合にリアルタイムでの使用に適した、K平均の効率的で単純なリアルタイムバリアントです。ベクトルの例。 スライド付きの各タイムステップで1つの大きなベクトル(「BDAC」の表現)として多変量時系列を表す方法については、https: //gregstanleyandassociates.com/whitepapers/BDAC/Clustering/clustering.htmおよび関連資料を参照してください。タイムウィンドウ。

これらは、ノイズのフィルタリングとクラスタリングの両方をリアルタイムで同時に実行して、さまざまな条件を認識して追跡するために開発されました。RTMACは、特定のクラスターに近い最新の観測を保持することにより、メモリの増加を制限します。RTEFCは、あるタイムステップから次のタイムステップまでの重心のみを保持します。これは、多くのアプリケーションで十分です。絵では、RTEFCは次のようになります。

Dawgは、これをHDBSCANと比較するように求めました。特に、approximate_predict()関数です。主な違いは、HDBSCANは依然として、高価な操作である元のデータポイントからの再トレーニングが時折発生することを想定していることです。HDBSCANApproximate_predict()関数を使用して、再トレーニングせずに新しいデータにすばやくクラスターを割り当てます。RTEFCの場合、元のデータポイントが保存されないため、大きな再トレーニングの計算はありません。代わりに、クラスターセンターのみが保存されます。新しいデータポイントはそれぞれ1つのクラスターセンターのみを更新します(必要に応じてクラスター数の指定された上限内に新しいクラスターを作成するか、以前の1つのセンターを更新します)。各ステップの計算コストは​​低く、予測可能です。

画像にはいくつかの類似点がありますが、HDBSCAN画像には既存のクラスターの近くの新しいデータポイントの再計算されたクラスター中心を示すスター付きの点がなく、HDBSCAN画像は新しいクラスターケースまたは強制更新ケースを外れ値として拒否します。

因果関係がアプリオリにわかっている場合(システムで入力と出力が定義されている場合)、RTEFCもオプションで変更されます。同じシステム入力(および動的システムの初期条件)は、同じシステム出力を生成する必要があります。ノイズやシステムの変更が原因ではありません。その場合、クラスタリングに使用される距離メトリックは、システム入力と初期条件の近さのみを考慮するように変更されます。したがって、繰り返されるケースの線形結合により、ノイズが部分的にキャンセルされ、システム変更への適応が遅くなります。重心は、ノイズが低減されているため、実際には、特定のデータポイントよりも典型的なシステムの動作をよく表しています。

もう1つの違いは、RTEFC用に開発されたものはすべてコアアルゴリズムにすぎないということです。わずか数行のコードで実装するのに十分簡単で、高速で、各ステップで予測可能な最大計算時間を実現します。これは、オプションの多い施設全体とは異なります。これらの種類のものは合理的な拡張です。たとえば、外れ値の拒否では、しばらくしてから、既存のクラスター中心までの定義された距離の外側のポイントを無視して、新しいクラスターの作成や最も近いクラスターの更新に使用するのではなく、単に無視する必要があります。

RTEFCの目的は、観測されたシステムの可能な動作を定義する一連の代表的なポイントで終了し、時間の経過に伴うシステムの変化に適応し、必要に応じて、因果関係がわかっている繰り返しのケースでノイズの影響を減らすことです。元のすべてのデータを維持することはできません。観測されたシステムが時間の経過とともに変化するため、一部のデータは古くなる可能性があります。これにより、ストレージ要件と計算時間が最小限に抑えられます。この一連の特性(代表的な点としてのクラスター中心が必要なすべてであり、経時的な適応、予測可能で計算時間が短い)は、すべてのアプリケーションに適合しません。これは、バッチ指向のクラスタリング、ニューラルネット関数近似モデル、または分析やモデル構築のための他のスキームのためのオンライントレーニングデータセットの維持に適用できます。アプリケーションの例には、障害検出/診断が含まれます。プロセス制御; または、これらのポイント間で補間された代表的なポイントまたは動作からモデルを作成できる他の場所。観測されているシステムは、主に一連の連続変数によって記述されるものであり、そうでなければ代数方程式や時系列モデル(差分方程式/微分方程式を含む)、および不等式制約を使用したモデリングが必要になる場合があります。


画像の表現は、階層的なDBSCANバリアントをかなり思い出させ ます。hdbscan.readthedocs.io / en / latest / prediction_tutorial.html#違いを強調できますか?
ledawg
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.