net.sf.jdmf.algorithms.association
Class AprioriAlgorithm

java.lang.Object
  extended by net.sf.jdmf.algorithms.AbstractDataMiningAlgorithm
      extended by net.sf.jdmf.algorithms.association.AprioriAlgorithm
All Implemented Interfaces:
DataMiningAlgorithm

public class AprioriAlgorithm
extends AbstractDataMiningAlgorithm

Implements the Apriori association algorithm as described in Data Mining: Practical Machine Learning Tools and Techniques (Second Edition) by Ian H. Witten and Eibe Frank (Morgan Kaufmann, 2005).

 1. Take all attributes and generate 1-item sets from them.
 2. Remove item sets with smaller coverage then required.
 3. Generate rules based on the remaining item sets.
 4. Mark rules accurate enough as association rules.
 5. Generate 2-item sets using the remaining 1-item sets.
 6. Repeat 2-3. First generate rules with one consequence, then with two etc.
 If a rule with a set of consequences is not accurate enough, then any rule
 with a superset of those consequences does not meet those requirements 
 either.
 7. Repeat 4, then 5-6 for 3-item sets and so on (if there are n attributes,
 then (n - 1)-item sets can be generated).
 8. Output all generated association rules with the required coverage
 and accuracy. 
 

Author:
quorthon

Constructor Summary
AprioriAlgorithm()
           
 
Method Summary
 DataMiningModel analyze(InputData inputData)
          Analyzes input data (attributes and decisions) and produces output data (rules, decision trees, clusters, ...).
 java.lang.Double getMinRuleAccuracy()
           
 java.lang.Integer getMinRuleCoverage()
           
 void setMinRuleAccuracy(java.lang.Double minRuleAccuracy)
           
 void setMinRuleCoverage(java.lang.Integer maxRuleCount)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AprioriAlgorithm

public AprioriAlgorithm()
Method Detail

analyze

public DataMiningModel analyze(InputData inputData)
Description copied from interface: DataMiningAlgorithm
Analyzes input data (attributes and decisions) and produces output data (rules, decision trees, clusters, ...).

See Also:
DataMiningAlgorithm.analyze(net.sf.jdmf.data.input.InputData)

getMinRuleCoverage

public java.lang.Integer getMinRuleCoverage()

setMinRuleCoverage

public void setMinRuleCoverage(java.lang.Integer maxRuleCount)

getMinRuleAccuracy

public java.lang.Double getMinRuleAccuracy()

setMinRuleAccuracy

public void setMinRuleAccuracy(java.lang.Double minRuleAccuracy)