FIM.BD_ARE -- crisp association rule mining (Spark)
Requires the spark extra (pip install -e ".[spark]", see Installation).
Mines crisp association rules from a set of frequent itemsets already computed (e.g. with
FIM.apriori.DApriori/DAprioriTID or FIM.Eclat.DECLAT), implementing
Algorithm 4 ("Spark procedure for association rule mining") of Fernandez-Basso, Ruiz &
Martin-Bautista (2024) -- see Citing ARMxtend. Rule generation is the part shared
by all three frequent-itemset-mining algorithms above.
generate_rules (sequential)
generate_rules(freq_itemsets, min_conf)
The plain-Python computation, useful for small itemset sets or for testing: for every frequent
itemset, generates all its possible antecedent/consequent splits and keeps those with confidence
>= min_conf.
association_rules_bd (distributed)
association_rules_bd(sc, freq_itemsets, min_conf)
Same computation as generate_rules, distributed across the cluster via a Spark flatMap +
filter over the candidate itemsets (broadcasting freq_itemsets so every partition can look up
antecedent/consequent supports).
Both take freq_itemsets (dict {itemset_key: support}, as returned by DApriori/DAprioriTID/
DECLAT) and min_conf (minimum confidence, in (0, 1]), and return
dict {(antecedent_key, consequent_key): confidence}.
from ARMxtend.FIM.apriori import DApriori
from ARMxtend.FIM.BD_ARE import association_rules_bd
freq_itemsets = DApriori.run(sc, transactions, min_supp=0.5)
rules = association_rules_bd(sc, freq_itemsets, min_conf=0.7)