Ejemplo n.º 1
0
        // generates frequent item set for k= 3+
        public List <FrequentItemSet> GenerateFrequentItemSet(List <FrequentItemSet> frequentItem, List <TransactionSet> hashedTransactionSet, int currentTupple, int support)
        {
            List <FrequentItemSet>  frequentitemSet         = new List <FrequentItemSet>();
            GenerateCandidateSet    gcs                     = new GenerateCandidateSet();
            List <CandidateItemSet> candidateItemSetAtLevel = gcs.GenerateCandidate(frequentItem, hashedTransactionSet, currentTupple, support);

            if (candidateItemSetAtLevel.Count() > 0)
            {
                foreach (var c in candidateItemSetAtLevel)
                {
                    int count = GetSupportCount(c, hashedTransactionSet, currentTupple);
                    if (count >= support)
                    {
                        FrequentItemSet fs = new FrequentItemSet();
                        fs.Values = new List <int>();
                        fs.Values.AddRange(c.Values);
                        fs.Count = count;
                        fs.Values.Sort();
                        frequentitemSet.Add(fs);
                    }
                }
            }

            return(frequentitemSet);
        }
Ejemplo n.º 2
0
        // generates frequent item set for k=2. Logic for K= is different as it doesnt need subset to be checked
        public List <FrequentItemSet> GenerateFrequentItemSet(List <HashMap> hashitems, List <TransactionSet> hashedTransactionSet, int currentTupple, int support)
        {
            List <FrequentItemSet>  fisATlevelk            = new List <FrequentItemSet>();
            GenerateCandidateSet    gcs                    = new GenerateCandidateSet();
            List <CandidateItemSet> frequentItemSetAtLevel = gcs.GenerateCandidate(hashitems, hashedTransactionSet, currentTupple, support);

            if (frequentItemSetAtLevel.Count > 0)
            {
                foreach (var c in frequentItemSetAtLevel)
                {
                    FrequentItemSet fs = new FrequentItemSet();
                    fs.Values = new List <int>();
                    fs.Values.AddRange(c.Values);
                    fs.Count         = c.Count;
                    fs.TransactionID = c.TransactionID;
                    fs.Values.Sort();
                    fisATlevelk.Add(fs);
                }
            }
            return(fisATlevelk);
        }