2017-07-06 3 views
0

I mehrere Signale für einen bestimmten Zeitraum und Zuordnen sie mit einem Zeitstempel am Tracing wie folgt:Anomalieerkennung mit maschinellem Lernen ohne Etikett

t0 1 10 2 0 1 0 ... 
t1 1 10 2 0 1 0 ... 
t2 3 0 9 7 1 1 ... // pressed a button to change the mode 
t3 3 0 9 7 1 1 ... 
t4 3 0 8 7 1 1 ... // pressed button to adjust a certain characterstic like temperature (signal 3) 

wobei t0 die Stampf Stempel sind, 1 ist der Wert für das Signal 1, 10 der Wert für Signal 2 und so weiter.

Die erfassten Daten während dieses bestimmten Zeitraums sollten als normaler Fall betrachtet werden. Nun sollten signifikante Abweichungen vom Normalfall erkannt werden. Bei einer signifikanten Ableitung bedeute ich NICHT, dass ein Signalwert sich nur in einen Wert ändert, der während der Verfolgungsphase nicht gesehen wurde, sondern dass sich viele Werte ändern, die noch nicht miteinander in Beziehung standen. Ich möchte keine Regeln fest codieren, da in Zukunft mehr Signale hinzugefügt oder entfernt werden können und andere "Modi", die andere Signalwerte haben, implementiert werden können.

Kann dies über einen bestimmten Machine Learning-Algorithmus erreicht werden? Wenn eine kleine Ableitung auftritt, möchte ich, dass der Algorithmus zuerst eine geringfügige Änderung des Trainingssatzes sieht und wenn sie in der Zukunft mehrfach auftritt, sollte sie "gelernt" werden. Das Hauptziel ist es, die größeren Veränderungen/Anomalien zu erkennen.

Ich hoffe, ich könnte mein Problem ausführlich genug erklären. Danke im Voraus.

Antwort

1

Sie könnten einfach den nächsten Nachbarn in Ihrem Merkmalsbereich berechnen und einen Schwellenwert festlegen, wie weit er von Ihrem Testpunkt entfernt sein darf, um keine Anomalie zu sein.

Können sagen, Sie 100 Werte in der „gewissen Zeitraum“ haben

so verwenden Sie einen 100 dimensionalen Merkmalsraum mit Trainingsdaten (die Anomalien nicht enthalten)

Wenn Sie eine bekommen Wenn Sie ein neues Dataset testen möchten, berechnen Sie den nächstgelegenen (k) nächsten Nachbarn und berechnen Sie die Entfernung (zB euklidisch) in Ihrem Bereich.

Wenn diese Entfernung größer als ein bestimmter Schwellenwert ist, ist das eine Anomalie. Was Sie tun müssen, um zu optimieren, ist ein gutes k und eine gute Schwelle zu finden. Z.B. durch Grid-Suche.

(1) Beachten Sie, dass so etwas wahrscheinlich nur funktioniert, wenn Ihre Daten einen festen Start- und Endpunkt haben. Sonst würden Sie eine große Menge an Daten benötigen und sogar, als würde es nicht so gut funktionieren.

(2) Hinweis Es sollte einen Versuch wert sein, für jeden "Modus", den Sie in Ihrer Frage erwähnt haben, einen eigenen Detektor zu erstellen.

Verwandte Themen