Je travaille avec des données de séquence qui sont de longues listes d'appels win-api de logiciels malveillants. J'essaie de jeter le problème de l'identification du «comportement de malware» dans celui de trouver des modèles séquentiels. Je traite chaque appel d'API comme un élément unique. Le nombre d'éléments différents possibles (appels api) est assez important.
Maintenant, lorsque j'applique l' algorithme SPADE (voir aussi, Zaki, SPADE: Un algorithme efficace pour extraire des séquences fréquentes , Machine Learning, 42, 31–60, 2001), je rencontre des problèmes de mémoire. Existe-t-il une meilleure alternative pour trouver des modèles séquentiels parmi les grandes séquences de vocabulaire élevé?
Réponses:
Vous pouvez mapper les données dans un espace d'entités où la séquence est importante, avec des statistiques calculées sur des fenêtres coulissantes et des statistiques cumulatives, et les utiliser dans un arbre de décision.
Un arbre de décision pourrait gérer à la fois des séquences et des données non séquentielles. Cela peut réduire considérablement la complexité de vos données.
la source
Vous pouvez essayer un autre algorithme d'exploration de motif séquentiel.
Par exemple, la bibliothèque d'exploration de données Java SPMF open-source propose SPADE, mais aussi PrefixSpan, SPAM, CM-SPAM, CM-SPADE, GSP, etc. (en passant, je suis le fondateur du projet). À ma connaissance, CM-SPADE est généralement plus rapide que SPADE. En termes de mémoire, le SPAM utilise peut-être moins de mémoire. Vous pouvez l'essayer.
la source