Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("*******************************************************");
            Console.WriteLine("Elija una opción:");
            Console.WriteLine("1. Depurar Datos de entrada (1)");
            Console.WriteLine("2. Correr algoritmo Apriori con busqueda intensiva (2)");
            Console.WriteLine("*******************************************************");
            Console.WriteLine("\n");

            Console.WriteLine("Ingrese valor de minSupport para los items (1-100)%");
            double       minS         = Convert.ToInt32(Console.ReadLine());
            FIGeneration fIGeneration = new FIGeneration(minS, true); //true ejemplo del libro, false datos allers

            fIGeneration.FrequentItemGeneration(3);                   // parametro tamaño k de k-itemset comniacion maximo
            //fIGeneration.AprioriFrequentItemGeneration();

            foreach (ItemSet itemset in fIGeneration.candidates)
            {
                String cods = "";
                itemset.items.ToList().ForEach(x => cods += x.Value.cod + " ");
                Console.WriteLine("Conjunto frecuente -> Support: " + itemset.countSupport + " Conjunto: " + cods);
            }

            //Console.ReadLine();
            Console.WriteLine("¡Terminó!");
            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public void setScene0()
        {
            esperados.Add("BREAD ", 4);
            esperados.Add("MILK ", 4);
            esperados.Add("DIAPERS ", 4);
            esperados.Add("BEER ", 3);
            esperados.Add("BREAD MILK ", 3);
            esperados.Add("BREAD DIAPERS ", 3);
            esperados.Add("MILK DIAPERS ", 3);
            esperados.Add("DIAPERS BEER ", 3);

            fIGeneration = new FIGeneration(60, true);//min support del 60%
            fIGeneration.FrequentItemGeneration(3);
        }
Ejemplo n.º 3
0
        public void setScene0()
        {
            esperados.Add("BREAD ", 4);
            esperados.Add("MILK ", 4);
            esperados.Add("DIAPERS ", 4);
            esperados.Add("BEER ", 3);
            esperados.Add("BREAD MILK ", 3);
            esperados.Add("BREAD DIAPERS ", 3);
            esperados.Add("MILK DIAPERS ", 3);
            esperados.Add("DIAPERS BEER ", 3);

            fIGeneration            = new FIGeneration();//min support del 60%
            fIGeneration.minSupport = 0.6;
            Data data = new Data(true);

            fIGeneration.FrequentItemGeneration(4, data);
        }
Ejemplo n.º 4
0
        static void Main(string[] args)
        {
            //Console.WriteLine();
            //Console.ReadLine();
            try
            {
                Console.WriteLine("Ingrese minSupport :");
                double minSupport = 0.005;//Convert.ToDouble(Console.ReadLine()) / 100;
                Console.WriteLine("Ingrese minConfidence :");
                double minConfidence = Convert.ToDouble(Console.ReadLine()) / 100;

                Data         data         = new Data(false);
                FIGeneration fIGeneration = new FIGeneration();
                fIGeneration.minSupport = minSupport;
                RuleGenerator ruleGenerator = new RuleGenerator();
                ruleGenerator.minConfidence = minConfidence;

                ClustersGenerator clustersGenerator = new ClustersGenerator();
                clustersGenerator.minPertencia = 0.60;

                data.LoadTransactions();
                data.LoadClientes();
                Console.WriteLine("--> " + data.transactions.Count);
                data.PodarTransacciones(0.003);
                Console.WriteLine("--> " + data.transactions.Count);
                data.PodarClientes();
                Console.WriteLine("Clientes -> " + data.clientes.Count);
                data.PodarArticulos();
                Console.WriteLine("Items Podados.- " + data.items.Count);

                data.PodarItemsPorSupport(minSupport);
                fIGeneration.AprioriFrequentItemGeneration(3, data);
                List <ItemSet> fi        = fIGeneration.candidates.Where(x => x.items.Count > 1).ToList();
                List <ItemSet> fiTotales = fIGeneration.candidates.ToList();
                Console.WriteLine("Itemsets totales: " + fi.Count);
                Console.WriteLine("---------------------------------------- \n Frequents ItemSe Generados... \n Creando Reglas de asociacion ...");
                //Generando Reglas
                ruleGenerator.GenerarReglas(fi, fIGeneration);
                Console.WriteLine(ruleGenerator.associationRules.Count + "++++++++");
                foreach (Rule rule in ruleGenerator.associationRules)
                {
                    Console.WriteLine(rule.antecedente.ToStringItems() + " ->" + rule.consecuente.ToStringItems() + " " + rule.confidence);
                }

                //Generando CLusters
                clustersGenerator.GenerarClusters(data.transactions, data.clientes, fi);

                /*
                 * Analyzer analyzer = new Analyzer();
                 * analyzer.minPertenencia = 0.75;
                 * analyzer.minPertenencia = 0.75;
                 * analyzer.minSupport = 0.01;
                 * analyzer.LoadData();
                 * analyzer.PodarDatos(0.1/100);
                 * //analyzer.data.PodarItemsPorSupport(0.1);
                 *
                 * analyzer.GenerarFrequentItemSets(2);
                 * Console.WriteLine(analyzer.fIGeneration.candidates.Count);*/

                foreach (ItemSet itemset in fIGeneration.candidates)
                {
                    String cods = "";
                    itemset.items.ToList().ForEach(x => cods += x.Value.cod + " ");
                    Console.WriteLine("Conjunto frecuente -> Support: " + itemset.support + " Conjunto: " + cods);
                }
                //    List<ItemSet> fi = fIGeneration.candidates.Where(x => x.items.Count > 1).ToList();
                //    clustersGenerator.GenerarClusters(data.transactions, data.clientes, fi);

                foreach (Cluster c in clustersGenerator.clusters)
                {
                    Console.WriteLine("Cluster: " + c.agrupador.ToStringItems());
                    foreach (Elemento e in c.elementos)
                    {
                        Console.WriteLine("Elemento: " + e.id + " pertenece un " + e.pertenencia + " al cluster");
                    }
                }
                Console.WriteLine(" Clusters final " + clustersGenerator.clusters.Count);
                Console.WriteLine("Terminó!");
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error main: " + e.Message + "\n" + e.StackTrace);
                Console.ReadLine();
            }
        }