コード例 #1
0
ファイル: CRedeNeural.cs プロジェクト: fernandarp/GICA_RNA
        /// <summary>
        /// Metodo que retorna uma lista dos dados previstos. ****
        /// </summary>
        /// <param name="dados">Dados reais a serem trabalhados.</param>
        /// <param name="xInicial">Valor do indice inicial dos dados começando de 1. Default: 1.</param>
        /// <param name="comparacaoteste">Variavel que determina se haverá comparação com dados reais de teste.</param>
        /// <returns></returns>
        public List<double> Previsao(List<double> dados, int xInicial = 1, bool comparacaoteste = true)
        {
            //RNA.Algoritmo = "ParallelResilientBackpropagationLearning";
            string path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\RNA Archives";

            //Variáveis que armazenarão resultados
            List<double> result = new List<double>();
            List<double> resultTeste = new List<double>();

            //Instancia a classe CSerieTemporal.
            Serie = new CSerieTemporal(dados, xInicial);

            //Aplica a diferença nos dados e separa em treino, validação e teste.
            Serie.PrepararDados(comparacaoteste);

            //Separação dos dados
            dadosTreino = Serie.DadosTreino;
            dadosValidacao = Serie.DadosValidacao;
            if (comparacaoteste == true) dadosTeste = Serie.DadosTeste;

            //resultados
            List<double> resultTreino = new List<double>();

            TestarConfiguracoes();

            //if (File.Exists(path + @"\RedeTreinada.bin") == false)
            //{
                //adiciona ao resultado final os resultados de treino, validacao e teste de maneira sequencial.
                result.AddRange(Treino(path));
                result.AddRange(resultValidacao);
                //try
                //{
                //    network.Save(path + @"\RedeTreinada.bin");
                //}
                //catch { }
            //}
            //else
            //{
            //    network = (ActivationNetwork)ActivationNetwork.Load(path + @"\RedeTreinada.bin");
            //}
            result.AddRange(Teste(dadosTeste.Count, comparacaoteste));

            return result;
        }