De bons packages d '«exploration de séquences fréquentes» en Python?

12

Quelqu'un a-t-il utilisé (et aimé) de bons packages "d'exploration de séquences fréquentes" en Python autres que le FPM dans MLLib? Je recherche un package stable, de préférence encore maintenu par des personnes. Je vous remercie!

Edamame
la source

Réponses:

6

Le seul que j'ai trouvé est: https://github.com/bartdag/pymining

ils ont une implémentation de BIDElà mais ce n'est pas du code maintenu.

PS Je rejoins votre question: - |

yossico
la source
Juste pour clarifier, il n'a pas mis en œuvre BIDE qui mine des séquences fermées fréquentes. Il a en fait implémenté PrefixSpan qui exploite toutes les séquences fréquentes. PrefixSpan et BIDE partagent le même cadre d'énumération des modèles, et c'est pourquoi les auteurs ont cité l'article BIDE.
Chuancong Gao
Ce que j'ai fait à la fin est utilisé: philippe-fournier-viger.com/spmf - C'est une bibliothèque JAVA mais je l'ai enveloppé de python pour répondre à mes besoins
yossico
6

Je maintiens activement une implémentation efficace de PrefixSpan et de BIDE en Python 3, prenant en charge l'extraction de modèles séquentiels fréquents et top-k (fermés).

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

Chuancong Gao
la source
J'aimerais les implémenter en javascript, mais je ne comprends pas bien comment ces algorithmes fonctionnent. Pouvez-vous l'expliquer en anglais simple?
inf3rno
Je vous suggère de vérifier ma mise en œuvre minimale d'origine de PrefixSpan. Sa partie centrale ne prend que 15 lignes. gist.github.com/chuanconggao/4df9c1b06fa7f3ed854d5d96e2ae499f
Chuancong Gao
Merci! Je vais essayer de le traduire en js, mais ce ne sera pas facile. :-) Afaik PrefixSpan construit des bases de données projetées en fonction de la correspondance du préfixe. Je lis actuellement sur BIDE, qui est la théorie est un algorithme encore meilleur.
inf3rno
Il existe trop de différences entre les collections js et python. Je n'ai pas réussi à reproduire le code en js. Je réessaierai plus tard.
inf3rno
Je ne sais pas si cela aide, mais j'ai une autre version Scala de PrefixSpan. github.com/chuanconggao/PrefixSpan-scala Cependant, je vous suggère fortement de bien comprendre l'algorithme avant de l'implémenter.
Chuancong Gao
1

J'ai utilisé la fonction fpgrowth de fim dans le passé et cela a bien fonctionné. C'est un peu pénible à installer sur les machines Windows cependant. Il semble que ce soit un site Web universitaire, donc je ne sais pas s'ils font de nombreuses mises à jour du code au fil du temps ...

Jed
la source
1

Avez-vous pensé à l'écrire vous-même? Parce qu'il n'y a probablement pas de bibliothèque maintenue à jour en ce moment.

Vérifiez cela, c'est la base - les modèles PrefixSpan et Closed / Maximal ne sont en fait pas si difficiles à mettre en œuvre:

http://sequenceanalysis.github.io/

HonzaB
la source