Kann mir jemand einen Hinweis auf einen guten Ansatz geben, um häufige Muster in einer einzigen Sequenz zu finden?
Zum Beispiel gibt es die einzelne Sequenz
3 6 1 2 7 3 8 9 7 2 2 0 2 7 2 8 4 8 9 7 2 4 1 0 3 2 7 2 0 3 8 9 7 2 0
Ich suche nach einer Methode, die häufige Muster in dieser geordneten Reihenfolge erkennen kann:
3 6 1 [2 7] 3 [8 9 7 2] 2 0 [2 7] 2 8 4 [8 9 7 2] 4 1 0 3 [2 7] 2 0 3 [8 9 7 2] 0
Auch andere Informationen wären interessant wie:
- Wie groß ist die Wahrscheinlichkeit, dass 7 nach 2 kommt?
- Wenn jeder Nummer ein Zeitstempel zugewiesen ist, wie hoch ist das geschätzte Zeitintervall, in dem 7 nach 2 auftritt
Die von mir gefundenen sequentiellen Pattern-Mining-Methoden erfordern mehrere Sequenzen, aber ich habe eine große Sequenz, in der ich Regelmäßigkeiten erkennen möchte.
Vielen Dank für jede Hilfe!
Ich denke, Sie können den Apriori-Algorithmus verwenden . Zählen Sie die Anzahl der einzelnen Elemente in der Sequenz. Wenn die Anzahl größer als ein Schwellenwert ist, ist das Element häufig. Zählen Sie dann die Anzahl der Paare häufiger Elemente. Fahren Sie mit der Anzahl der häufigen Tupel usw. fort.ε 4
quelle
Sie könnten so etwas wie das Folgende verwenden. Soweit ich weiß, verwendet SPADE auch etwas Ähnliches für mehrere Sequenzen.
Zuerst müssen Sie die Positionen aller Elemente in Ihrer Sequenz erfassen.
Länge: 1
Überprüfen Sie dann die Unterstützung dieser Elemente anhand der Mindestunterstützung, die Sie für häufige Sequenzen auswählen.
min_sup: 3
In Ihrem Fall müssen Sie die Elemente mit aufeinanderfolgenden Positionen finden. Sie können auch Platzhalter verwenden, aber in diesem Fall beträgt der Positionsunterschied mehr als 1 und Sie finden viel mehr Kandidaten.
Länge: 2
min_sup: 3
Sie können versuchen, die oberen Sequenzen basierend auf dem Ende zu kombinieren, oder Sie können einfach die Positionen überprüfen.
Länge: 3
min_sup: 3
Länge: 4
min_sup: 3
Es gibt nur ein Muster und Sie können es nicht mit sich selbst kombinieren, sodass der Abbau abgeschlossen ist.
Wenn wir die Untermuster von 8972 ausschließen.
min_sup: 3
Ich denke, es ist das gleiche wie die Muster, die Sie gefunden haben.
Eine weitere Option, um die 72 ebenfalls beizubehalten, da sie dreimal als Teilsequenz von 8972 und zweimal unabhängig von 8972 auftritt. Ich denke, dies sollte davon abhängen, ob Sie Überlappungen zulassen.
Hinweis: Ich denke nicht, dass sequentielles Pattern Mining als maschinelles Lernen betrachtet wird.
quelle