IidChangePointEstimator Klasse

Definition

Erkennen Sie eine Signaländerung auf einer unabhängigen identisch verteilten (i.i.d.) Zeitreihe basierend auf adaptiver Kerneldichteschätzung und Martingales.

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)
Vererbung

Hinweise

Verwenden Sie "DetectIidChangePoint", um diese Schätzung zu erstellen.

Eingabe- und Ausgabespalten

Es gibt nur eine Eingabespalte. Die Eingabespalte muss sein Single , in der ein Single Wert einen Wert im Zeitstempel in der Zeitreihe angibt.

Es erzeugt eine Spalte, die ein Vektor mit 4 Elementen ist. Der Ausgabevektor enthält sequenziell warnungsstufe (kein Nullwert bedeutet einen Änderungspunkt), Score, P-Wert und Martingale-Wert.

Stimatoreigenschaften

Muss dieser Schätzer die Daten untersuchen, um seine Parameter zu trainieren? No
Eingabespaltendatentyp Single
Ausgabespaltendatentyp 4-Elementvektor vonDouble
Exportierbar in ONNX No

Stimatoreigenschaften

ML-Aufgabe Anomalieerkennung
Ist normalisierung erforderlich? No
Ist zwischenspeichern erforderlich? No
Erforderliches NuGet zusätzlich zu Microsoft.ML Microsoft.ML.TimeSeries

Details des Schulungsalgorithmus

Dieser Trainer geht davon aus, dass datenpunkte, die in der Zeitreihe gesammelt werden, unabhängig von derselben Verteilung (unabhängig identisch verteilt) abgesampt werden. Daher kann der Wert im aktuellen Zeitstempel als Wert im nächsten Zeitstempel in Erwartung betrachtet werden. Wenn der beobachtete Wert beim Zeitstempel $t-1$ $p$ ist, würde der prognostizierte Wert bei $t$ Zeitstempel ebenfalls $p$ sein.

Anomaliebewertung

Sobald die rohe Bewertung zu einem Zeitstempel berechnet wurde, wird sie zur Anomaliebewertungskomponente gefüttert, um die endgültige Anomaliebewertung zu diesem Zeitpunkt zu berechnen. Es gibt zwei Statistiken, die an diesem Scorer, P-Wert und martingale Score beteiligt sind.

P-Wertbewertung

Die P-Wertbewertung gibt den P-Wert der aktuellen berechneten Rohbewertung entsprechend einer Verteilung von Rohergebnissen an. Hier wird die Verteilung basierend auf den neuesten Rohbewertungswerten bis zu einer bestimmten Tiefe zurück in der Geschichte geschätzt. Genauer gesagt wird diese Verteilung mit der Kerneldichteschätzung mit den gaussischen Kerneln der adaptiven Bandbreite geschätzt. Der P-Wertwert ist immer in $[0, 1]$, und der niedrigere Wert, desto wahrscheinlicher ist der aktuelle Punkt ein Ausreißer (auch als Spitzen bezeichnet).

Änderungspunkterkennung basierend auf der Martingale-Bewertung

Die Martingale-Bewertung ist eine zusätzliche Bewertungsebene, die auf den P-Wert-Bewertungen basiert. Die Idee basiert auf der Exchangeability Martingales , die eine Veränderung der Verteilung über einen Datenstrom von i.i.d.Werten erkennen. Kurz gesagt, der Wert der Martingalbewertung beginnt erheblich zu erhöhen, wenn eine Sequenz kleiner p-Werte in einer Zeile erkannt wurde; Dies gibt die Änderung der Verteilung des zugrunde liegenden Datengenerierungsprozesses an. Daher wird die Martingale-Bewertung für die Änderungspunkterkennung verwendet. Angesichts einer Sequenz der zuletzt beobachteten p-Werte, $p 1, \dots, p_n$, wird die Martingale-Bewertung als:? $s(p1, \dots, p_n) = \prod_{i=1}^n \beta(p_i)$. Es gibt zwei Optionen von $\beta$: $\beta(p) = e^{\epsilon - 1}$ für $0 < \epsilon < 1$ oder $\beta(p) = \int_{0}^1 \epsilon p^{\epsilon - 1} d\epsilon$.

Wenn die Martingle-Bewertung $s(q_1, \dots, q_n)$ überschreitet, wobei $q_i=1 - \frac{\text{confidence}}${100}, kann der zugeordnete Zeitstempel einen Nicht-Null-Warnungswert für die Änderungspunkterkennung erhalten. Beachten Sie, dass $\text{confidence}$ in den Signaturen von DetectChangePointBySsa oder DetectIidChangePoint definiert ist.

Überprüfen Sie den Abschnitt "Siehe auch", um Links zu Verwendungsbeispielen zu finden.

Methoden

Fit(IDataView)

Erkennen Sie eine Signaländerung auf einer unabhängigen identisch verteilten (i.i.d.) Zeitreihe basierend auf adaptiver Kerneldichteschätzung und Martingales.

(Geerbt von TrivialEstimator<TTransformer>)
GetOutputSchema(SchemaShape)

Gibt das SchemaShape Schema zurück, das vom Transformator erzeugt wird. Wird für die Schemaverteilung und Überprüfung in einer Pipeline verwendet.

Erweiterungsmethoden

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

Fügen Sie einen "Zwischenspeicherungsprüfpunkt" an die Schätzkette an. Dadurch wird sichergestellt, dass die nachgelagerten Schätzer anhand zwischengespeicherter Daten trainiert werden. Es ist hilfreich, einen Cache-Prüfpunkt vor Trainern zu haben, die mehrere Datendurchläufe übernehmen.

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

Wenn sie eine Schätzung erhalten, geben Sie ein Umbruchobjekt zurück, das einen Delegaten aufruft, sobald Fit(IDataView) er aufgerufen wird. Es ist häufig wichtig, dass ein Schätzer Informationen darüber zurückgibt, was passt, weshalb die Fit(IDataView) Methode ein speziell typiertes Objekt zurückgibt, anstatt nur ein allgemeines ITransformerObjekt zurückzugeben. IEstimator<TTransformer> Gleichzeitig werden jedoch häufig Pipelines mit vielen Objekten gebildet, daher müssen wir möglicherweise eine Kette von Schätzern erstellen, über EstimatorChain<TLastTransformer> die der Schätzer, für den wir den Transformator erhalten möchten, irgendwo in dieser Kette begraben wird. Für dieses Szenario können wir über diese Methode eine Stellvertretung anfügen, die aufgerufen wird, sobald sie aufgerufen wird.

Gilt für:

Weitere Informationen