Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }