static List <ItemSet> join(List <ItemSet> itemsets) { List <ItemSet> newcandidateItemsets = new List <ItemSet>(); for (int i = 0; i < itemsets.Count() - 1; i++) { ItemSet itemset1 = itemsets[i]; for (int j = i + 1; j < itemsets.Count(); j++) { ItemSet itemset2 = itemsets[j]; itemset2.sort(); ItemSet newcandidate = NewCandidateItemSet(itemset1, itemset2); newcandidate.sort(); if (newcandidate.Count() != 0) { newcandidate.support = GetSupport(newcandidate); newcandidateItemsets.Add(newcandidate); } } } return(newcandidateItemsets); //foreach item[i] in itemsets to itemsets.length-1 //get item[i] //sort item[i].key //foreach item[j=1+1] in itemsets to itemsets //get item[j] //generate new candidate/itemset with item[i] and item[j] //if the candidate is not empty //get and add min support //add to candidates itemsets //setmy itemsets to candidates itemset //clear candidates itemsets }
private static List <ItemSet> retrieveParents(ItemSet iset, int p, List <ItemSet> allfreqItemsets) { List <ItemSet> parents = new List <ItemSet>(); for (int j = p; j < allfreqItemsets.Count(); j++) { ItemSet parent = allfreqItemsets[j]; if (parent.Count() == iset.Count() + 1) { if (parent.contains(iset)) { parents.Add(parent); } } } return(parents); }
private static List<ItemSet> retrieveParents(ItemSet iset, int p, List<ItemSet> allfreqItemsets) { List<ItemSet> parents = new List<ItemSet>(); for (int j = p; j < allfreqItemsets.Count(); j++) { ItemSet parent = allfreqItemsets[j]; if (parent.Count() == iset.Count() + 1) { if (parent.contains(iset)) { parents.Add(parent); } } } return parents; }