IidChangePointEstimator Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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. |