Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/01/13 13:01:40 (11 years ago)
Author:
bburlacu
Message:

#1772: Merged remaining trunk changes into the EvolutionaryTracking branch.

Location:
branches/HeuristicLab.EvolutionaryTracking
Files:
5 edited
1 copied

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.EvolutionaryTracking

  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic

  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4

    • Property svn:mergeinfo set to (toggle deleted branches)
      /branches/Sliding Window GP/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4mergedeligible
      /trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4mergedeligible
      /branches/Benchmarking/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.46917-7005
      /branches/CloningRefactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.44656-4721
      /branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45471-5473
      /branches/DataAnalysis SolutionEnsembles/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45815-6180
      /branches/DataAnalysis/HeuristicLab.Problems.DataAnalysis.Symbolic/3.44458-4459,​4462,​4464
      /branches/GP.Grammar.Editor/HeuristicLab.Problems.DataAnalysis.Symbolic/3.46284-6795
      /branches/GP.Symbols (TimeLag, Diff, Integral)/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45060
      /branches/HeuristicLab.TimeSeries/HeuristicLab.Problems.DataAnalysis.Symbolic/3.47098-8789
      /branches/HeuristicLab.TreeSimplifier/HeuristicLab.Problems.DataAnalysis.Symbolic/3.48388-8942
      /branches/NET40/sources/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45138-5162
      /branches/ParallelEngine/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45175-5192
      /branches/ProblemInstancesRegressionAndClassification/HeuristicLab.Problems.DataAnalysis.Symbolic/3.47568-7810
      /branches/QAPAlgorithms/HeuristicLab.Problems.DataAnalysis.Symbolic/3.46350-6627
      /branches/Restructure trunk solution/HeuristicLab.Problems.DataAnalysis.Symbolic/3.46828
      /branches/SuccessProgressAnalysis/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45370-5682
      /branches/Trunk/HeuristicLab.Problems.DataAnalysis.Symbolic/3.46829-6865
      /branches/VNS/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45594-5752
      /branches/histogram/HeuristicLab.Problems.DataAnalysis.Symbolic/3.45959-6341
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowAnalyzer.cs

    r9164 r9835  
    2323using HeuristicLab.Core;
    2424using HeuristicLab.Data;
     25using HeuristicLab.Operators;
     26using HeuristicLab.Optimization;
    2527using HeuristicLab.Parameters;
    2628using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     
    3133  public abstract class SlidingWindowAnalyzer : SymbolicDataAnalysisAnalyzer {
    3234    private const string ProblemDataParameterName = "ProblemData";
     35    private const string EvaluatorParameterName = "Evaluator";
    3336    private const string FitnessCalculationPartitionParameterName = "FitnessCalculationPartition";
    3437    private const string ValidationPartitionParameterName = "ValidationPartition";
     
    6467      get { return (ILookupParameter<BoolValue>)Parameters[TerminateSlidingWindowParameterName]; }
    6568    }
     69    public ILookupParameter<IEvaluator> EvaluatorParameter {
     70      get { return (ILookupParameter<IEvaluator>)Parameters[EvaluatorParameterName]; }
     71    }
    6672    #endregion
    6773
     
    8389      : base() {
    8490      Parameters.Add(new ValueLookupParameter<IDataAnalysisProblemData>(ProblemDataParameterName, "The problem data on which the symbolic data analysis solution should be evaluated."));
     91      Parameters.Add(new LookupParameter<IEvaluator>(EvaluatorParameterName, ""));
    8592      Parameters.Add(new LookupParameter<IntRange>(FitnessCalculationPartitionParameterName, ""));
    8693      Parameters.Add(new LookupParameter<IntRange>(ValidationPartitionParameterName, ""));
     
    94101    }
    95102
     103    [StorableHook(HookType.AfterDeserialization)]
     104    private void AfterDeserialization() {
     105      if (!Parameters.ContainsKey(EvaluatorParameterName))
     106        Parameters.Add(new LookupParameter<IEvaluator>(EvaluatorParameterName, ""));
     107    }
     108
    96109    public override IOperation Apply() {
    97110      //intialize sliding window
     111      TerminateSlidingWindowParameter.ActualValue = new BoolValue(false);
     112
    98113      if (FitnessCalculationPartitionParameter.ActualValue == null) {
    99         TerminateSlidingWindowParameter.ActualValue = new BoolValue(false);
    100114        FitnessCalculationPartitionParameter.ActualValue = (IntRange)InitialSlidingWindow.Clone();
    101115        ValidationPartitionParameter.ActualValue = new IntRange(InitialSlidingWindow.End, InitialSlidingWindow.End + ValidiationSlidingWindowSize.Value);
     
    115129
    116130      //check if update should be performed or if the algorithm should stop
    117       if (fitnessPartition.End > ProblemDataParameter.ActualValue.TrainingPartition.End)
     131      if (fitnessPartition.End > ProblemDataParameter.ActualValue.TrainingPartition.End) {
    118132        TerminateSlidingWindowParameter.ActualValue.Value = true;
    119       else {
    120         FitnessCalculationPartitionParameter.ActualValue.Start = fitnessPartition.Start;
    121         FitnessCalculationPartitionParameter.ActualValue.End = fitnessPartition.End;
    122         ValidationPartitionParameter.ActualValue.Start = fitnessPartition.End;
    123         ValidationPartitionParameter.ActualValue.End = ValidationPartitionParameter.ActualValue.Start + ValidiationSlidingWindowSize.Value;
     133        return base.Apply();
    124134      }
    125135
    126       return base.Apply();
     136      FitnessCalculationPartitionParameter.ActualValue.Start = fitnessPartition.Start;
     137      FitnessCalculationPartitionParameter.ActualValue.End = fitnessPartition.End;
     138      ValidationPartitionParameter.ActualValue.Start = fitnessPartition.End;
     139      ValidationPartitionParameter.ActualValue.End = ValidationPartitionParameter.ActualValue.Start + ValidiationSlidingWindowSize.Value;
     140
     141      //reevaluate all individuals with new sliding window
     142      UniformSubScopesProcessor subScopesProcessor = new UniformSubScopesProcessor();
     143      subScopesProcessor.Operator = EvaluatorParameter.ActualValue;
     144      subScopesProcessor.Depth.Value = 1;
     145      var operation = ExecutionContext.CreateChildOperation(subScopesProcessor);
     146      var successor = base.Apply();
     147      return new OperationCollection() { operation, successor };
    127148    }
    128149
  • branches/HeuristicLab.EvolutionaryTracking/HeuristicLab.Problems.DataAnalysis.Symbolic/3.4/SlidingWindow/SlidingWindowVisualizer.cs

    r9162 r9835  
    8585        else throw new NotSupportedException();
    8686
    87         var targetData = ProblemDataParameter.ActualValue.Dataset.GetDoubleValues(targetVariable);
     87        var targetData = ProblemDataParameter.ActualValue.Dataset.GetDoubleValues(targetVariable, ProblemDataParameter.ActualValue.TrainingIndices);
    8888        slidingWindowData = new SlidingWindowData(FitnessCalculationPartitionParameter.ActualValue, targetData);
    8989        results.Add(new Result(SlidingWindowDataResultName, slidingWindowData));
     
    9696        var classificationSolution = trainingSolution as IClassificationSolution;
    9797
    98         if (regressionSolution != null) estimatedValues = regressionSolution.EstimatedValues;
    99         if (classificationSolution != null) estimatedValues = classificationSolution.EstimatedClassValues;
     98        if (regressionSolution != null) estimatedValues = regressionSolution.EstimatedTrainingValues;
     99        if (classificationSolution != null) estimatedValues = classificationSolution.EstimatedTrainingClassValues;
    100100      }
    101101
Note: See TracChangeset for help on using the changeset viewer.