matrixProfile
構文
説明
行列プロファイルは、時系列内の非常によく似たサブシーケンスか大きく異なるサブシーケンスを特定することで異常動作を検出する距離ベースの手法です。
同様のサブシーケンス ("モチーフ") は、多くの場合、時系列内の通常動作を表します。特異なサブシーケンス ("不一致") は、異常の可能性を示します。アルゴリズムにより、各サブシーケンス ペアの z 正規化ユークリッド距離を計算することで、時系列内のすべてのサブシーケンスが同じ長さの他のすべてのサブシーケンスと比較されます。それらの間の最小距離をもつサブシーケンス ペアを "最近傍" と呼びます。matrixProfile は、それらの最小距離 (小さいものから大きいものの順) とプロファイル内の対応する最近傍のインデックスを含むベクトルまたは行列を返します。
行列プロファイルを返す
は、単変量時系列または多変量時系列 MP = matrixProfile(X,len)X の "行列プロファイル" を返します。行列プロファイルは、X の長さ len の各サブシーケンスとそれに最も近い近傍との間の最小の z 正規化ユークリッド距離のベクトルです。
Xがベクトルの場合、単一チャネルとして扱われます。Xが行列の場合、各列について行列プロファイルが別々に計算されます (多変量解)。
matrixProfile には、計算を実行するためのアルゴリズムが 2 種類あります。
STAMP アルゴリズム (Scalable Time series Anytime Matrix Profile) は、随時および並列の計算をサポートしており、単変量と多変量のどちらのデータ セットでも機能します。"随時" の機能では、完了前にアルゴリズムを停止することができ、それでも許容できる精度の解が得られます。これは、完全な解の計算にかなりの時間がかかる場合に特に便利です。計算をいつ停止するかは、名前と値の引数
MaxIterationで決まります。STOMP アルゴリズム (Scalable Time series Ordered Matrix Profile) は、STAMP アルゴリズムよりも約 log2(n) 倍高速です。これは、GPU があり、随時の機能は必要がない場合の単変量時系列に便利です。
MP の上位の不一致およびモチーフの位置は、関数 findDiscord および findMotif を使用して検出できます。
[___] = matrixProfile(___,Name=Value) は、前述の構文の引数に加えて、1 つ以上の名前と値の引数を使用してオプションを指定します。たとえば、並列処理を使用するには、UseParallel を true に設定します。
行列プロファイルのプロット
matrixProfile(___) は、行列プロファイルの対話型プロットを表示します。この構文は、前述の任意の入力引数の組み合わせで使用できます。
例
入力引数
名前と値の引数
出力引数
参照
[1] Yeh, Chin-Chia Michael, et al. “Matrix Profile I: All Pairs Similarity Joins for Time Series: A Unifying View That Includes Motifs, Discords and Shapelets.” 2016 IEEE 16th International Conference on Data Mining (ICDM), IEEE, 2016, pp. 1317–22. DOI.org (Crossref), https://doi.org/10.1109/ICDM.2016.0179.
[2] Zhu, Yan, et al. “Matrix Profile II: Exploiting a Novel Algorithm and GPUs to Break the One Hundred Million Barrier for Time Series Motifs and Joins.” 2016 IEEE 16th International Conference on Data Mining (ICDM), IEEE, 2016, pp. 739–48. DOI.org (Crossref), https://doi.org/10.1109/ICDM.2016.0085.


