クラスタリングアルゴリズム¶
クラスタリングとは、複数系列データセット内の時系列をクラスター化し、それらのクラスターを セグメント化されたモデリングプロジェクト内のセグメントIDとして直接適用する機能です。 これにより、最も類似した時系列をグループ化して、セグメント化されたより正確なモデルを作成できるため、複雑な複数系列プロジェクト作成時の価値実現までの時間を短縮できます。
DataRobotでは、時系列クラスタリングに次のアルゴリズムを使用します。
次の表は、速度とK平均法を比較しています。
特性 | 速度クラスタリング | K-meansクラスタリング |
---|---|---|
速度 | 高速 | 低速 |
不規則な時間ステップに対する堅牢性 | はい | いいえ |
系列の形状に基づくクラスター | いいえ | はい |
系列の長さが同じである必要があるか | いいえ | いいえ |
単一の系列には、時間の経過とともに変化する一意の値が多数含まれる場合がありますが、時系列バリアントでは、異なる系列間の類似性を探して、どの系列が互いに最も密接に関連しているかを特定します。 系列は、元のデータセットから派生した特定の重心(中心点に相当する時系列クラスタリング)と最も密接に関連づけられることによって分類されます。
速度クラスタリング¶
速度クラスタリングは、サマリー統計量に基づいて系列を分割する教師なし学習手法です。 ほとんどのクラスタリングと同様に、目標は、類似した系列を同じクラスターに配置し、異なるクラスターで大きく異なる系列を配置することです。 具体的には、平均値、標準偏差、ゼロの割合などの統計的特性に基づいて時系列をグループ化します。 このアプローチの利点は、特徴量派生ウィンドウ内の類似する値を持つ時系列がグループ化されるため、セグメント化されたモデリング中にFDW内のこれらの特徴量により多くの信号が含まれることです。
各クラスタリング特徴量の計算は次のようになります。
- すべての系列で指定された集計(平均、標準偏差)を実行します。
- 結果として得られる集計を、目的のクラスター数を表す分位点に分割します。
- 特徴量の集計に該当する分位点を決定し、その特徴量をそのクラスターに割り当てます。
最も多くの特徴量が割り当てられたクラスターは、系列の最終クラスターになります。
DataRobotは、4種類の速度クラスタリングを実装しています。
- 平均集計
- 標準偏差の集計
- ゼロ過剰および平均集計
- ゼロ過剰および標準偏差の集計
DTWを使用したK平均¶
K平均法クラスタリングの実装を理解するには、DataRobotによる2つの時系列間の距離を測定する方法を理解する必要があります。 これを行うには、動的時間伸縮法(DTW)を使用します。 以下の K平均法の詳細(クラスタリングとDTWに関連)を参照してください。
単一特徴量のDTW¶
DTWでは、「形状」を一致させることで、2つの系列間の類似性指標を生成します。以下のグラフは、インデックス間の 一致が1対1ではなく、歪んでいる例を示しています。
複数特徴量のDTW¶
上のシンプルな図は、1つの特徴量に着目して系列間の距離を測定する方法を示しています。 しかし、複数の特徴量がある場合はどうなるでしょうか? たとえば、日次売上データと日次顧客数データを使って、店舗Aと店舗Bの間の距離を計算する場合、「売上データのDTW距離」と「顧客数データのDTW距離」の平均を計算するのでしょうか?
DTWは、各特徴量間の距離の尺度として計算されます。 次に、値をK平均法と組み合わせて、実際のクラスタリングを行います。
系列を形状m x n
の行列と考えてください。ここで、各特徴量m
が表され、n
は各時点を表します。 各系列には独自のm x n
行列があります。 これにより、クラスター内に系列のコレクションが作成されます。 距離行列自体は誤差指標ではありません。 誤差指標は、距離行列に基づいて計算されます。 次に、系列全体の各m
点とn
点に対して、距離行列が計算されます。
特徴量はDTW内で独立した状態に保持されるため、上記の画像の1D
で表されるのではなく2D
DTWとして表現されます。 実際のK平均法は、各クラスターの結果として生じる2D
距離表現を最適化したものです。
DTWの一致要件¶
一致を作成する上で、次の4つの要件があります。
- 系列
A
のすべてのインデックスは、系列B
のインデックスと1つ以上一致する必要があり、その逆も同様です。 - シーケンス
A
の最初のインデックスは、少なくともシーケンスB
の最初のインデックスと一致する必要があります。 - シーケンス
A
の最後のインデックスは、シーケンスB
の最後のインデックスと一致しています。 - シーケンスAからシーケンスB(およびその逆)へのインデックスのマッピングは、インデックスマッピングが交差しないように単調増加する必要があります。
DataRobotでは、一致の精度がどのように判断されるのでしょうか? DTWで距離を計算するには:
- 2つの時系列間のすべての一致を特定します。
- それぞれの一致する値の差分二乗和を計算します。
- すべての一致の二乗和の最小値を求めます。
一歩進んだ操作:K平均法DTWクラスタリング¶
K平均法は、サンプルを等分散のK個のグループに分割してデータをクラスター化し、「慣性」または「クラスター内二乗和」として知られる基準を最小化する教師なし学習アルゴリズムです。このアルゴリズムでは、クラスターの数を事前に指定する必要があります。 多数のサンプルに適応でき、さまざまな分野の幅広いアプリケーション領域で使用されています。
K平均法アルゴリズムをシーケンスに適用するには、DataRobotでは、重心として機能する系列を選択してクラスターを初期化します。 具体的には、DataRobotは次のことを実行します。
- 作成するクラスターの数(K)を特定します。
- K系列を重心としてランダムに選択して、クラスターを初期化します。
- 各時系列からすべての重心までの距離の二乗和を計算します。
- 合計が最小値になるクラスターに時系列を割り当てます。
- 各クラスターの重心を再計算します。
- 収束または最大反復回数に達するまで、手順4と5を繰り返します。
DTW距離の計算¶
重心は、他の時系列との間の距離を最小限に抑えることを目的とし、他の時系列から派生した時系列です。 重心(B
)は、新しい時系列データセット(x
)が指定された場合、参照時系列(b
)に対する距離(d
)の二乗和の最小値として数学的に定義されます。
クラスタリング時系列アルゴリズム、つまりK平均法は、さまざまな距離アルゴリズム(ユークリッドやDTWなど)を使用して、これらの距離を計算します。
DTW K平均法では、異なる系列間の類似性指標としてDTWが使用されます。 DTWの大きな利点の1つは、系列が同じ長さである必要がない、つまり系列を時間的に揃える必要がないことです。 代わりに、2つの系列間の時間的整合性を最小限に抑えた後で、2つの系列を比較できます。
これをユークリッド距離と比較します。 ユークリッド距離では、各点を系列間の同じ点を占める他の点と正確に比較します(T_0
は常にT_0
と比較されます)。 ただし、T_10
が系列Aのピークで、T_30
が系列Bのピークである場合、DTW を使用するには、T_10
はT_30
と比較されます。 ユークリッド距離ではT_10
とT_10
を比較します。 DTWは他の方法よりも若干遅くなりますが、はるかに堅牢な類似性指標を提供します。 ほとんどの複数系列データセットには、各系列の開始時刻と終了時刻の違いなど、さまざまな特性があることを考慮する場合に、これは特に重要です。