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); }
//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); }