Experimentell: TrendMiner Anomalie-Erkennungsmodell

TrendMiner bietet ein benutzerdefiniertes Modell für die Erkennung multivariater Anomalien über seine Notebook- und Machine Learning Model-Tag-Funktionalität. 

Das TrendMiner Anomalie-Erkennungsmodell (Anomaly Detection Model) wird auf einer TrendHub-Ansicht trainiert, die die normalen Betriebsbedingungen Ihres Prozesses enthält. Nach dem Lernen der gewünschten Prozessbedingungen ist das Modell dann in der Lage, Anomalien bei neu eingehenden Daten zu erkennen.

Das Modell selbst kann innerhalb der eingebetteten Notebook-Funktionalität trainiert werden, nachdem es in eine TrendHub-Ansicht als DataFrame geladen wurde. Mehr Informationen über die Notebook-Funktionalität finden Sie hier.

Hinweis: Das Paket "anomaly_detection" ist experimentell. Die Funktionen in diesem Paket können in zukünftigen Versionen geändert oder entfernt werden.

  • Initiieren des Modells
  • Trainieren des Modells
  • Training auswerten
  • Ausführen des Modells innerhalb von Notebooks
  • Ausführen des Modells als Machine Learning Model-Tag

Initiieren des Modells

Das Anomalie-Erkennungsmodell wird über das Experimentierpaket bereitgestellt und kann wie folgt geladen werden:

from trendminer_experimental.anomaly_detection.model import TMAnomalyModel

# Instantiate the model
model = TMAnomalyModel()

 

Das Modell trainieren

Das Anomaliemodell basiert auf Self Organising Maps (SOM). Konzeptionell passt das Modell ein flexibles Gitter von Einheiten an den Trainingsdatensatz an. In der Trainingsphase versucht der Algorithmus, den Abstand zwischen den n-dimensionalen Trainingsdatenpunkten und den nächstgelegenen Einheiten zu minimieren, während er gleichzeitig versucht, das Gitter so glatt wie möglich zu halten, um eine Überanpassung an die Trainingsdaten zu vermeiden.

Um das Modell zu trainieren, laden wir zunächst eine TrendHub-Ansicht, die normale Betriebsbedingungen repräsentiert. Nach dem Laden der Ansicht kann das Modell trainiert werden. Der Benutzer kann die Anzahl der Iterationen festlegen, die für den Trainingsschritt verwendet werden.

# Loading TrendHub view: Normal Operation Conditions

from trendminer.views import Views

 

views = Views(client)

df_train = views.load_view('c3fa5b78-3df9-4fe4-b6d0-e0da4f19c24e')

 

# Training the model

q_error, topo_error =  model.fit(df_train, 500)# Training for 500 iterations

 

blobid0.png

blobid1.png

Training auswerten

Die Fit-Methode gibt eine Liste von Quantisierungs- und Topologiefehlern zurück. Der Quantisierungsfehler misst, wie weit die Trainingsdatenpunkte von den Einheiten im Gitter entfernt sind, während der topologische Fehler die Glattheit des Gitters misst und ein Hinweis auf eine Überanpassung ist.

  • Eine niedrigere Punktzahl bedeutet eine bessere Anpassung.
  • Die Fehler sollten bei jeder Iteration einen abnehmenden Trend aufweisen.
# Plot errors (requires matplotlib import)

plt.plot(q_error);

plt.plot(topo_error);

Ausführen des Modells innerhalb der Notebooks

Das TMAnomalyModel hat zwei Ausgangsvariablen: Anomaly_Class und Anomaly_Score. Die erste (Class) identifiziert einen Punkt als anomal oder nicht anomal, basierend auf dem Abstand des Punktes zur nächstgelegenen Einheit im Modell und dem Schwellenwert-Prozentsatz, den Sie beim Konvertieren des Modells in seine PMML-Darstellung angegeben haben. Letzteres, Score, ist der Abstand zwischen einem Punkt und der nächstgelegenen Einheit im Modell.

# Loading TrendHub view: Test data or New incoming data

from trendminer.views import Views

 

views = Views(client)

df_test = views.load_view('c3fa5b78-3df9-4fe4-b6d0-e0da4f19c24e')

 

# Run model (anomaly_class)

anomaly_class = model.predict(df_test, 0.99)

 

# Run model (anomaly_score)

anomaly_score =  model.score_samples(df_test)

blobid2.png

Führen Sie das Modell als Machine Learning Model-Tag aus

Sobald das Modell auf normales Verhalten trainiert ist, können wir das Modell auf der Scoring Engine von TrendMiner einsetzen. Dazu müssen wir das Modell in seine PMML-Form konvertieren. Das TMAnomalyModel verfügt über eine Utility-Methode zur Konvertierung des Modells in PMML (to_pmml). Diese Funktion nimmt zwei Argumente entgegen. Das erste Argument ist der Name des Modells. Das zweite Argument ist der Schwellenwert in Prozent.

Nach der Bereitstellung kann das Modell in der Funktion Machine Learning Model-Tag ausgewählt werden.

model_name = 'Demo_Anomaly_Detection'

 

zementis = ZementisModels(client)

 

# Convert model to PMML

model_pmml = model.to_pmml(model_name, 0.99)

 

# Deploy the model

model_id = zementis.deploy_model(model_pmml)

model_details = zementis.model_details(model_id)

blobid3.png

blobid4.png

Mehr Informationen

Weitere Informationen finden Sie in der Python-Experimental-Dokumentation.

Aktuelle Einschränkungen

Für dieses Modell gelten die Einschränkungen der Machine Learning Model-Tags.