public String runHighUtility(double min, double supp) { if (apriori == null) { apriori = new APriori(); } loadData(); Console.WriteLine("Se cargaron los datos"); String line = ""; List <List <string> > freq = apriori.ItemsFrecuentes(transacciones, supp).Where(x => x.Count > 1).ToList(); Console.WriteLine("Se generaron los frecuentes"); var cons = listSales.GroupBy(x => x.docNum); foreach (var itemset in freq) { double utility = 0; List <String> names = new List <string>(); List <String> usados = new List <String>(); foreach (var trans in cons) { foreach (var vent in trans) { bool alguno = false; for (int i = 0; i < itemset.Count && !alguno; i++) { if (vent.itemCode.Equals(itemset[i])) { alguno = true; utility += vent.docTotal; if (!usados.Contains(itemset[i])) { usados.Add(itemset[i]); names.Add(listItems.First(x => x.itemCode == Convert.ToInt32(itemset[i])).itemName); } } } } } if (utility >= min) { line += "Los items: "; names.ForEach(x => line += x + ", "); line += " generan una utilidad de: $" + utility + "\n\n"; } } return(line); }
public List <ReglaAsociacion> runApriori(int supp, int trust) { loadData(); Console.WriteLine("Se cargaron los datos"); apriori = new APriori(); //loadTransactions(); Console.WriteLine("Se cargaron las transacciones"); List <List <string> > op = apriori.ItemsFrecuentes(transacciones, supp); Console.WriteLine("Se procesaron los itemsets"); List <ReglaAsociacion> reglas = apriori.ReglasAsociacion(transacciones, op, trust); return(reglas); }
public List <ReglaAsociacion> runClusterApriori(int supp, int trust, int clust, int clustersNumber, int botTHSales, int clusteringMethod) { Console.WriteLine("Calculando"); if (clusters.Count() == 0) { runClustering(clustersNumber, botTHSales, clusteringMethod); } cargarTransaccionesClust(clust); apriori = new APriori(); //loadTransactions(); Console.WriteLine("Se cargaron las transacciones"); List <List <string> > op = apriori.ItemsFrecuentes(transaccionesClust, supp); Console.WriteLine("Se procesaron los itemsets"); List <ReglaAsociacion> reglas = apriori.ReglasAsociacion(transaccionesClust, op, trust); return(reglas); }