示例#1
0
        public void TesterReseau(SauvegardeExcel s, int indice)
        {
            // On récupère les 200 dernières données pour tester.
            Donnees = new Donnees(MonnaieBTC.XRP, "BTC", "5m", "200");

            // Les données
            double[]      output     = new double[1];
            List <Double> listeInput = Donnees.Neurone.RecupererToutesDonnees(0, NbPasse);

            double[] input = listeInput.ToArray();

            // Erreur sur le réseau.
            double erreur = Reseau.CalculateError(TrainingSet);

            Reseau.Compute(input, output);
            double prevision = output[0];

            // Erreur sur le réseau optimal entrainement.
            double erreurEntrainement = this.ReseauOptimalEntrainement.CalculateError(TrainingSet);

            ReseauOptimalEntrainement.Compute(input, output);
            double previsionEntrainement = output[0];

            // Erreur sur le réseau optimal validation.
            double erreurValidation = this.ReseauOptimalValidation.CalculateError(ValidationSet);

            ReseauOptimalValidation.Compute(input, output);
            double previsionValidation = output[0];

            s.EcritureDonnees(erreur, prevision, erreurEntrainement, previsionEntrainement, erreurValidation, previsionValidation, indice);
        }
示例#2
0
        /// <summary>
        /// Entraine le réseau.
        /// </summary>
        public void EntrainementReseau()
        {
            // Entrainement du réseau.
            double erreurEntrainement = 0;
            double erreurValidation   = 0;
            int    epoch = 1;

            do
            {
                train.Iteration();

                // Entrainement du réseau.
                erreurEntrainement = Reseau.CalculateError(TrainingSet);
                ListeErreurEntrainement.Add(erreurEntrainement);

                if (erreurEntrainement < ErreurOptimaleEntrainement)
                {
                    ErreurOptimaleEntrainement = erreurEntrainement;
                    ReseauOptimalEntrainement  = (BasicNetwork)Reseau.Clone();
                }


                // Validation du réseau.
                erreurValidation = Reseau.CalculateError(ValidationSet);
                ListeErreurValidation.Add(erreurValidation);

                if (erreurValidation < ErreurOptimaleValidation)
                {
                    ErreurOptimaleValidation = erreurValidation;
                    ReseauOptimalValidation  = (BasicNetwork)Reseau.Clone();
                }

                epoch++;
            } while (epoch < NbEpochMax);// && erreurEntrainement != 0 && erreurValidation != 0);

            train.FinishTraining();
        }