Beispiel #1
0
        /// <summary>
        /// Thuat toan apriori_gen, sinh ra tap ung vien C tu tap L(k-1)
        /// </summary>
        /// <param name="lPrevious">L(k-1)</param>
        /// <returns></returns>
        public static ItemSetsCollection AprioriGen(ItemSetsCollection lPrevious)
        {
            ItemSetsCollection result = new ItemSetsCollection();

            if (lPrevious.Count <= 1)
            {
                return(result);
            }

            int k = lPrevious[0].Count;

            for (int i = 0; i < lPrevious.Count - 1; i++)
            {
                Itemsets p = new Itemsets(lPrevious[i]);
                p.RemoveAt(k - 1);

                for (int j = i + 1; j < lPrevious.Count; j++)
                {
                    Itemsets q = new Itemsets(lPrevious[j]);
                    q.RemoveAt(k - 1);

                    if (p.IsEqual(q))
                    {
                        q.Add(lPrevious[i][k - 1]);
                        q.Add(lPrevious[j][k - 1]);
                        result.Add(q);
                    }
                }
            }
            return(result);
        }
Beispiel #2
0
        public Itemsets Remove(Itemsets itemsets)
        {
            Itemsets removed = new Itemsets();

            foreach (int item in this)
            {
                if (!itemsets.Contains(item))
                {
                    removed.Add(item);
                }
            }
            //removed.AddRange(from item in thiswhere !itemsets.Contains(item)select item);
            return(removed);
        }
Beispiel #3
0
        /// <summary>
        /// Lap tren datatable lay tu sql server do ve, Kiem tra cac ceil co gia tri la 1 thi them vao F
        /// </summary>
        /// <param name="dataTable"></param>
        /// <returns></returns>
        public static List <ItemSetsCollection> SinhTapFTuTapD(DataTable dataTable)
        {
            List <ItemSetsCollection> fResults = new List <ItemSetsCollection>();

            for (int i = 0; i < dataTable.Rows.Count; i++)
            {
                ItemSetsCollection tapCacMuc = new ItemSetsCollection();
                for (int j = 1; j < dataTable.Columns.Count; j++)
                {
                    if (dataTable.Rows[i][j].ToString().Equals("1"))
                    {
                        Itemsets muc = new Itemsets();
                        muc.Add(j);
                        tapCacMuc.Add(muc);
                    }
                }
                tapCacMuc.tid = dataTable.Rows[i][0].ToString();
                fResults.Add(tapCacMuc);
            }
            return(fResults);
        }
Beispiel #4
0
        public ItemSetsCollection findSubSet()
        {
            ItemSetsCollection result = new ItemSetsCollection();

            for (int i = 1; i < this.Count; i++)
            {
                result.Add(new Itemsets(this[i - 1]));
                ItemSetsCollection newSubsets = new ItemSetsCollection();
                for (int j = 0; j < result.Count; j++)
                {
                    Itemsets newSubset = new Itemsets();
                    newSubset.AddRange(result[j]);
                    newSubset.Add(this[i]);
                    newSubsets.Add(newSubset);
                }

                result.AddRange(newSubsets);
            }
            result.Add(new Itemsets(this[this.Count - 1]));
            return(result);
        }