DBSCAN¶
過去のデータに基づいて複数の時系列を分析し、異常な外れ値となる検出対象を発見する手法です。
アルゴリズムの説明¶
DBSCAN は密度ベースのクラスタリングアルゴリズムです。一定の閾値以上の密度を持つ領域をクラスタとして分類し、低密度領域をノイズとして扱います。DBSCAN はクラスタ数を事前に指定する必要がなく、任意の形状のクラスタを発見でき、ノイズデータに対して高いロバスト性を持ちます。
- 検出対象:複数の時系列データ
- ユースケース:同一グループ内の時系列から外れ値を発見する場合に適しています
- パラメータ:検出区間 T、距離パラメータ
- 意味:
Now - TからNowまでの複数の時系列のうち、どの時系列が異常かを判定します - 戻り値:1 ~ n 個の外れ値時系列を返します
コアパラメータ¶
距離(eps):float, default=0.5
距離パラメータは、あるサンプルが別のサンプルと隣接するとみなされる最大距離を示します。クラスタ内の点間距離の上限ではありません。(float, default=0.5)
0 ~ 3.0 の範囲の任意の浮動小数点数を設定できます。設定しない場合、デフォルト値は 0.5 です。距離を大きく設定すると得られる異常点は少なくなり、小さすぎると非常に多くの外れ値が検出される可能性があります。また、大きすぎると外れ値が検出されなくなる場合があるため、データの特性に応じて適切な距離パラメータを設定する必要があります。
ユースケース¶
中心関数 DBSCAN を例に取ると、ユーザーが Guance ワークスペースに参加する際に DBSCAN を選択できます。高階関数 - DBSCAN 外れ値検出は、過去のデータに基づいて複数の時系列を分析します。
シーンで時系列グラフを選択し、クエリ下の関数を追加ボタンをクリックして高階関数 > DBSCAN を選択し、アルゴリズムパラメータを設定すると、ビューに複数の時系列の外れ値の結果が表示されます。図を参照:
DQL クエリ例:
Warning
クエリ実行時の注意事項:
- クエリデータには時間分割を含める必要があります。例:
1h:5m:1m - このアルゴリズムの計算には少なくとも 5 つの値が必要です。クエリ時には十分なデータ点数を確保してください
- このアルゴリズムは複数の時系列を処理するため、データクエリ時に
group byフィールドが必要です
表示スタイル¶
- 設定後の外れ値の表示例:
- 外れ値がない場合、フロントエンドは元のデータをそのまま表示します:


