Example #1
0
        public Hopkins(BancoDados dados, TextBlock Saida)
        {
            Tela  = new Impressao(Saida, dados.CasasDecimais);
            Dados = dados.GetBancoCalculo();

            //cria dos bancos que vão armazenas amostra de dados para calculo do hopkins
            RegAmostraBanco = Dados.Clone();
            RegAleatorios   = Dados.Clone();

            /*"indexOriginal" é o index do registro na base de dados
             * original*/
            RegAmostraBanco.Columns.Add("indexOriginal", typeof(Double));
            RegAmostraBanco.Columns.Add("DistanciaMin", typeof(Double));
            RegAmostraBanco.Columns["DistanciaMin"].DefaultValue = 0;

            RegAleatorios.Columns.Add("DistanciaMin", typeof(Double));
            RegAleatorios.Columns["DistanciaMin"].DefaultValue = 0;

            Tela.Escrever("Pegando amostra do banco.");
            PreencherAmostraBanco();

            Tela.Escrever("Gerando registros aleatorios");
            PreencherAleatorios();

            Tela.Escrever("Calculando distancias minimas");
            CalculoMin(RegAmostraBanco);
            CalculoMin(RegAleatorios);

            Tela.Escrever("Finalizando!");
            Result = CalculoFinal();
        }
Example #2
0
        public Kmedias(BancoDados dados, TextBlock saida, int numeroGrupos)
        {
            //Cria a classe de Saida de dados
            Tela              = new Impressao(saida, dados.CasasDecimais);
            Dados             = dados.GetBancoCalculo();
            numeroDeAtributos = dados.GetBancoCalculo().Columns.Count;
            Dados.Columns.Add("Grupo", typeof(int));
            Dados.Columns.Add("DistanciaMin", typeof(double));

            /*se não for especificado o numero de grupos
             * o numero de grupos é definido por Sqrt(n/2) onde n
             *  é o numero de registros da minha base de dados*/
            NumeroGrupos = numeroGrupos == 0 ? Convert.ToInt32(Math.Sqrt((Dados.Rows.Count / 2.0))) : numeroGrupos;

            Tela.Escrever("Número de Grupos : " + NumeroGrupos);
        }