Changeset 10538 for branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views
- Timestamp:
- 03/05/14 14:48:13 (11 years ago)
- Location:
- branches/DataPreprocessing
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/DataPreprocessing
- Property svn:mergeinfo changed
-
branches/DataPreprocessing/HeuristicLab.Problems.DataAnalysis.Symbolic.TimeSeriesPrognosis.Views/3.4/InteractiveSymbolicTimeSeriesPrognosisSolutionSimplifierView.cs
r9462 r10538 49 49 } 50 50 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) { 67 52 var interpreter = Content.Model.Interpreter; 68 53 var rows = Content.ProblemData.TrainingIndices; … … 72 57 var originalOutput = interpreter.GetSymbolicExpressionTreeValues(tree, dataset, rows).ToArray(); 73 58 74 Dictionary<ISymbolicExpressionTreeNode, double> impactValues = new Dictionary<ISymbolicExpressionTreeNode, double>();59 var impactAndReplacementValues = new Dictionary<ISymbolicExpressionTreeNode, Tuple<double, double>>(); 75 60 List<ISymbolicExpressionTreeNode> nodes = tree.Root.GetSubtree(0).GetSubtree(0).IterateNodesPostfix().ToList(); 76 61 OnlineCalculatorError errorState; … … 90 75 // impact < 0 if new solution is better 91 76 // 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); 93 79 SwitchNode(parent, replacementNode, node); 94 80 } 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 96 102 } 97 103
Note: See TracChangeset
for help on using the changeset viewer.