Gute "Frequency Sequence Mining" -Pakete in Python?

12

Hat jemand andere gute "Frequency Sequence Mining" -Pakete in Python als das FPM in MLLib verwendet (und gemocht)? Ich bin auf der Suche nach einem stabilen Paket, das vorzugsweise von Menschen gepflegt wird. Vielen Dank!

Edamame
quelle

Antworten:

6

Das einzige, was ich gefunden habe, ist: https://github.com/bartdag/pymining

Sie haben eine Implementierung von BIDEdort, aber es ist kein gepflegter Code.

PS Ich schließe mich Ihrer Frage an: - |

Yossico
quelle
Um dies zu verdeutlichen, wurde BIDE nicht implementiert, das häufig geschlossene Sequenzen abbaut. Es wurde tatsächlich PrefixSpan implementiert, das alle häufigen Sequenzen abbaut. PrefixSpan und BIDE verwenden dasselbe Framework für die Musteraufzählung, weshalb die Autoren das BIDE-Papier zitiert haben.
Chuancong Gao
Was ich am Ende getan habe, wird verwendet: philippe-fournier-viger.com/spmf - Es ist eine JAVA-Bibliothek, aber ich habe sie mit Python umwickelt, um meinen Bedürfnissen zu entsprechen
yossico
6

Ich pflege aktiv eine effiziente Implementierung von PrefixSpan und BIDE in Python 3 und unterstütze das Mining sowohl häufiger als auch top-k (geschlossener) sequentieller Muster.

https://github.com/chuanconggao/PrefixSpan-py

Chuancong Gao
quelle
Ich würde diese gerne in Javascript implementieren, aber ich verstehe nicht ganz, wie diese Algorithmen funktionieren. Können Sie es in einfachem Englisch erklären?
inf3rno
Ich schlage vor, Sie überprüfen meine ursprüngliche minimale Implementierung von PrefixSpan. Sein Kernteil besteht nur aus 15 Zeilen. gist.github.com/chuanconggao/4df9c1b06fa7f3ed854d5d96e2ae499f
Chuancong Gao
Vielen Dank! Ich werde versuchen, es in js zu übersetzen, aber es wird nicht einfach. :-) Afaik PrefixSpan erstellt projizierte Datenbanken basierend darauf, wo das Präfix übereinstimmt. Ich lese gerade über BIDE, was theoretisch ein noch besserer Algorithmus ist.
inf3rno
Es gibt zu viele Unterschiede zwischen js und Python-Sammlungen. Ich habe es nicht geschafft, den Code in js zu reproduzieren. Ich werde es später noch einmal versuchen.
inf3rno
Ich bin mir nicht sicher, ob es hilft, aber ich habe eine andere Scala-Version von PrefixSpan. github.com/chuanconggao/PrefixSpan-scala Ich empfehle jedoch dringend, dass Sie den Algorithmus vor der Implementierung vollständig verstehen.
Chuancong Gao
1

Ich habe in der Vergangenheit die fpgrowth-Funktion von fim verwendet und sie hat gut funktioniert. Die Installation auf Windows-Computern ist jedoch ziemlich mühsam. Es scheint eine akademische Website zu sein, daher bin ich mir nicht sicher, ob sie im Laufe der Zeit viele Aktualisierungen des Codes vornehmen ...

Jed
quelle
1

Hast du darüber nachgedacht, es selbst zu schreiben? Weil es momentan wahrscheinlich keine aktuell gepflegte Bibliothek gibt.

Schauen Sie sich das an, es ist das Grundlegende - PrefixSpan- und Closed / Maximal-Muster sind eigentlich nicht so schwer zu implementieren:

http://sequenceanalysis.github.io/

HonzaB
quelle