Output IApriori.ProcessTransaction(double minSupport, double minConfidence, IEnumerable<string> items, string[][] transactions, string[] itemsD = null) { IList<Item> frequentItems = GetL1FrequentItems(minSupport, items, transactions); ItemsDictionary allFrequentItems = new ItemsDictionary(); allFrequentItems.ConcatItems(frequentItems); var candidates = new Dictionary<string[], double>(); double transactionsCount = transactions.Count(); do { candidates = GenerateCandidates(frequentItems, transactions, itemsD); frequentItems = GetFrequentItems(candidates, minSupport, transactionsCount); allFrequentItems.ConcatItems(frequentItems); } while (candidates.Count != 0); HashSet<Rule> rules = GenerateRules(allFrequentItems); IList<Rule> strongRules = GetStrongRules(minConfidence, rules, allFrequentItems); //Dictionary<string, Dictionary<string, double>> closedItemSets = GetClosedItemSets(allFrequentItems); // IList<string> maximalItemSets = GetMaximalItemSets(closedItemSets); return new Output { StrongRules = strongRules, MaximalItemSets = null, ClosedItemSets = null, FrequentItems = allFrequentItems }; }
Output IApriori.ProcessTransaction(double minSupport, double minConfidence, IEnumerable<string> items, string[] transactions) { IList<Item> frequentItems = GetL1FrequentItems(minSupport, items, transactions); ItemsDictionary allFrequentItems = new ItemsDictionary(); allFrequentItems.ConcatItems(frequentItems); IDictionary<string, double> candidates = new Dictionary<string, double>(); double transactionsCount = transactions.Count(); do { candidates = GenerateCandidates(frequentItems, transactions); frequentItems = GetFrequentItems(candidates, minSupport, transactionsCount); allFrequentItems.ConcatItems(frequentItems); } while (candidates.Count != 0); HashSet<Rule> rules = GenerateRules(allFrequentItems); IList<Rule> strongRules = GetStrongRules(minConfidence, rules, allFrequentItems); Dictionary<string, Dictionary<string, double>> closedItemSets = GetClosedItemSets(allFrequentItems); IList<string> maximalItemSets = GetMaximalItemSets(closedItemSets); return new Output { StrongRules = strongRules, MaximalItemSets = maximalItemSets, ClosedItemSets = closedItemSets, FrequentItems = allFrequentItems }; }
Output IApriori.ProcessTransaction(float minSupport, float minConfidence, float minLift, IEnumerable <string> items, string[][] transactions, string[] itemsD = null) { this.minSupport = minSupport; this.minConfidence = minConfidence; this.transactionsCount = transactions.Length; this.minLift = minLift; IList <Item> frequentItems = GetL1FrequentItems(items, transactions); ItemsDictionary allFrequentItems = new ItemsDictionary(); allFrequentItems.ConcatItems(frequentItems); var candidates = new Dictionary <string[], double>(); double transactionsCount = transactions.Count(); do { candidates = GenerateCandidates(frequentItems, transactions, itemsD); frequentItems = GetFrequentItems(candidates, transactionsCount); allFrequentItems.ConcatItems(frequentItems); } while (candidates.Count != 0); HashSet <Rule> rules = GenerateRules(allFrequentItems); IList <Rule> strongRules = GetStrongRules(minConfidence, rules, allFrequentItems); return(new Output { StrongRules = strongRules, FrequentItems = allFrequentItems }); }
public Output ProcessTransaction(double minSupport, double minConfidence, IEnumerable <string> items, string[] transactions) { Console.WriteLine("Computing frequentItems"); var frequentItems = GetFirstListOfFrequentItems(minSupport, items, transactions); var allFrequentItems = new ItemsDictionary(); allFrequentItems.ConcatItems(frequentItems); IDictionary <string, double> candidates; double transactionsCount = transactions.Length; do { candidates = GenerateCandidates(frequentItems, transactions); Console.WriteLine(candidates.Count + " candidates."); frequentItems = GetFrequentItems(candidates, minSupport, transactionsCount); allFrequentItems.ConcatItems(frequentItems); }while (candidates.Count != 0); Console.WriteLine("Computing output:..."); return(ComputeOutput(minConfidence, allFrequentItems)); }