Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/16/19 06:53:44 (5 years ago)
Author:
gkronber
Message:

#2925: added support for multiple training episodes (and log, exp functions)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2925_AutoDiffForDynamicalModels/AutoDiffForDynamicalModelsTest/TestOdeIdentification.cs

    r16602 r16610  
    4242      Assert.AreEqual(6.8350792038369173E-20, ((DoubleValue)alg.Results["SNMSE"].Value).Value, 1E-8);
    4343    }
     44    [TestMethod]
     45    public void RunOdeIdentificationMultipleEpisodes() {
     46      var alg = new OdeParameterIdentification();
     47      var dynProb = new Problem();
     48      var parser = new HeuristicLab.Problems.Instances.DataAnalysis.TableFileParser();
     49      // var fileName = @"C:\reps\HEAL\EuroCAST - Kronberger\DataGeneration\test.csv";
     50      var fileName = @"C:\reps\HEAL\EuroCAST - Kronberger\DataGeneration\s-system.csv";
     51      parser.Parse(fileName, true);
     52      var prov = new HeuristicLab.Problems.Instances.DataAnalysis.RegressionCSVInstanceProvider();
     53      var regressionProblemData = prov.ImportData(fileName);
     54      regressionProblemData.TrainingPartition.Start = 0;
     55      regressionProblemData.TrainingPartition.End = 61;
     56      regressionProblemData.TestPartition.Start = 61;
     57      var allowedInputs = new List<string>(); // empty
     58      var targets = new List<string>(new[] { "y1", "y2", "y3", "y4", "y5" });
     59      foreach (var checkedItem in regressionProblemData.InputVariables) {
     60        regressionProblemData.InputVariables.SetItemCheckedState(checkedItem, allowedInputs.Contains(checkedItem.Value));
     61      }
     62      dynProb.Load(regressionProblemData);
     63
     64      foreach (var checkedItem in dynProb.TargetVariables) {
     65        dynProb.TargetVariables.SetItemCheckedState(checkedItem, targets.Contains(checkedItem.Value));
     66      }
     67
     68      dynProb.TrainingEpisodesParameter.Value.Add(new IntRange(0, 30));
     69      dynProb.TrainingEpisodesParameter.Value.Add(new IntRange(30, 61));
     70      dynProb.NumericIntegrationStepsParameter.Value.Value = 1;
     71
     72      var rand = new FastRandom(1234);
     73      var expressions = new string[] {
     74"1.0*(y3*exp(log(y5)*0.1)) + 1.0*(y1*y1)",
     75"1.0*(y1*y1) + 1.0*(y2*y2)",
     76"1.0*exp(log(y2)*0.1) + 1.0*exp(log(y2)*0.1)*(y3*y3)",
     77"1.0*(y1*y1)*exp(log(y5)*0.1) + 1.0*(y4*y4)",
     78"1.0*(y4*y4)+1.0*(y5*y5)"
     79      };
     80
     81      alg.CreateSolution(dynProb, expressions, 200, rand);
     82      Assert.AreEqual(0.0, ((DoubleValue)alg.Results["SNMSE"].Value).Value, 1E-8);
     83    }
    4484  }
    4585}
Note: See TracChangeset for help on using the changeset viewer.