次の方法で共有


IidChangePointEstimator クラス

定義

アダプティブ カーネル密度推定とマルチガルに基づいて、 独立した同一分布 (i.i.d.) 時系列の信号変化を検出します。

public sealed class IidChangePointEstimator : Microsoft.ML.Data.TrivialEstimator<Microsoft.ML.Transforms.TimeSeries.IidChangePointDetector>
type IidChangePointEstimator = class
    inherit TrivialEstimator<IidChangePointDetector>
Public NotInheritable Class IidChangePointEstimator
Inherits TrivialEstimator(Of IidChangePointDetector)
継承

注釈

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

入力列と出力列

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

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

エスティメーターの特性

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

エスティメーターの特性

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

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

このトレーナーは、時系列で収集されたデータ ポイントが、同じ分布 (独立した同じ分散) から個別にサンプリングされることを前提としています。 したがって、現在のタイムスタンプの値は、期待される次のタイムスタンプの値として表示できます。 timestamp $t-1$ の観測値が $p$ の場合、$t$ タイムスタンプの予測値も $p$ になります。

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$: $\beta(p) = e p^{\epsilon - 1}$ for $0 < \epsilon < 1$ または $\beta(p) = \int_{0}^1 \epsilon p^{\epsilon - 1} d\epsilon$ の 2 つの選択肢があります。

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

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

メソッド

Fit(IDataView)

アダプティブ カーネル密度推定とマルチガルに基づいて、 独立した同一分布 (i.i.d.) 時系列の信号変化を検出します。

(継承元 TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

SchemaShapeトランスフォーマーによって生成されるスキーマの値を返します。 パイプラインでのスキーマの伝達と検証に使用されます。

拡張メソッド

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

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

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

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

適用対象

こちらもご覧ください