public void TestGenerateSubsets_Size4() { SetUp9(); List <String[]> subsets = AssociatonRule.GenerateSubsets(input2); Assert.IsTrue(subsets.Count() == 15); for (int i = 0; i < solution.Count(); i++) { for (int j = 0; j < solution.ElementAt(i).Count(); j++) { Assert.IsTrue(subsets.ElementAt(i).Contains(solution.ElementAt(i)[j])); } } }
public IEnumerable <String> dependencesbyDepartment(String department, int itemCode, double support) { try { List <int[]> itemsets = TransactionsByDepartment(department).SelectMany(t => t.Items).Distinct().Select(s => new int[] { s }).ToList(); List <List <int> > transactions = TransactionsByDepartment(department).Select(t => t.Items).ToList(); var frequent = Apriori.GenerateAllFrecuentItemsets(itemsets, transactions, support).ToList(); Rules = new Dictionary <int, List <int[]> >(); AssociatonRule.GenerateAllRules <int>(frequent, Rules); var y = Rules[itemCode]; return(formatItemSets(y)); } catch { return(null); } }
public void TestGenerateRules() { SetUp10(); Dictionary <string, List <string[]> > rules = new Dictionary <string, List <string[]> >(); AssociatonRule.GenerateRules(candidates, rules); var n = rules["Bread"]; Assert.IsTrue(n.Count() == 3); List <String[]> res = new List <string[]> { new[] { "Milk" }, new[] { "Eggs" }, new[] { "Milk", "Eggs" } }; for (int i = 0; i < res.Count(); i++) { Assert.IsTrue(n.ElementAt(i).SequenceEqual(res.ElementAt(i))); } n = rules["Milk"]; Assert.IsTrue(n.Count() == 3); res = new List <string[]> { new[] { "Bread" }, new[] { "Eggs" }, new[] { "Bread", "Eggs" } }; for (int i = 0; i < res.Count(); i++) { Assert.IsTrue(n.ElementAt(i).SequenceEqual(res.ElementAt(i))); } n = rules["Eggs"]; Assert.IsTrue(n.Count() == 3); res = new List <string[]> { new[] { "Bread" }, new[] { "Milk" }, new[] { "Bread", "Milk" } }; for (int i = 0; i < res.Count(); i++) { Assert.IsTrue(n.ElementAt(i).SequenceEqual(res.ElementAt(i))); } }
//********************************************************************************************** //************ RULES *************************************************************************** //********************************************************************************************** public void GenerateRules(double threshold) { Rules = new Dictionary <int, List <int[]> >(); AssociatonRule.GenerateAllRules <int>(Final_FrequentItemsets_Apriori(threshold), Rules); }