Ich arbeite mit Sequenzdaten, bei denen es sich um lange Listen von Malware-Win-API-Aufrufen handelt. Ich versuche, das Problem der Identifizierung von "Malware-Verhalten" in eine Suche nach sequentiellen Mustern umzuwandeln. Ich behandle jeden API-Aufruf als einen einzelnen Artikel. Die Anzahl der verschiedenen möglichen Elemente (API-Aufrufe) ist ziemlich groß.
Wenn ich nun den SPADE-Algorithmus anwende (siehe auch Zaki, SPADE: Ein effizienter Algorithmus für das Mining häufiger Sequenzen , Maschinelles Lernen, 42, 31–60, 2001) , stoße ich auf Speicherprobleme. Gibt es eine bessere Alternative, um sequentielle Muster unter großen Sequenzen mit hohem Wortschatz zu finden?
Antworten:
Sie können die Daten zusammen mit den über Schiebefenster berechneten Statistiken und den kumulativen Statistiken einem Feature-Space zuordnen, in dem die Reihenfolge wichtig ist, und diese in einem Entscheidungsbaum verwenden.
Ein Entscheidungsbaum kann sowohl Sequenzen als auch nicht sequentielle Daten verarbeiten. Dies kann Ihre Datenkomplexität erheblich reduzieren.
quelle
Sie können einen anderen sequentiellen Pattern-Mining-Algorithmus ausprobieren.
Zum Beispiel bietet die Open-Source-Java-Data-Mining-Bibliothek SPMF SPADE, aber auch PrefixSpan, SPAM, CM-SPAM, CM-SPADE, GSP usw. (ich bin übrigens der Projektgründer). Meines Wissens ist CM-SPADE normalerweise schneller als SPADE. In Bezug auf den Speicher verbraucht SPAM möglicherweise weniger Speicher. Sie könnten es versuchen.
quelle