すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:多変量パターン識別関数

最終更新日:Oct 31, 2024

Simple Log Serviceは、サービスシステムの異常と異常の根本原因を特定する異常検出機能を提供します。 異常検出機能は、メトリックの現在のパターンおよび機械学習に基づいて、異常なメトリック変化を自動的に識別することができる。 多変量パターン識別関数を使用して、メトリックパターンを識別できます。 このトピックでは、多変量パターン識別関数について説明します。

関数

関数

構文

説明

戻り値のデータ型

要約関数

  • 要約 (array(array(double)) data_samples)

  • summarize(array(double)) data_samples, array(double) weights)

指定されたサンプルとサンプルの重みに基づいて、多変量パターンを識別して返します。 サンプルの重みはオプションです。 統計パターンは、平均、標準偏差、共分散行列など、さまざまな統計と共同統計をカバーします。

varchar

merge_summary関数

  • merge_summary(varchar summary1, varchar summary2)

  • merge_summary(varchar summary1, double weight1, varchar summary2, double weight2)

summarize関数によって返される多変量パターンをマージします。 多変量パターンは、異なる段階の同じデータセットから学習することによって得られるパターン、または2つの独立したデータセットから学習することによって得られるパターンであり得る。 詳細については、「summarize function」をご参照ください。

varchar

normalize_vector関数

normalize_vector(varchar summary, array(double) x_vector)

サマリーパラメーターで指定されたパターンに基づいて、x_vectorパラメーターで指定された新しいサンプルベクトルを正規化します。 ベクトルの各コンポーネントが [0,1] 間隔にマップされていることを確認します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。

配列 (ダブル)

standardize_vector関数

standardize_vector(varchar summary, array(double) x_vector)

サマリーパラメーターで指定されたパターンに基づいて、x_vectorパラメーターで指定された新しいサンプルベクトルを標準化します。 ベクトルの成分が0の平均および1の標準偏差を有することを確認する。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。

配列 (ダブル)

mah_distance関数

mah_distance(varchar summary, array(double) x_vector)

サマリーパラメーターで指定されたパターンに基づいて、x_vectorパラメーターで指定された新しいサンプルベクトルのマハラノビス距離を計算します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。 マハラノビス距離を使用して、さまざまな変数間のスケールの違いを効果的に処理できます。 マハラノビス距離は、ベクトルが標準化された後のx_vectorパラメータによって指定されたサンプルベクトルとベクトルの重心との間の距離を測定する。 マハラノビス距離が1である場合、サンプルベクトルとベクトルの重心との間の距離は、すべてのベクトルとベクトルの重心との間の平均距離に等しい。

double

standard_distance関数

standard_distance(varchar summary, double metric_value, int element_index)

summaryパラメーターで指定されたパターンに基づいて、metric_valueパラメーターで指定されたメトリックの標準化された距離を計算します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。 標準化された距離は、マハラノビス距離と同様である。 マハラノビス距離は、複数のメトリックからなるベクトルとベクトルの重心との間の標準化された距離を測定する。 標準化された距離は、ベクトルのメトリックとベクトルの重心との間の距離を測定する。 element_indexパラメーターは、メトリックのインデックスを指定します。 metric_valueパラメーターは、メトリックの値を指定します。

double

anomaly_level関数

  • anomaly_level(varchar summary, array(double) x_vector)

  • anomaly_level(varchar summary, array(double) x_vector, int element_index)

サマリーパラメータで指定されたパターンに基づいて、x_vectorパラメータで指定された新しいサンプルベクトルのマハラノビス距離を計算し、各距離値を切り捨てて、さまざまなレベルの異常確率を取得します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。 戻り値が0.1の場合、新しいサンプルベクトルが異常である確率が10% されます。 この値は、第1レベルの異常を示す。 戻り値が0.01の場合、新しいサンプルベクトルが異常である確率が1% されます。 この値は、第2レベルの異常を示す。 戻り値が0.001の場合、新しいサンプルベクトルが異常である確率が0.1% されます。 この値は、第3レベルの異常を示す。 戻り値が0.0001の場合、新しいサンプルベクトルが異常である確率が0.01% されます。 この値は、第4レベルの異常を示す。 異常のレベルの増加は、新しいサンプルベクトルの異常な確率の減少およびベクトルの疑わしい可能性の減少を示す。 ほとんどの場合、異常検出結果に基づいて異常をフィルタリングするためのしきい値を設定できます。 たとえば、第4レベル以上の異常のみを保持するようにしきい値を設定できます。

element_indexパラメーターに値を指定した場合、関数は指定されたベクトルの指定されたインデックスを持つメトリックに対してのみ確率を返します。 element_indexパラメーターを設定しない場合、関数は指定されたベクトルの各メトリックの確率を返します。

配列 (ダブル)

要約関数

summal関数は、指定されたサンプルとサンプルの重みに基づいて多変量パターンを識別して返します。 サンプルの重みはオプションです。 統計パターンは、平均、標準偏差、共分散行列など、さまざまな統計と共同統計をカバーします。

varchar summarize(array(array(double)) data_samples)

または

varchar summarize(array(array(double)) data_samples, array(double) weights)

パラメーター

説明

data_samples

2次元アレイ。 配列は2次元テーブルとして使用できます。 各列は変数を指定します。 各行は、サンプルの変数値を指定します。

重み

必要に応じて、 サンプル重量。 この値は、data_samplesパラメーターで指定された2次元配列を構成する1次元配列と同じ長さの1次元配列です。 このパラメーターに値を指定しない場合、すべてのサンプルで同じ重みが使用されます。

  • クエリ文

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    )
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
  • クエリおよび分析の結果

    entity_group

    statistical_summary

    A

    {
      "sampleCount": 8,
      "vectorSize": 4,
      "means": [
        11.5,
        12.5,
        9.25,
        0.0
      ],
      "stdDevs": [
        6.87386354243376,
        6.87386354243376,
        7.361215932167728,
        0.0
      ],
      "variances": [
        47.25,
        47.25,
        54.1875,
        0.0
      ],
      "mins": [
        1.0,
        2.0,
        1.0,
        0.0
      ],
      "maxs": [
        22.0,
        23.0,
        21.0,
        0.0
      ],
      "covariance": [
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          19.125,
          19.125,
          54.1875,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "correlations": [
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          0.37796447300922725,
          0.37796447300922725,
          1.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ],
      "sums": [
        92.0,
        100.0,
        74.0,
        0.0
      ],
      "weightSum": 8.0,
      "sumProducts": [
        [
          1436.0,
          1528.0,
          1004.0,
          0.0
        ],
        [
          1528.0,
          1628.0,
          1078.0,
          0.0
        ],
        [
          1004.0,
          1078.0,
          1118.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "isSummarized": true
    }
    

    クエリおよび分析結果のパラメーター

    パラメーター

    説明

    sampleCount

    サンプルの数。

    vectorSize

    ベクトルの長さ。

    手段

    すべてのベクトル成分の平均値。

    stdDevs

    すべてのベクトル成分の標準偏差値。

    分散

    すべてのベクトル成分の分散値。

    mins

    すべてのベクトル成分の最小値。

    maxs

    すべてのベクトル成分の最大値。

    共分散

    すべてのベクトル成分の共分散行列。

    相関

    すべてのベクトル成分の相関係数行列。

    合計

    すべてのベクトル成分の合計。

    weightSum

    すべてのサンプルの重みの合計。

    sumProducts

    統計パターンをマージするために使用される中間結果。

    isSummarized

    通常の多変量パターンが返されるかどうかを示します。 有効な値:

    • true

    • false

merge_summary関数

merge_summary関数は、summarize関数によって返される多変量パターンをマージします。 多変量パターンは、異なる段階の同じデータセットから学習することによって得られるパターン、または2つの独立したデータセットから学習することによって得られるパターンであり得る。 詳細については、「summarize function」をご参照ください。

varchar merge_summary(varchar summary1, varchar summary2)

または

varchar merge_summary(varchar summary1, double weight1, varchar summary2, double weight2)

パラメーター

説明

summary1

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

weight1

summary1パラメーターで指定された多変量パターンの重み。

summary2

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

weight2

summary2パラメーターで指定された多変量パターンの重み。

  • クエリ文

    * | with data_table_01 as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features
    ),
    
    summaries_01 as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table_01
        group by entity_group
    ),
    
    data_table_02 as
    (
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries_02 as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table_02
        group by entity_group
    )
    select s1.entity_group,
        merge_summary(s1.statistical_summary, s2.statistical_summary) as statistical_summary
    from summaries_01 as s1
        join summaries_02 as s2
        on s1.entity_group = s2.entity_group
  • クエリおよび分析の結果

    statistic_summaryパラメーターは、マージ操作後に取得される多変量パターンを示します。

    entity_group

    statistical_summary

    2

    {
      "sampleCount": 8,
      "vectorSize": 4,
      "means": [
        11.5,
        12.5,
        9.25,
        0.0
      ],
      "stdDevs": [
        6.87386354243376,
        6.87386354243376,
        7.361215932167728,
        0.0
      ],
      "variances": [
        47.25,
        47.25,
        54.1875,
        0.0
      ],
      "mins": [
        1.0,
        2.0,
        1.0,
        0.0
      ],
      "maxs": [
        22.0,
        23.0,
        21.0,
        0.0
      ],
      "covariance": [
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          47.25,
          47.25,
          19.125,
          0.0
        ],
        [
          19.125,
          19.125,
          54.1875,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "correlations": [
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          1.0,
          1.0,
          0.37796447300922725,
          0.0
        ],
        [
          0.37796447300922725,
          0.37796447300922725,
          1.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          1.0
        ]
      ],
      "sums": [
        92.0,
        100.0,
        74.0,
        0.0
      ],
      "weightSum": 8.0,
      "sumProducts": [
        [
          1436.0,
          1528.0,
          1004.0,
          0.0
        ],
        [
          1528.0,
          1628.0,
          1078.0,
          0.0
        ],
        [
          1004.0,
          1078.0,
          1118.0,
          0.0
        ],
        [
          0.0,
          0.0,
          0.0,
          0.0
        ]
      ],
      "isSummarized": true
    }

    クエリおよび分析結果のパラメーター

    パラメーター

    説明

    sampleCount

    サンプルの数。

    vectorSize

    ベクトルの長さ。

    means

    すべてのベクトル成分の平均値。

    stdDevs

    すべてのベクトル成分の標準偏差値。

    variances

    すべてのベクトル成分の分散値。

    mins

    すべてのベクトル成分の最小値。

    maxs

    すべてのベクトル成分の最大値。

    covariance

    すべてのベクトル成分の共分散行列。

    correlations

    すべてのベクトル成分の相関係数行列。

    sums

    すべてのベクトル成分の合計。

    weightSum

    すべてのサンプルの重みの合計。

    sumProducts

    統計パターンをマージするために使用される中間結果。

    isSummarized

    通常の多変量パターンが返されるかどうかを示します。 有効な値:

    • true

    • false

normalize_vector関数

normalize_vector関数は、サマリーパラメーターで指定されたパターンに基づいて、x_vectorパラメーターで指定された新しいサンプルベクトルを正規化します。 ベクトルの各コンポーネントが [0,1] 間隔にマップされていることを確認します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。

array(double) normalize_vector(varchar summary, array(double) x_vector)

パラメーター

説明

summary

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

x_vector

新しいサンプルデータ。

  • クエリ文

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        normalize_vector(t2.statistical_summary, t1.features) as normalized_features
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
  • クエリおよび分析の結果

    normalized_featuresパラメーターは、x_vectorパラメーターで指定されたサンプルベクトルの正規化結果を示します。

    entity_id

    entity_group

    normalized_features

    2

    A

    [0.14285714285714286、0.14285714285714286、0.25、0.5]

    4

    A

    [0.42857142857142857、0.42857142857142857、0.0、0.5]

    3

    A

    [0.2857142857142857、0.2857142857142857、0.4、0.5]

    ...

    ...

    ...

standardize_vector関数

standardize_vector関数は、サマリーパラメーターで指定されたパターンに基づいて、x_vectorパラメーターで指定された新しいサンプルベクトルを標準化します。 ベクトルの成分が0の平均および1の標準偏差を有することを確認する。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。

array(double) standardize_vector(varchar summary, array(double) x_vector)

パラメーター

説明

summary

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

x_vector

新しいサンプルデータ。

  • クエリ文

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        standardize_vector(t2.statistical_summary, t1.features) as standardized_features
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
  • クエリおよび分析の結果

    standardized_featuresパラメーターは、x_vectorパラメーターで指定されたサンプルベクトルの標準化結果を示します。

    entity_id

    entity_group

    標準化された_機能

    2

    A

    [-1.0910894511799619、-1.0910894511799619、-0.4415031470273609、0.0]

    4

    A

    [-0.21821789023599237、-0.21821789023599237、-1.1207387578386854、0.0]

    3

    A

    [-0.6546536707079771、-0.6546536707079771、-0.03396178054056622、0.0]

    ...

    ...

    ...

mah_distance関数

mah_distance関数は、サマリーパラメータで指定されたパターンに基づいて、x_vectorパラメータで指定された新しいサンプルベクトルのマハラノビス距離を計算します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。 マハラノビス距離を使用して、さまざまな変数間のスケールの違いを効果的に処理できます。 マハラノビス距離は、ベクトルが標準化された後のx_vectorパラメータによって指定されたサンプルベクトルとベクトルの重心との間の距離を測定する。 マハラノビス距離が1である場合、サンプルベクトルとベクトルの重心との間の距離は、すべてのベクトルとベクトルの重心との間の平均距離に等しい。

double mah_distance(varchar summary, array(double) x_vector)

パラメーター

説明

summary

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

x_vector

新しいサンプルデータ。

  • クエリ文

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        mah_distance(t2.statistical_summary, t1.features) as std_distance
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
  • クエリおよび分析の結果

    std_distanceパラメーターは、x_vectorパラメーターで指定されたサンプルベクトルのマハラノビス距離を示します。

    entity_id

    entity_group

    std_distance

    8

    A

    2.386927730244857

    7

    A

    1.6809080087793125

    1

    A

    1.5554594371997328

    ...

    ...

    ...

standard_distance関数

standard_distance関数は、summaryパラメータによって分離されたパターンに基づいて、metric_valueパラメータによって指定された新しいサンプルベクトルの標準化された距離を計算します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。 要約関数標準化された距離は、マハラノビス距離に似ています。 マハラノビス距離は、複数のメトリックからなるベクトルとベクトルの重心との間の標準化された距離を測定する。 標準化された距離は、ベクトルのメトリックとベクトルの重心との間の距離を測定する。 element_indexパラメーターは、メトリックのインデックスを指定します。 インデックスは0から始まります。 metric_valueパラメーターは、メトリックの値を指定します。

double standard_distance(varchar summary, double metric_value, int element_index)

パラメーター

説明

summary

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

metric_value

メトリック。

element_index

summaryパラメーターで指定された多変量パターンのメトリックのインデックス。 インデックスは0から始まります。

  • クエリ文

    * | with data_table as
    (
        select 1 as entity_id, 'A' as entity_group, cast(array[1, 2, 3, 0] as array(double)) as features union all
        select 2 as entity_id, 'A' as entity_group, cast(array[4, 5, 6, 0] as array(double)) as features union all
        select 3 as entity_id, 'A' as entity_group, cast(array[7, 8, 9, 0] as array(double)) as features union all
        select 4 as entity_id, 'A' as entity_group, cast(array[10, 11, 1, 0] as array(double)) as features union all
        select 5 as entity_id, 'A' as entity_group, cast(array[13, 14, 15, 0] as array(double)) as features union all
        select 6 as entity_id, 'A' as entity_group, cast(array[16, 17, 18, 0] as array(double)) as features union all
        select 7 as entity_id, 'A' as entity_group, cast(array[19, 20, 21, 0] as array(double)) as features union all
        select 8 as entity_id, 'A' as entity_group, cast(array[22, 23, 1, 0] as array(double)) as features
    ),
    
    summaries as
    (
        select entity_group,
            summarize(array_agg(features)) as statistical_summary
        from data_table
        group by entity_group
    )
    
    select t1.entity_id,
        t1.entity_group,
        standard_distance(t2.statistical_summary, 30, 1) as std_distance
    from data_table as t1
        join summaries as t2
        on t1.entity_group = t2.entity_group
    
  • クエリおよび分析の結果

    std_distanceパラメーターは、metric_valueパラメーターで指定されたメトリックの標準化された距離を示します。

    entity_id

    entity_group

    std_distance

    8

    A

    2.386927730244857

    7

    A

    1.6809080087793125

    1

    A

    1.5554594371997328

    ...

    ...

    ...

anomaly_level関数

anomaly_level関数は、要約パラメータによって指定されたパターンに基づいて、x_vectorパラメータによって指定された新しいサンプルベクトルのマハラノビス距離を計算し、各距離値を切り捨てて、異なるレベルの異常確率を取得します。 summaryパラメーターは、summary関数によって返されるパターンに設定できます。 詳細については、「summarize function」をご参照ください。 戻り値が0.1の場合、新しいサンプルベクトルが異常である確率が10% されます。 この値は、第1レベルの異常を示す。 戻り値が0.01の場合、新しいサンプルベクトルが異常である確率が1% されます。 この値は、第2レベルの異常を示す。 戻り値が0.001の場合、新しいサンプルベクトルが異常である確率が0.1% されます。 この値は、第3レベルの異常を示す。 戻り値が0.0001の場合、新しいサンプルベクトルが異常である確率が0.01% されます。 この値は、第4レベルの異常を示す。 異常のレベルの増加は、新しいサンプルベクトルの異常な確率の減少およびベクトルの疑わしい可能性の減少を示す。 ほとんどの場合、異常検出結果に基づいて異常をフィルタリングするためのしきい値を設定できます。 たとえば、第4レベル以上の異常のみを保持するようにしきい値を設定できます。

element_indexパラメーターに値を指定した場合、関数は指定されたベクトルの指定されたインデックスを持つメトリックに対してのみ確率を返します。 element_indexパラメーターを設定しない場合、関数は指定されたベクトルの各メトリックの確率を返します。

double anomaly_level(varchar summary, array(double) x_vector)

または

double anomaly_level(varchar summary, array(double) x_vector, int element_index)

パラメーター

説明

概要

要约関数によって返される多変量パターン。 詳細については、「summarize function」をご参照ください。

x_vector

新しいサンプルデータ。

要素_インデックス

必要に応じて、 インデックス。

  • クエリ文

    * |
    with dummy as
    (
        select sequence(1, 1000) as seq_data,
            count(*) as record_count from log
    ),
    
    sample_data as
    (
        select 'G1' as group_id,
            s.seq_num,
             -- Generate 1,000 two-dimensional random vectors that are distributed around the (100, 5000) range. The standard deviation values of two components are 20 and 500.
            inverse_normal_cdf(100, 20, random()) as x1,
            inverse_normal_cdf(5000, 500, rand()) as x2
        from dummy,
            unnest(seq_data) as s(seq_num)
    ),
    
    data_summary as
    (
        select group_id,
            summarize(array_agg(array[x1, x2])) as metric_summary
        from sample_data
        group by group_id
    ),
    
    new_data as
    (
        select 'G1' as group_id, 1001 as object_id, 100.0 as x1, 5000.0 as x2
        union all select 'G1' as group_id, 1002 as object_id, 118.0 as x1, 5450.0 as x2
        union all select 'G1' as group_id, 1003 as object_id, 138.0 as x1, 5950.0 as x2
        union all select 'G1' as group_id, 1004 as object_id, 158.0 as x1, 6450.0 as x2
        union all select 'G1' as group_id, 1005 as object_id, 178.0 as x1, 6950.0 as x2
        union all select 'G1' as group_id, 1006 as object_id, 198.0 as x1, 7450.0 as x2
        union all select 'G1' as group_id, 1007 as object_id, 318.0 as x1, 10000.0 as x2
    )
    
    select n.group_id,
        json_extract(s.metric_summary, '$.means') as metric_vector_mean,
        json_extract(s.metric_summary, '$.covariance') as metric_covariance,
        n.object_id,
        n.x1,
        n.x2,
        anomaly_level(s.metric_summary, array[x1, x2]) as anomaly_level
    from data_summary as s
        join new_data as n
            on s.group_id = n.group_id
    order by n.group_id, n.object_id
    limit 100000
    
  • クエリおよび分析の結果

    anomaly_levelパラメーターは、x_vectorパラメーターで指定されたサンプルベクトルの異常確率を示します。

    グループ_id

    オブジェクト_id

    anomality_level

    G1

    1007

    13.0

    G1

    1006

    5.0

    G1

    1005

    4.0

    ...

    ...

    ...