fp_growth_pattern_miner
FP-growth frequent itemset miner for transaction datasets. The library
depends on the frequent_pattern_mining_protocols support library,
implements the generic pattern_miner_protocol defined in the
pattern_mining_protocols core library, and mines frequent itemsets
using recursive conditional pattern-base projection over a compact
FP-tree whose nodes store parent links directly, plus header-table node
chains derived from the final tree for direct conditional-base
reconstruction, without candidate generation.
Requires a dataset implementing transaction_dataset_protocol with
transactions represented as canonical sorted lists of unique declared
items.
API documentation
Open the ../../apis/library_index.html#fp_growth_pattern_miner link in a web browser.
Loading
To load this library, load the loader.lgt file:
| ?- logtalk_load(fp_growth_pattern_miner(loader)).
Testing
To test this library predicates, load the tester.lgt file:
| ?- logtalk_load(fp_growth_pattern_miner(tester)).
Features
FP-tree Construction: Builds a compact prefix tree from frequent items ordered by global support.
Header and Parent Links: Stores parent links directly in tree nodes and derives header-table node chains from the final tree so conditional pattern bases are reconstructed by walking parent links instead of using a separate node index.
Pattern Growth: Mines frequent itemsets recursively from conditional pattern bases without candidate generation.
Canonical Transactions: Validates that transactions are sorted, duplicate-free, and restricted to declared items.
Flexible Support Thresholds: Supports relative minimum support and absolute minimum support count.
Model Export: Mined pattern collections can be exported as predicate clauses or written to a file.
Options
The mine/3 predicate accepts the following options:
minimum_support/1: Relative minimum support threshold in the interval]0.0, 1.0]. The default is0.5.minimum_support_count/1: Absolute minimum support count. When both support options are provided, this option takes precedence.maximum_pattern_length/1: Maximum itemset length to mine. The default is1000, which is effectively capped by the longest transaction in the dataset.minimum_pattern_length/1: Minimum itemset length retained in the mined result. The default is1.
Pattern miner representation
The mined pattern miner result is represented by a compound term with the functor chosen by the implementation and arity 3. For example:
fp_growth_pattern_miner(ItemDomain, Patterns, Options)
Where:
ItemDomain: Canonical sorted list of declared dataset items.Patterns: List ofitemset(Items, SupportCount)terms ordered first by pattern length and then lexicographically.Options: Effective mining options used to mine the frequent itemsets.
References
Han, J., Pei, J., and Yin, Y. (2000) - “Mining frequent patterns without candidate generation”.