Anomalieerkennung anhand von Zeitreihen

Wichtig

Der Support für Machine Learning Studio (klassisch) endet am 31. August 2024. Es wird empfohlen, bis zu diesem Datum auf Azure Machine Learning umzustellen.

Ab dem 1. Dezember 2021 können Sie keine neuen Ressourcen in Machine Learning Studio (klassisch) mehr erstellen. Bis zum 31. August 2024 können Sie die vorhandenen Ressourcen in Machine Learning Studio (klassisch) weiterhin verwenden.

Die Dokumentation zu ML Studio (klassisch) wird nicht mehr fortgeführt und kann künftig nicht mehr aktualisiert werden.

Erkennt Anomalien in den Eingabezeitreihendaten.

Kategorie: Zeitreihe

Hinweis

Giltnur für: Machine Learning Studio (klassisch)

Ähnliche Drag & Drop-Module sind im Azure Machine Learning-Designer verfügbar.

Modulübersicht

In diesem Artikel wird beschrieben, wie Sie das Time Series-Erkennungsmodul in Machine Learning Studio (klassisch) verwenden, um Anomalien in Zeitreihendaten zu erkennen. Das Modul lernt die normalen Betriebseigenschaften einer Zeitreihe, die Sie als Eingabe bereitstellen, und verwendet diese Informationen, um Abweichungen vom normalen Muster zu erkennen. Das Modul kann sowohl Änderungen im Gesamttrend erkennen als auch Änderungen an der Größe oder des Wertebereichs.

Die Erkennung von Änderungen in Zeitreihendaten weist breite Anwendungen auf. Sie können es z. B. für die Echtzeitüberwachung von Sensoren, Netzwerken oder Ressourcennutzung verwenden. Durch Nachverfolgen von Dienstfehlern, Dienstnutzung und anderen KPIs können Sie schnell auf kritische Anomalien reagieren. Weitere Anwendungen umfassen Gesundheitsversorgung und Finanzen.

Anomalieerkennungsmethoden

Die Anomalieerkennung ist das Problem, Muster in Daten zu finden, die nicht einem Modell des "normalen" Verhaltens entsprechen. Typische Ansätze für die Erkennung solcher Änderungen verwenden entweder einfache menschliche berechnete Schwellenwerte oder Mittel- und Standardabweichung, um zu bestimmen, wann Daten erheblich vom Mittel abweichen.

Solche einfachen Ansätze sind jedoch nicht einfach an Zeitreihendaten angepasst:

  • Große Anzahl falscher Anomalien werden generiert.

  • Die Methoden gelten nicht für die Änderung von Datenwerten

  • Keine einfache Skalierung auf große Zeitreihen

Dieses Modul bietet zwei zusätzliche Methoden zur Bewertung der Varianz aus einem Zeitreihentrend:

  • Messen der Höhe von Auf- und Abwärtsänderungen

    Beispielsweise kann die Anzahl der Anforderungen an einem Webdienst für einige Zeit am besten geeignet sein und dann dramatisch erhöht werden.

  • Messen der Richtung und Dauer von Trends: positive vs. negative Änderungen

    Beispielsweise kann ein beständiger Aufwärtstrend in der Länge einer Dienstwarteschlange ein zugrunde liegendes Problem angeben. Obwohl der Gesamttrend kontinuierlich steigt und daher als stabil betrachtet wird, könnte eine Änderung der Neigung als Anomaly gekennzeichnet werden. Wenn Sie die Speichernutzung eines Servers überwachen, kann eine konstante Verringerung der Größe des freien Arbeitsspeichers auf ein Problem hinweisen.

Beispiele für anomale Muster in Zeitreihen

Aufwärts- und Abwärtsebenenänderungen

Angenommen, Sie haben die Anzahl der Anforderungen pro Tag auf einen Webdienst über einen Zeitraum überwacht, und die Anzahl der Anforderungen scheint innerhalb eines bestimmten Bereichs zu bleiben. Nach einem Update auf den Webdienst ändert sich jedoch die Anzahl der Anforderungen an diesen Webdienst. Der neue Trend kann entweder höher oder niedriger als der ursprüngliche Trend sein; Sowohl nach oben als auch nach unten können Spitzungen erkannt werden.

upward and downward level changes

Positive oder negative Trends

Angenommen, Sie überwachen die Länge einer Warteschlange auf einer Dienstsupportwebsite. Ein beständiger Aufwärtstrend kann auf ein zugrunde liegendes Dienstproblem hinweisen.

In anderen Fällen kann ein beständiger negativer Trend die Anomalie sein. Wenn Sie beispielsweise die Speichernutzung auf einem Server überwachen, wenn die freie Speichergröße verkleinert, könnte ein potenzielles Speicherleck angegeben werden.

positive or negative trend change

Ressourcen

Weitere Informationen zur Forschung, die diesem Ansatz zugrunde liegt, finden Sie in den folgenden Artikeln:

So konfigurieren Sie die Time Series Anomaly Detection

  1. Fügen Sie das Time Series Anomaly Detection-Modul zu Ihrem Experiment hinzu und verbinden Sie das Dataset, das die Zeitreihe enthält.

    Das als Eingabe verwendete Dataset muss mindestens eine Spalte enthalten, die Datumszeitwerte im Zeichenfolgenformat enthält, und eine andere Spalte, die die Trendwerte enthält, in einem numerischen Format. Andere Spalten werden ignoriert.

    Da jede Zeile einem Datenpunkt in der Zeitreihe entspricht, der den Wert zu diesem Zeitpunkt darstellt, sollte die Uhrzeitwerte eindeutig sein.

  2. Datenspalte: Wählen Sie eine einzelne Spalte in Ihrem Dataset aus, die numerische Datenwerte enthält. Diese Werte sind die Datenpunkte im Trend, den Sie modellieren möchten, z. B. Die Gesamtsummen der Bevölkerung im Laufe der Zeit, Kosten pro Monat oder Temperaturen über einen bestimmten Zeitraum.

  3. Zeitspalte: Wählen Sie eine einzelne Spalte in Ihrem Dataset aus, die den zugeordneten Zeitreihenwert enthält.

    Die Spalte muss gültige Datumszeitwerte enthalten, d. h. alle Datumsangaben müssen sich innerhalb des Bereichs der Datumsangaben befinden, die vom .NET Framework unterstützt werden.

    Die Spalte "Zeit" muss den Datentyp "DateTime" verwenden. Wenn sich Ihre Datumsangaben im Zeichenfolgenformat befinden, können Sie sie mithilfe des Moduls "Anwenden SQL Transformation" umwandeln oder sie mithilfe des Execute R Script-Moduls konvertieren. Wenn Ihre Datumsangaben als ganze Zahlen dargestellt werden, müssen Sie auch eine entsprechende Datumszeitkonvertierungsfunktion verwenden, um die Werte mithilfe eines gültigen Datumszeitformats darzustellen.

    Die folgende SQL-Anweisung ändert z. B. einen Excel seriellen Datumswert in ein Datumszeitformat:

     SELECT CAST([SerialDate]  AS SmallDateTime) as [NewValidDate] from t1;  
    

    Nachdem sich die Datumswerte im richtigen Format befinden, verwenden Sie das Modul "Metadaten bearbeiten", um den Spaltentyp auf DateTime festzulegen.

  4. Martingale Type: Wählen Sie die zu verwendende Martingale-Funktion aus.

    • PowerAvg. Diese Option ist eine marginalisierte Implementierung der Power Martingale.

      Der Standardwert ist PowerAvg ohne zusätzliche Parameter. Diese Option bietet einen stabileren Anomaliedetektor und sollte für die meisten Anforderungen geeignet sein.

    • Power. Eine nicht marginalisierte Implementierung der Power Martingale.

      Die Power-Option bietet Benutzern die Möglichkeit, einen Wert zwischen 0 und 1 für den Epsilon-Parameter bereitzustellen, um die Vertraulichkeit des Detektors zu steuern. Im Allgemeinen bedeutet ein höherer Epsilonwert eine höhere Vertraulichkeit für Anomalien, aber weniger Sicherheit.

    Eine Definition von Martingales und den Methoden, die in diesem Modul verwendet werden, finden Sie unter: Anomalieerkennung mithilfe von maschinellem Lernen, um Anomalien in Zeitreihendaten zu erkennen

  5. Seltsamkeitsfunktionstyp: Diese Option wird für bestimmte Arten von Anomalien verwendet. Drei Optionen werden unterstützt, die keine weiteren Parameter erfordern:

    • RangePercentile.

      Dies ist die Standardeinstellung und wird hauptsächlich für die Erkennung von Leveländerungen verwendet.

    • SlowPosTrend. Wählen Sie diese Option aus, um positive Trendänderungen zu erkennen.

    • SlowNegTrend. Wählen Sie diese Option aus, um negative Trendänderungen zu erkennen.

  6. Länge von Martingale - und Seltsamkeitswerten: Geben Sie die Größe des Verlaufsfensters an, das verwendet wird, um Martingale-Werte über den Hintergrundverlauf zu berechnen.

    Der Standardwert ist 500, Sie können jedoch eine beliebige ganze Zahl zwischen 0 und 5000 angeben. Für große Zeitreihen sollte der Standardwert gut funktionieren. Für kleinere Zeitreihen können Sie versuchen, den Wert für die erwartete Länge des ungewöhnlichen Verhaltens zu schätzen.

    Es wird empfohlen, diese beiden Parameter im Allgemeinen auf denselben Wert festzulegen.

  7. Länge von Seltsamkeitswerten: Geben Sie die Länge des Verlaufsfensters an, die zum Berechnen von Seltsamkeit an jedem Datenpunkt verwendet wird.

    Der Standardwert ist 500, Sie können jedoch eine beliebige ganze Zahl zwischen 0 und 5000 angeben.

    Dieser Parameter hat die gleichen Einschränkungen wie die Länge von Martingale. Das heißt, Sie sollten den Wert auf die geschätzte Anzahl von Datenpunkten festlegen, die zum Lernen des "normalen" Verhaltens erforderlich sind.

    Die Standardeinstellung von 500 funktioniert für die meisten Fälle gut, aber wenn die Skalierung, über die "Normalität" gemessen wird, variiert, kann es nützlich sein, die Länge von Fremdheitswerten einen größeren Wert als die Länge von Martingale zu machen.

    Wenn Sie beispielsweise Fehler überwachen und davon ausgehen, dass Datenpunkte in 15-min-Intervallen erfasst werden, kann die Zeit, die erforderlich ist, um den normalen Trend zu lernen, stark von Monat zu Monat variieren.

    Im Allgemeinen führt die Verwendung einer größeren Fenstergröße zu langsamerer Leistung, da das Modul über ein größeres Dataset lernen muss.

    Es wird empfohlen, diese beiden Parameter im Allgemeinen auf denselben Wert festzulegen.

  8. Warnungsschwellenwert: Geben Sie einen Wert an, über dem die Anomaliebewertung eine Warnung generiert.

    Der Standardwert ist 3.25, d. h. eine Warnung wird für jede Zeile generiert, die eine Bewertung von 3,25 oder mehr enthält. J

    Sie können eine beliebige Gleitkommanummer zwischen 0 und 100 angeben. Es gibt jedoch einen Handel zwischen Vertraulichkeit und Vertrauen in die Wahl des Schwellenwerts:

    • Ein niedrigerer Schwellenwert würde den Detektor zu Anomalien sensibler machen und mehr Warnungen generieren.

    • Ein niedrigerer Schwellenwert kann zu normalen Änderungen führen, die als Anomalien klassifiziert werden.

  9. Führen Sie das Experiment aus.

    Beachten Sie, dass Sie dieses Modell nicht separat trainieren müssen; der Algorithmus lernt das Muster aus den Daten, die Sie als Eingabe für dieses Modul bereitstellen.

Ergebnisse

Wenn die Schulung abgeschlossen ist, gibt das Modul eine Zeitreihe aus, die dieselbe Länge wie die Eingabezeitreihe aufweist; Zwei Spalten werden jedoch hinzugefügt, um Werte anzugeben, die potenziell anomale sind.

  • Anomaly Score: Die erste Spalte enthält eine Bewertung, die die Wahrscheinlichkeit darstellt, dass der Zeitreihenwert anomalos ist.

  • Warnung: Diese Spalte enthält ein Flag mit einem Wert von 0 oder 1, wobei 1 bedeutet, dass eine Anomalie erkannt wurde. Sie können den Schwellenwert für das Generieren der Warnung basierend auf der Bewertungsspalte festlegen, aber den Warnungsschwellenparameter festlegen.

Beispiele

In den folgenden Beispielen wird veranschaulicht, wie sie die Martingale-Funktion festlegen, um Anomalien zu erkennen und die Ergebnisse zu interpretieren.

Erkennen von Änderungen auf Ebene

Um die Auswirkungen verschiedener Einstellungen zu veranschaulichen, besteht das in diesem Beispiel verwendete Beispieldatensatz aus 8870 Datenpunkten mit drei Ebenenänderungen. Basierend auf diesen Daten haben wir zwei Modelle mit den folgenden Parametern erstellt.

  • Martingale Type: PowerAvg

  • Seltsamkeitsfunktionstyp: RangePercentile

  • Länge von Martingale = 50

  • Länge der Fremdheitswerte = 50

Das Modell wurde auf den eingehenden Daten trainiert, aber ein anderer Wert wurde für den Warnungsschwellenwert angewendet. Die Ergebnisse der Vorhersage werden in den folgenden Bildern für Modell 1 und Modell 2 dargestellt. In diesen Diagrammen stellen die blauen Linien die Datenwerte dar, und die roten Linien stellen die Warnungen dar, die für eine Anomalie ausgelöst werden.

Warnungsschwellenwert von 0,9

level change with alert of 0.9

In diesem Modell ist der Schwellenwert niedriger und daher werden Warnungen ausgelöst (Anomalien erkannt), auch wenn die Änderungen momentär sind.

Je nach Art der Zeitreihe, die Sie überwachen, werden einige dieser Warnungen möglicherweise als falsche Warnungen betrachtet. Ein niedrigerer Schwellenwert kann jedoch bevorzugt werden, wenn Sie sich nicht leisten können, eine Anomalie zu übersehen.

Warnungsschwellenwert von 3.25

level change with alert of 3.25

In diesem Modell war der Warnungsschwellenwert viel höher und daher erkennt das Modell nur diese Änderungen, die länger bleiben. Ein höherer Schwellenwert für Warnungen kann in einem Szenario sinnvoller sein, in dem Sie nur langfristigere Änderungen fangen möchten.

Erkennen positiver Neigungsänderungen

Um diese Option für die Anomalieerkennung zu veranschaulichen, haben wir ein Beispieldatensatz mit 300 Datenpunkten verwendet. Alle Punkte bildeten insgesamt einen positiven Trend mit zwei Anomalien.

Erneut haben wir zwei Modelle mit Parametern erstellt, die mit Ausnahme des Warnungsschwellenwerts identisch waren.

  • Martingale Type: PowerAvg

  • Seltsamkeitsfunktionstyp: SlowPosTrend

  • Länge von Martingale = 50

  • Länge der Fremdheitswerte = 50

In diesen Diagrammen stellen die blauen Linien Datenwerte dar und die roten Linien stellen Warnungen dar, die für eine Anomalie ausgelöst werden.

Warnungsschwellenwert von 4.25

positive trend with alert of 4.25

Warnungsschwellenwert von 6.0

positive trend with alert threshold of 6.0

Es wird empfohlen, mit unterschiedlichen Warnungsschwellenwerten zu experimentieren, um die entsprechende Vertraulichkeitsstufe für Ihr Anomalieerkennungsszenario zu finden.

Erwartete Eingaben

Name type BESCHREIBUNG
Eingabedaten mit Zeitstempeln und Werten Datentabelle Eingabedaten mit Datumszeitstempeln und Werten.

Modulparameter

Name Typ Range Optional Standard BESCHREIBUNG
Wertspalte ColumnSelection Erforderlich Wählen Sie die Spalte aus, die die Zeitreihe enthält, um die Nachverfolgung zu verfolgen.
Fenstergröße Integer Erforderlich Geben Sie einen Wert an, der die Größe des Analysefensters steuert.
Schwellenwert Float Optional Geben Sie einen Wert an, der den Schwellenwert für die Bewertung bestimmt, um eine Anomalie zu identifizieren.

Ausgaben

Name type BESCHREIBUNG
Zeitreihen, die mit Anomalybewertungen versehen sind Datentabelle Dataset mit Omaly-Intervallen.

Siehe auch

Erkennung von Anomalien
Einklassige Support Vector Machine
PCA-basierte Anomalieerkennung