Im Bereich der Anomalie-Erkennung sind präzise und robuste Indikatoren essenziell, um ungewöhnliche Muster in den Daten zuverlässig zu identifizieren. Eine weit verbreitete Methode ist der Smoothed Anomaly Index (SI), der durch die Berechnung von Durchschnittswerten und Standardabweichungen über ein gleitendes Fenster Abweichungen glättet und präziser darstellt. In diesem Beitrag erläutern wir, wie der SI funktioniert und zeigen, wie man ihn programmatisch umsetzt.
Warum ist der Smoothed Anomaly Index wichtig?
Die herkömmliche Erkennung von Anomalien basiert oft auf einfachen Grenzwerten, die eine bestimmte Abweichung signalisieren. Diese Methoden stoßen jedoch bei stark schwankenden Daten schnell an ihre Grenzen. Der Smoothed Anomaly Index bietet hier eine Lösung: Er berechnet über ein definiertes Fenster die Durchschnittswerte und Standardabweichungen der Daten, wodurch er temporäre Schwankungen glättet und eine zuverlässigere Erkennung von Anomalien ermöglicht. Der SI eignet sich besonders für Anwendungen wie:
Prozessüberwachung in der Produktion
Anomalien im Netzwerkverkehr
Früherkennung von Maschinenausfällen durch Condition Monitoring
Die Funktionsweise des Smoothed Anomaly Index
Der SI berechnet die Differenz zwischen aktuellen Datenpunkten und dem gleitenden Durchschnittswert über ein festgelegtes Fenster. Diese Differenz wird dann durch die Standardabweichung normalisiert. Dadurch werden Anomalien in den Daten klarer identifiziert, ohne dass kurzfristige Schwankungen zu Fehlalarmen führen.
Implementierung des Smoothed Anomaly Index
Im Folgenden sehen Sie ein einfaches Python-Code-Snippet zur Berechnung des SI. Dabei wird ein gleitendes Fenster genutzt, um den gleitenden Durchschnitt und die Standardabweichung zu berechnen:
import numpy as np
import pandas as pd
# Beispielhafte Zeitreihen-Daten
data = [100, 102, 101, 150, 103, 104, 250, 105, 107, 200]
# Fenstergröße für den gleitenden Durchschnitt und die Standardabweichung
window_size = 3
# In eine Pandas DataFrame konvertieren
df = pd.DataFrame(data, columns=["value"])
# Berechnung des gleitenden Durchschnitts (moving average)
df["moving_avg"] = df["value"].rolling(window=window_size).mean()
# Berechnung der Standardabweichung (moving standard deviation)
df["moving_std"] = df["value"].rolling(window=window_size).std()
# Berechnung des Smoothed Anomaly Index (SI)
df["SI"] = (df["value"] - df["moving_avg"]) / df["moving_std"]
# Nullwerte (die durch die ersten Fenster entstehen) entfernen
df.dropna(inplace=True)
print(df)
Erläuterung des Code-Snippets
Daten: Wir verwenden hier ein Beispiel-Daten-Array, das typische Schwankungen einer Zeitreihe darstellen soll.
Gleitender Durchschnitt und Standardabweichung: Der rolling-Befehl in Pandas ermöglicht die Berechnung des gleitenden Durchschnitts und der Standardabweichung über ein festgelegtes Fenster.
SI-Berechnung: Für den Smoothed Anomaly Index wird die Differenz zwischen dem aktuellen Datenpunkt und dem gleitenden Durchschnitt berechnet und anschließend durch die Standardabweichung normalisiert.
Ergebnis: Das Ergebnis zeigt den SI-Wert für jeden Datenpunkt, der auf Basis des gleitenden Fensters berechnet wurde.
Vorteile des Smoothed Anomaly Index
Durch die Glättung über das gleitende Fenster wird die Anomalie-Erkennung robuster gegenüber kurzfristigen Ausschlägen. Dies ist besonders in Umgebungen wichtig, in denen es zu natürlichen Schwankungen kommen kann, wie z.B. bei Sensorwerten in der Produktion oder Netzwerkanalysen. Mit dem SI können solche Schwankungen ausgeglichen und tatsächliche Anomalien klarer hervorgehoben werden.
Der Smoothed Anomaly Index ist ein vielseitiges Werkzeug zur Erkennung von Anomalien, das besonders bei stark schwankenden Daten nützlich ist. Mit der richtigen Fenstergröße und Implementierung lässt sich der SI in verschiedensten Anwendungsfällen einsetzen, um aussagekräftige Ergebnisse zu erzielen.
Wenn Sie Unterstützung bei der Implementierung von Machine Learning-Lösungen, einschließlich der Anomalie-Erkennung, benötigen, stehen wir Ihnen bei der Durchführung Ihrer Projekte gerne zur Seite. Lassen Sie uns gemeinsam Ihre Daten zum Vorteil Ihres Unternehmens nutzen!
Comments