Frage

Ich habe einen Ereignisdatensatz in einer faktenlosen Tabelle.Es gibt eine Liste von Ereignissen

timestamp-> event name -> node ( In network)

Es gibt immer eine Abfolge von Ereignissen.Wie fange ich also an, zukünftige Ereignisse basierend auf vergangenen Ereignissen vorherzusagen und eine Liste der Knoten zu ermitteln, die von früheren Erfahrungen betroffen sein werden?

Ich bin Programmierer ohne Kenntnisse im maschinellen Lernen.Ich habe Spark, R installiert und habe einen Datensatz in der Oracle-Datenbank. Gibt es ein Tutorial/einen Algorithmus, den ich für den Einstieg verwenden kann?Ich habe mir Scala/R selbst beigebracht, habe aber keine Ahnung, wie ich anfangen soll.Mein Datensatz ist riesig, d.h.mehr als 9 Milliarden Zeilen für 3 Monate.

Node            Eventtime       alarmname
192.168.1.112   6/14/2016 19:41 Main power supply has a fault alarm
192.168.1.113   6/14/2016 19:23 Association path broken
192.168.1.113   6/14/2016 19:23 NA
192.168.1.113   6/14/2016 19:23 Association broken
192.168.1.112   6/14/2016 19:23 Mains Failure
192.168.1.112   6/14/2016 19:23 Mains Failure

Weitere Informationen:

Ich habe 98 Knoten.Ich möchte vorhersagen:

ich.Nein des Knotens, der Alarm hat oder sinkt, wenn ein einzelner Knoten zB unterwegsWenn Knoten A einen Alarm hat, wenn in einem Monat eine Liste der Knoten vorhanden ist, die im gleichen Zeitraum einen Alarm hatten

ii.Die Reihenfolge des Auftretens von Ereignissen, d. h.Wenn ein Knoten einen Netzausfall hat, wäre das nächste Ereignis ein Knotenausfall.

War es hilfreich?

Lösung

Das Problem, mit dem Sie konfrontiert sind, ist ein Zeitfolgen Problem. Ihre Ereignisse sind Kategorien, die ein spezifischer Fall sind (also die häufigsten Techniken wie Arima und Fourier-Transformation sind irrelevant).

Versuchen Sie vor dem Einstieg in die Analyse herauszufinden, ob die Ereignisse zwischen Knoten unabhängig sind. Wenn sie unabhängig sind, können Sie sie in Sequenzen pro Knoten unterteilen und analysieren. Wenn dies nicht der Fall ist (z. B. "Hauptstromversorgung hat einen Fehleralarm" auf dem Knoten X angibt dasselbe Ereignis auf dem Knoten y), sollten Sie die kombinierte Sequenz. Irgendwann, selbst wenn die Sequenz abhängig ist, können Sie durch die Verwendung der Perknotensequenz als zusätzliche Daten gewinnen.

Ihr Datensatz ist ziemlich groß, was bedeutet, dass die Berechnung einige Zeit dauert. Ihre Daten sind wahrscheinlich laut, also werden Sie wahrscheinlich einige Fehler haben. Daher empfehle ich, in kleinen Schritten von einfachen Modellen zu komplexeren Fortschritten voranzukommen.

Beginnen Sie mit beschreibenden Statistiken, nur um die Daten zu untersuchen. Wie viele Veranstaltungen haben Sie? Wie häufig sind sie? Wie hoch ist die Wahrscheinlichkeit der Ereignisse, die Sie vorhersagen möchten? Können Sie einige der Ereignisse als bedeutungslos entfernen (z. B. mit Domänenwissen)?

Falls Sie Domänenkenntnisse haben, die darauf hinweisen, dass jüngste Ereignisse die wichtigsten sind, hätte ich versuchen, auf der Grundlage der N -letzten Ereignisse vorherzusagen. Beginnen Sie mit 1 und wachsen Sie langsam, da die Anzahl der Kombinationen sehr schnell wächst und die Anzahl der Proben, die Sie für jede Kombination haben, klein werden und möglicherweise Fehler verursachen.

Unabhängig davon, dass das wichtige Ereignis nicht aktuell ist, versuchen Sie, diese Ereignisse in der Vergangenheit zu konditionieren.

In den meisten Fällen hilft Ihnen ein solches einfaches Modell, ein bisschen über der Grundlinie zu gelangen, aber nicht zu viel. Dann benötigen Sie komplexere Modelle. Ich empfehle die Verwendung Assoziationsregeln Das passt zu Ihrem Fall und hat viele Implementierungen.

Sie können weiter voranschreiten, aber zuerst diese Technik ausprobieren.

Die zuvor genannten Techniken geben Ihnen ein Modell, das die Wahrscheinlichkeit, dass ein Knoten ausgefallen ist, Ihre Frage (ii) beantwortet. Wenn Sie es auf der Abfolge der Knoten ausführen, können Sie die Anzahl der Knoten vorhergesagt, die die Beantwortung von Frage (i) nicht beantworten.

Andere Tipps

Für die von Ihnen genannten Ziele wird es so viele Folgeschritte geben (basierend auf den Ergebnissen in Schritt 1).Ich erwähne erste Schritte, um die Analyse auf die nächste Ebene zu heben.

Für das erste Ziel können Sie eine einfache bedingte Wahrscheinlichkeit für jeden Knoten für einen bestimmten Zeitfensterzeitraum berechnen.Hier erhalten Sie einen Überblick darüber, wie sich jeder Knoten auf andere Knoten auswirkt.Erkunden Sie außerdem das Bayes'sche Netzwerk anhand der Daten.Für die zweite Anforderung, wie von Dan Levin empfohlen, sind Assoziationsregeln ein guter Ausgangspunkt.Um den Prozess zu vereinfachen, können Sie mit zwei Hauptereignissen (möglicherweise Netzausfall und Verbindungspfadunterbrechung) aus den verfügbaren Ereignissen beginnen.Ordnen Sie die RHS-in-Assoziationsregeln wie erwähnt den beiden Hauptereignissen zu.Bei LHS handelt es sich um Ereignisse, die vor RHS-Ereignissen aufgetreten sind (berücksichtigen Sie ein Zeitfenster).Führen Sie nun Zuordnungsregeln für die Daten aus.Sie werden einige Vorläufer für die beiden betrachteten Ereignisse finden können.Die Implementierung der Assoziationsregeln in Spark finden Sie im folgenden Dokument:

R-Apriori:Ein effizienter Apriori-basierter Algorithmus auf Spark

Verknüpfung: http://www.iith.ac.in/~mkaul/papers/pikm09-rathee.pdf

Darüber hinaus ist es hilfreich, die Assoziationsregel zur Vorhersage zu verwenden, wenn die folgenden Punkte berücksichtigt werden

  1. Zwischen LHS und RHS muss eine Zeitverzögerung bestehen, d. h.Zeitlücke zwischen dem Vorereignis (wenn ein Knoten einen Netzausfall hat) und dem Folgeereignis der Regel (das nächste Ereignis wäre ein Knotenausfall)

  2. Die Vorhersageregel muss ein relativ stabiles Vertrauen in Bezug auf den durch die Anwendungsdomäne bestimmten Zeitrahmen haben, d. h.Führen Sie Assoziationsregeln für die gesamten 3-Monats-Daten aus. Sie erhalten mit einiger Sicherheit einige Regeln.Führen Sie nun die Assoziationsregeln monatsweise aus und prüfen Sie die Konfidenz derselben Regeln. Wenn die Konfidenz konsistent ist, können Sie diese Regeln in der Vorhersage mit Konfidenz  verwenden

Weitere Einzelheiten finden Sie unter:

http://link.springer.com/chapter/10.1007%2F11548706_11#page-1

Sie können auch Assoziationsregeln für Ziel 1 verwenden, indem Sie Knoten 1 in der linken Seite und alle Ereignisse nach Knoten 1 in der rechten Seite berücksichtigen.

Hoffe das hilft!!!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top