SsaChangePointEstimator クラス

定義

単一スペクトル分析を使用して時系列の変化点を検出します。

public sealed class SsaChangePointEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.TimeSeries.SsaChangePointDetector>
type SsaChangePointEstimator = class
    interface IEstimator<SsaChangePointDetector>
Public NotInheritable Class SsaChangePointEstimator
Implements IEstimator(Of SsaChangePointDetector)
継承
SsaChangePointEstimator
実装

注釈

このエスティメーターを作成するには、 DetectChangePointBySsa を使用します

入力列と出力列

入力列は 1 つだけです。 入力列は、 Single 時系列の Single タイムスタンプの値を示す値である必要があります。

4 つの要素を持つベクトルである列が生成されます。 出力ベクトルには、アラート レベル (ゼロ以外の値は変更ポイントを意味します)、スコア、p 値、およびマルチンゲール値が順番に含まれています。

推定特性

このエスティメーターは、パラメーターをトレーニングするためにデータを確認する必要がありますか? はい
入力列のデータ型 Single
出力列のデータ型 の 4 要素ベクトルDouble
ONNX にエクスポート可能 いいえ

推定特性

機械学習タスク 異常検出
正規化は必要ですか? いいえ
キャッシュは必要ですか? いいえ
Microsoft.ML に加えて必要な NuGet Microsoft.ML.TimeSeries

トレーニング アルゴリズムの詳細

このクラスは、 単一スペクトル分析 (SSA) に基づく一般的な異常検出変換を実装します。 SSA は、時系列を傾向、季節性、ノイズコンポーネントに分解し、時系列の将来の値を予測するための強力なフレームワークです。 原則として、SSA は入力時系列に対してスペクトル分析を実行し、スペクトル内の各コンポーネントが時系列の傾向、季節、またはノイズ コンポーネントに対応します。 単数スペクトル分析 (SSA) の詳細については、 このドキュメントを参照してください。

Anomaly Scorer

タイムスタンプの生スコアが計算されると、そのタイムスタンプで最終的な異常スコアを計算するために異常スコアラー コンポーネントにフィードされます。 このスコアラーには、p 値とマルチンゲール スコアの 2 つの統計が含まれます。

P 値スコア

p 値スコアは、生スコアの分布に従って、現在計算された生スコアの p 値を示します。 ここでは、履歴の特定の深さまでの最新の未加工スコア値に基づいて分布が推定されます。 より具体的には、この分布は、適応帯域幅のガウスカーネルとのカーネル密度推定使用して推定される。 p 値スコアは常に $[0, 1]$ で、値が低いほど、現在のポイントが外れ値である可能性が高くなります (スパイクとも呼ばれます)。

マルチンゲール スコアに基づく変更ポイント検出

マルチンゲール スコアは、p 値スコアに基づいて構築されたスコアリングの追加レベルです。 このアイデアは、i.i.d. 値のストリームに対する分布の変化を検出する Exchangeability Martingales に基づいています。 つまり、一連の小さな p 値が行で検出されると、マルチンゲール スコアの値が大幅に増加し始めます。これは、基になるデータ生成プロセスの分布の変化を示します。 したがって、マルチンゲールスコアは、変化点検出に使用される。 最近観察された一連の p 値 、$p 1、\dots、p_n$ を指定すると、マルチンゲール スコアは次のように計算されます。 $s(p1、\dots、p_n) = \prod_{i=1}^n \beta(p_i)$。 $\beta(p) = e p^{\epsilon - 1}$ は $0 < \epsilon < 1$ または $\beta(p) = \int_{0}^1 \epsilon p^{\epsilon - 1} d\epsilon$ の 2 つの選択肢があります。

martingle スコアが $s(q_1、\dots、q_n)$ ($q_i=1 - \frac{\text{confidence}}}{100}$ を超える場合、関連付けられたタイムスタンプは、変更ポイントの検出に対してゼロ以外のアラート値を取得する可能性があります。 $\text{confidence}$ は DetectChangePointBySsa または DetectIidChangePoint のシグネチャで定義されていることに注意してください。

使用例へのリンクについては、「参照」セクションを参照してください。

メソッド

Fit(IDataView)

トランスフォーマーをトレーニングして返却します。

GetOutputSchema(SchemaShape)

トランスフォーマーのスキーマ伝達。 入力スキーマが指定されたスキーマと同じ場合は、データの出力スキーマを返します。

拡張メソッド

AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

エスティメーター チェーンに 'キャッシュ チェックポイント' を追加します。 これにより、ダウンストリームエスティメーターがキャッシュされたデータに対してトレーニングされます。 複数のデータを受け取るトレーナーが渡す前にキャッシュ チェックポイントを設定すると便利です。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

エスティメーターを指定すると、デリゲートを 1 回 Fit(IDataView) 呼び出すラップ オブジェクトが呼び出されます。 多くの場合、エスティメーターが適合した内容に関する情報を返すことが重要です。そのため Fit(IDataView) 、メソッドは一般的 ITransformerなオブジェクトではなく、具体的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> 多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得するエスティメーターがこのチェーンのどこかに埋もれる場所を介して EstimatorChain<TLastTransformer> 、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください