Map<Integer,FrequentPatternMaxHeap> patterns = Maps.newHashMap();
requiredFeatures.sort();
for (int attribute : tree.attrIterableRev()) {
if (requiredFeatures.binarySearch(attribute) >= 0) {
log.info("Mining FTree Tree for all patterns with {}", attribute);
MutableLong minSupport = new MutableLong(minSupportValue);
FrequentPatternMaxHeap frequentPatterns = growth(tree, minSupport, k,
attribute, updater);
patterns.put(attribute, frequentPatterns);
outputCollector.collect(attribute, frequentPatterns);
minSupportValue = Math.max(minSupportValue, minSupport.longValue() / 2);
log.info("Found {} Patterns with Least Support {}", patterns.get(
attribute).count(), patterns.get(attribute).leastSupport());
}
}
return patterns;