
@Title(value="APRIORI: Algorithm for Mining Association Rules") @Description(value="Searches for frequent itemsets") @Reference(authors="R. Agrawal, R. Srikant", title="Fast Algorithms for Mining Association Rules in Large Databases", booktitle="Proc. 20th Int. Conf. on Very Large Data Bases (VLDB \'94), Santiago de Chile, Chile 1994", url="http://www.acm.org/sigmod/vldb/conf/1994/P487.PDF") public class APRIORI extends AbstractAlgorithm<AprioriResult>
 Reference: 
 R. Agrawal, R. Srikant: Fast Algorithms for Mining Association Rules in Large
 Databases. 
 In Proc. 20th Int. Conf. on Very Large Data Bases (VLDB '94), Santiago de
 Chile, Chile 1994.
 
| Modifier and Type | Class and Description | 
|---|---|
static class  | 
APRIORI.Parameterizer
Parameterization class. 
 | 
| Modifier and Type | Field and Description | 
|---|---|
private static Logging | 
LOG
The logger for this class. 
 | 
private double | 
minfreq
Holds the value of  
MINFREQ_ID. | 
static OptionID | 
MINFREQ_ID
Optional parameter to specify the threshold for minimum frequency, must be
 a double greater than or equal to 0 and less than or equal to 1. 
 | 
private int | 
minsupp
Holds the value of  
MINSUPP_ID. | 
static OptionID | 
MINSUPP_ID
Parameter to specify the threshold for minimum support as minimally
 required number of transactions, must be an integer equal to or greater
 than 0. 
 | 
| Constructor and Description | 
|---|
APRIORI(double minfreq)
Constructor with minimum frequency. 
 | 
APRIORI(int minsupp)
Constructor with minimum support. 
 | 
| Modifier and Type | Method and Description | 
|---|---|
protected BitSet[] | 
frequentItemsets(Map<BitSet,Integer> support,
                BitSet[] candidates,
                Relation<BitVector> database)
Returns the frequent BitSets out of the given BitSets with respect to the
 given database. 
 | 
TypeInformation[] | 
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query. 
 | 
protected Logging | 
getLogger()
Get the (STATIC) logger for this class. 
 | 
protected BitSet[] | 
join(BitSet[] frequentItemsets)
Returns a set of BitSets generated by joining pairs of given BitSets
 (relying on the given BitSets being sorted), increasing the length by 1. 
 | 
protected BitSet[] | 
prune(Map<BitSet,Integer> support,
     BitSet[] candidates,
     int size)
Prunes a given set of candidates to keep only those BitSets where all
 subsets of bits flipping one bit are frequent already. 
 | 
AprioriResult | 
run(Database database,
   Relation<BitVector> relation)
Performs the APRIORI algorithm on the given database. 
 | 
makeParameterDistanceFunction, runprivate static final Logging LOG
public static final OptionID MINFREQ_ID
MINSUPP_ID).public static final OptionID MINSUPP_ID
MINFREQ_ID - setting
 MINSUPP_ID is slightly preferable over setting MINFREQ_ID
 in terms of efficiency.private double minfreq
MINFREQ_ID.private int minsupp
MINSUPP_ID.public APRIORI(double minfreq)
minfreq - Minimum frequencypublic APRIORI(int minsupp)
minsupp - Minimum supportpublic AprioriResult run(Database database, Relation<BitVector> relation)
database - the Database to run APRIORI onrelation - the Relation to processprotected BitSet[] prune(Map<BitSet,Integer> support, BitSet[] candidates, int size)
support - Support mapcandidates - the candidates to be prunedsize - size of the databaseprotected BitSet[] join(BitSet[] frequentItemsets)
frequentItemsets - the BitSets to be joinedprotected BitSet[] frequentItemsets(Map<BitSet,Integer> support, BitSet[] candidates, Relation<BitVector> database)
support - Support map.candidates - the candidates to be evaluateddatabase - the database to evaluate the candidates onpublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithmgetInputTypeRestriction in interface AlgorithmgetInputTypeRestriction in class AbstractAlgorithm<AprioriResult>protected Logging getLogger()
AbstractAlgorithmgetLogger in class AbstractAlgorithm<AprioriResult>