1

Ich habe ein Daten-Pipeline-System, wo alle Ereignisse in Apache Kafka gespeichert sind. Es gibt einen Event-Processing-Layer, der diese Daten (Zeitreihen) konsumiert und transformiert und dann den resultierenden Datensatz in Apache Cassandra speichert.K-Means auf Zeitreihendaten mit Apache Spark

Jetzt möchte ich Apache Spark verwenden, um einige maschinelle Lernmodelle für die Erkennung von Anomalien zu trainieren. Die Idee besteht darin, den k-Means-Algorithmus für die vergangenen Daten beispielsweise für jede einzelne Stunde an einem Tag auszuführen.

Zum Beispiel kann ich alle Ereignisse von 4 pm bis 5pm auswählen und ein Modell für dieses Intervall erstellen. Wenn ich diesen Ansatz anwende, erhalte ich genau 24 Modelle (Schwerpunkte für jede einzelne Stunde).

Wenn der Algorithmus gut funktioniert, kann ich die Größe meines Intervalls auf beispielsweise 5 Minuten reduzieren.

Ist es ein guter Ansatz, Anomalie-Erkennung bei Zeitreihendaten durchzuführen?

Antwort

1

Ich muss sagen, dass die Strategie gut ist, um die Outliers zu finden, aber Sie müssen sich um einige Schritte kümmern. Verwenden Sie zuerst alle Ereignisse alle 5 Minuten, um ein neues Centroid für das Ereignis zu erstellen. Ich denke, tahat könnte keine gute Idee sein.

Da Sie zu viele Zentroide verwenden, können Sie die Ausreißer sehr schwer finden, und das wollen Sie nicht.

Also lassen Sie uns eine gute Strategie sehen:

  1. eine gute Anzahl von K finden für Ihre K-Mittel.

    Das ist wirklich wichtig für das, wenn Sie zu viele oder zu wenige haben, können Sie eine schlechte Darstellung der Realität nehmen. So wählen Sie ein good K
  2. eine gute Ausbildung Nehmen Sie setzen

    Also, Sie nicht alle Daten zu verwenden, benötigen ein Modell jedes Mal, und jeden Tag zu schaffen. Sie sollten ein Beispiel nehmen, was normal ist. Sie müssen nicht nehmen, was nicht normal ist, denn das ist es, was Sie finden wollen. Verwenden Sie dies, um Ihr Modell zu erstellen und dann die Cluster zu finden.
  3. Testen Sie es!

    Sie müssen testen, ob es funktioniert oder nicht. Hast du ein Beispiel dafür, was du merkwürdig siehst? Und du hast jetzt einen Satz, der dir nicht fremd ist. Überprüfen Sie, ob es funktioniert oder nicht. Um zu helfen, können Sie Cross Validation
  4. verwenden

Also, Ihre Idee ist gut? Ja! Es funktioniert, aber stellen Sie sicher, dass Sie nicht im Cluster arbeiten. Und natürlich können Sie Ihre Daten jeden Tag mitnehmen, um Ihr Modell noch besser zu trainieren. Aber machen Sie diesen Prozess, um die Zentroide einmal am Tag zu finden. Und lassen Sie die Euclidian distance Methode herausfinden, was in Ihren Gruppen ist oder nicht.

Ich hoffe, dass ich Ihnen geholfen habe!