Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/08/14 19:30:48 (10 years ago)
Author:
mkommend
Message:

#2156: Merged r10492 into stable.

Location:
stable
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/InteractiveSymbolicTimeSeriesPrognosisSolutionSimplifierView.cs

    r9462 r11146  
    4949    }
    5050
    51     protected override void UpdateModel(ISymbolicExpressionTree tree) {
    52       var model = new SymbolicTimeSeriesPrognosisModel(tree, Content.Model.Interpreter);
    53       model.Scale(Content.ProblemData);
    54       Content.Model = model;
    55     }
    56 
    57     protected override Dictionary<ISymbolicExpressionTreeNode, double> CalculateReplacementValues(ISymbolicExpressionTree tree) {
    58       Dictionary<ISymbolicExpressionTreeNode, double> replacementValues = new Dictionary<ISymbolicExpressionTreeNode, double>();
    59       foreach (var componentBranch in tree.Root.GetSubtree(0).Subtrees)
    60         foreach (ISymbolicExpressionTreeNode node in componentBranch.IterateNodesPrefix()) {
    61           replacementValues[node] = CalculateReplacementValue(node, tree);
    62         }
    63       return replacementValues;
    64     }
    65 
    66     protected override Dictionary<ISymbolicExpressionTreeNode, double> CalculateImpactValues(ISymbolicExpressionTree tree) {
     51    protected override Dictionary<ISymbolicExpressionTreeNode, Tuple<double, double>> CalculateImpactAndReplacementValues(ISymbolicExpressionTree tree) {
    6752      var interpreter = Content.Model.Interpreter;
    6853      var rows = Content.ProblemData.TrainingIndices;
     
    7257      var originalOutput = interpreter.GetSymbolicExpressionTreeValues(tree, dataset, rows).ToArray();
    7358
    74       Dictionary<ISymbolicExpressionTreeNode, double> impactValues = new Dictionary<ISymbolicExpressionTreeNode, double>();
     59      var impactAndReplacementValues = new Dictionary<ISymbolicExpressionTreeNode, Tuple<double, double>>();
    7560      List<ISymbolicExpressionTreeNode> nodes = tree.Root.GetSubtree(0).GetSubtree(0).IterateNodesPostfix().ToList();
    7661      OnlineCalculatorError errorState;
     
    9075        // impact < 0 if new solution is better
    9176        // impact > 0 if new solution is worse
    92         impactValues[node] = originalR2 - newR2;
     77        double impact = originalR2 - newR2;
     78        impactAndReplacementValues[node] = new Tuple<double, double>(impact, constantNode.Value);
    9379        SwitchNode(parent, replacementNode, node);
    9480      }
    95       return impactValues;
     81      return impactAndReplacementValues;
     82    }
     83
     84    protected override void UpdateModel(ISymbolicExpressionTree tree) {
     85      var model = new SymbolicTimeSeriesPrognosisModel(tree, Content.Model.Interpreter);
     86      model.Scale(Content.ProblemData);
     87      Content.Model = model;
     88    }
     89
     90    protected override Dictionary<ISymbolicExpressionTreeNode, double> CalculateReplacementValues(ISymbolicExpressionTree tree) {
     91      var replacementValues = new Dictionary<ISymbolicExpressionTreeNode, double>();
     92      foreach (var componentBranch in tree.Root.GetSubtree(0).Subtrees)
     93        foreach (ISymbolicExpressionTreeNode node in componentBranch.IterateNodesPrefix()) {
     94          replacementValues[node] = CalculateReplacementValue(node, tree);
     95        }
     96      return replacementValues;
     97    }
     98
     99    protected override Dictionary<ISymbolicExpressionTreeNode, double> CalculateImpactValues(ISymbolicExpressionTree tree) {
     100      var impactAndReplacementValues = CalculateImpactAndReplacementValues(tree);
     101      return impactAndReplacementValues.ToDictionary(x => x.Key, x => x.Value.Item1); // item1 of the tuple is the impact value
    96102    }
    97103
Note: See TracChangeset for help on using the changeset viewer.