public List<Rule> extractApproxRules() {
        /*
         * pour chaque générateur g de {elements}
         *  Pour chaque superset de g
         *      nouvelle règle : g -> superSet - g / support(fermé(g)) / confiance = support(superset(g)) / support(fermé(g)) 
         *      si confiance < minConfidence ou confiance == 1, on n'enregistre pas la règle
         */
        generateSuperSets();
        List<Rule> result = new ArrayList<>();
        for (Element e : elements) {
            for (SuperSet superSet : e.getSuperSets()) {
                Set<Item> right = new HashSet<>();
                right.addAll(superSet.getSuperset());
                right.removeAll(e.getGenerator());
                Rule r = new Rule(e.getGenerator(), right);
                r.setSupport(superSet.getSupport());
                r.setConfidence(superSet.getSupport() / e.getSupport());
                if ((r.getConfidence() > minConfidence) && (r.getConfidence() < 1)
                        && (r.getSupport() > minSupport)) {
                    result.add(r);
                }
            }
        }
        return result;
    }