Пример #1
0
        public static List <Birliktelik> BirlitelikBul(VeriToplami db, VeriToplami L, double GuvenEsik)
        {
            List <Birliktelik> tumKurallarListesi = new List <Birliktelik>();

            foreach (Veri veriler in L)
            {
                VeriToplami liste = Bit.AltKumeBul(veriler, 0);
                foreach (Veri altkume in liste)
                {
                    double Guven = (db.DestekBul(veriler) / db.DestekBul(altkume)) * 100.0;

                    if (Guven >= GuvenEsik)
                    {
                        Birliktelik kural = new Birliktelik();
                        kural.X.AddRange(altkume);
                        kural.Y.AddRange(veriler.Remove(altkume));
                        kural.Destek = db.DestekBul(veriler);
                        kural.Guven  = Guven;
                        if (kural.X.Count > 0 && kural.Y.Count > 0)
                        {
                            tumKurallarListesi.Add(kural);
                        }
                    }
                }
            }
            return(tumKurallarListesi);
        }
Пример #2
0
        //apiori algoritması.............................

        public static VeriToplami Apiori_1(VeriToplami db, double mindestek)
        {
            Veri        I  = db.DistincYap();
            VeriToplami L  = new VeriToplami();
            VeriToplami Li = new VeriToplami();
            VeriToplami Ci = new VeriToplami();

            foreach (string item in I)
            {
                Ci.Add(new Veri()
                {
                    item
                });
            }
            //ikinci terasyon kümeleme
            int k = 2;

            while (Ci.Count != 0)
            {
                Li.Clear();
                foreach (Veri veriler in Ci)
                {
                    veriler.Destek = db.DestekBul(veriler);

                    if (veriler.Destek >= mindestek)
                    {
                        Li.Add(veriler);
                        L.Add(veriler);
                    }
                }

                Ci.Clear();
                Ci.AddRange(Bit.AltKumeBul(Li.DistincYap(), k));

                k = k + 1;
            }

            return(L);
        }