Available algorithms

Candidate generation based

ModalAssociationRules.aprioriFunction
apriori(miner::Miner; verbose::Bool=true)::Nothing

Apriori algorithm, as described here but generalized to also work with modal logic.

Arguments

  • miner::M: miner containing the data and the extraction parameterization;
  • prune_strategy::Function=grow_prune: strategy to prune candidates between one iteration

and the successive;

  • verbose::Bool=false: print informations about each iteration.

See also grow_prune, Miner, MineableData.

source

TreeProjection based

FPGrowth

ModalAssociationRules.fpgrowthFunction
fpgrowth(miner::AbstractMiner; verbose::Bool=true)::Nothing

(Modal) FP-Growth algorithm, as described here.

Arguments

  • miner: miner containing the extraction parameterization;
  • X: data from which you want to mine association rules;
  • parallel: enable multi-threaded execution, using Threads.nthreads() threads;
  • distributed: enable multi-processing execution, with Distributed.nworkers() processes;
  • verbose: print detailed informations while the algorithm runs.

Requirements

This implementation requires a custom Bulldozer constructor capable of handling the given AbstractMiner. In particular, the following dispatch must be implemented:

Bulldozer(miner::MyMinerType, ith_instance::Integer)

See also AbstractMiner, Bulldozer, FPTree, HeaderTable, SoleBase.AbstractDataset

source

FPGrowth algorithm relies on two data structures, FPTree and HeaderTable. To know more about them and their, please refer to the documentation here data-structures.

FPGrowth algorithm relies on the following two routines.

ModalAssociationRules.patternbaseMethod
patternbase(
    item::Item,
    htable::HeaderTable,
    miner::AbstractMiner
)::ConditionalPatternBase

Retrieve the ConditionalPatternBase of fptree based on item.

The conditional pattern based on a FPTree is the set of all the paths from the tree root to nodes containing item (not included). Each of these paths is represented by an EnhancedItemset.

The EnhancedItemsets in the returned ConditionalPatternBase are sorted decreasingly by gsupport.

See also AbstractMiner, ConditionalPatternBase, EnhancedItemset, fpgrowth, FPTree, Item, Itemset, WorldMask.

source

Also, FPGrowth requires the Miner to remember the worlds associated with the extracted frequent itemsets. To add this functionality, we can define a new dispatch of initminingstate: it is automatically considered to enrich the miner, while building it together with fpgrowth as mining algorithm.

Anchored semantics

ModalAssociationRules.anchored_semanticsFunction
anchored_semantics(miner::M; kwargs...)::M where {M<:AbstractMiner}

Logic to be executed before the the algorithm wrapped within the miner; the goal is to make such an algorithm coherent with anchored semantics.

source