I am curious if sequential pattern mining algoritmhs fill a unique gap or the same thing can be achieved with alternative methods for example wih machine learning or something else. Do you know any alternative methodology that can achieve the same thing? (For me this would be relevant, because if there is an alternative method I can compare them in my thesis.)
Seq2Pat: Sequence-to-Pattern Generation Library might be relevant to your case.
The library is written in Cython to take advantage of a fast C++ backend with a high-level Python interface. It supports constraint-based frequent sequential pattern mining.
Here is an example that shows how to mine a sequence database while respecting an average constraint for the prices of the patterns found.
# Example to show how to find frequent sequential patterns # from a given sequence database subject to constraints from sequential.seq2pat import Seq2Pat, Attribute # Seq2Pat over 3 sequences seq2pat = Seq2Pat(sequences=[["A", "A", "B", "A", "D"], ["C", "B", "A"], ["C", "A", "C", "D"]]) # Price attribute corresponding to each item price = Attribute(values=[[5, 5, 3, 8, 2], [1, 3, 3], [4, 5, 2, 1]]) # Average price constraint seq2pat.add_constraint(3 <= price.average() <= 4) # Patterns that occur at least twice (A-D) patterns = seq2pat.get_patterns(min_frequency=2)
Notice that sequences can be of different lengths, and you can add/drop other Attributes and Constraints. The sequences can be any string, as in the example, or integers.
Another source that might be relevant is SPMF
Hope this helps!
Disclaimer: I am a member of the research collaboration between Fidelity & CMU on the Seq2Pat Library.