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
			};
		}
Example #2
0
        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
            };
        }
Example #3
0
        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
            });
        }
Example #4
0
        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));
        }