michael-rapp / Apriori

A Java implementation of the Apriori algorithm for finding frequent item sets and (optionally) generating association rules
Apache License 2.0
30 stars 8 forks source link

ruleSet is null #3

Closed nirehs closed 7 years ago

nirehs commented 7 years ago

Junit test code is:

File inputFile = new File("c:/data1.txt");
double minSupport = 0.1;
double minConfidence = 0.2;
Apriori<NamedItem> apriori = new Apriori.Builder<NamedItem>(minSupport)
    .generateRules(minConfidence).create();
Iterator<Transaction<NamedItem>> iterator = new DataIterator(inputFile);
Output<NamedItem> output = apriori.execute(iterator);
RuleSet<NamedItem> ruleSet = output.getRuleSet();

if (ruleSet != null) {
    Iterator<AssociationRule<NamedItem>> iteratorItemSet = ruleSet.iterator();

    while (iteratorItemSet.hasNext()) {
        AssociationRule<NamedItem> itemSet = iteratorItemSet.next();
        System.out.println("result ............." + itemSet.toString());
    }
} else {
    System.out.println("ruleSet is null");
}

data1.txt content is:

bread   butter  sugar
coffee  milk    sugar
bread   coffee  milk    sugar
coffee  milk

run result is :

ruleSet is null

the support of "coffee milk " is 3/4=0.75, the confidence is 3/3=1,accord with minSupport = 0.1 and minConfidence = 0.2,ruleSet should has "coffee -> milk" at least.

michael-rapp commented 7 years ago

Fixed in version 1.1.1.