2012-04-01 4 views
1

Ich muss gemeinsame Muster in einer Datenbank von Sequenzen von Ereignissen finden. Also habe ich the longest common substring problem und the python implementation auf der Suche nach einer Lösung betrachtet.Gemeinsame Muster in einer Datenbank

Beachten Sie, dass ich nicht nur nach dem längsten gemeinsamen Teilstring suche: Ich akzeptiere kürzere häufige Teilstrings, die häufig in der Datenbank vorkommen.

Können Sie einen Algorithmus, Implementierungstricks oder allgemeinen Rat zu diesem Problem vorschlagen?

Antwort

1

Die vorherige Antwort vorgeschlagen Apriori. Aber Apriori ist ungeeignet, wenn Sie häufige Sequenzen finden wollen, weil Apriori die Zeit nicht berücksichtigt (auch Apriori ist ein ineffizienter Algorithmus).

Wenn Sie Untersequenzen suchen möchten, die mehreren Sequenzen gemeinsam sind, wäre es sinnvoller, einen sequenziellen Muster-Mining-Algorithmus wie PrefixSpan und SPAM zu verwenden.

Wenn Sie einige Vorhersagen treffen möchten, wäre eine andere Option auch die Verwendung eines sequenziellen Regel-Mining-Algorithmus.

Ich habe Open-Source-Java-Implementierungen von Sequenzmuster und sequenzielle Regel Mining-Algorithmus, die Sie von meiner Website herunterladen können: http://www.philippe-fournier-viger.com/spmf/

Ich glaube nicht, dass Sie mit 8 GB Daten in einem Schuss verarbeiten konnte diese Algorithmen. Aber es könnte ein Ausgangspunkt sein. Tatsächlich könnten einige dieser Algorithmen für den Fall sehr großer Datenbanken durch Implementieren einer plattenbasierten Strategie angepasst werden.

0

Haben Sie häufig verwendete Itemset Mining-Methoden wie Apriori berücksichtigt?

+0

Der mit mir zusammen arbeitende Maschinenbauingenieur sucht nach Daten, die während mehr als 20 Jahren erstellt wurden (ca. 8 GB und 5 Mio. Datensätze). Das letzte Ziel besteht darin, einen Berater für Wartungsaufgaben zu erstellen (etwa "Im aktuellen Zustand dieses Trucks müssen Sie diese Aufgaben erledigen"). Also, ja, ich habe den Apriori-Algorithmus in Betracht gezogen und einige interessante Assoziationen zwischen Ereignissen gefunden. Unser aktuelles Problem ist, ein anderes Modell zu finden, nur zum Vergleich. Mein Ansatzpunkt für die Verwendung einer Methode wie LCS ist, dass ich nur zwei Geschichten verarbeiten muss, um Muster zu finden. –