Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/16/11 16:34:31 (13 years ago)
Author:
gkronber
Message:

#1418 Implemented interactive simplifier views for symbolic classification and regression.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis.Symbolic.Views/3.4/InteractiveSymbolicDataAnalysisSolutionSimplifierView.cs

    r5699 r5717  
    8888        simplifiedExpressionTree = simplifier.Simplify(Content.Model.SymbolicExpressionTree);
    8989
    90         var replacementValues = CalculateReplacementValues(Content.Model.Interpreter, simplifiedExpressionTree, Content.ProblemData.Dataset, Content.ProblemData.TrainingIndizes);
     90        var replacementValues = CalculateReplacementValues(simplifiedExpressionTree);
    9191        foreach (var pair in replacementValues) {
    9292          replacementNodes.Add(pair.Key, MakeConstantTreeNode(pair.Value));
    9393        }
    94         nodeImpacts = CalculateImpactValues(Content.Model.Interpreter, simplifiedExpressionTree, Content.ProblemData.Dataset, Content.ProblemData.TrainingIndizes);
     94        nodeImpacts = CalculateImpactValues(simplifiedExpressionTree);
    9595
    9696        // automatically fold all branches with impact = 1
     
    110110    }
    111111
    112     protected abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateReplacementValues(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree tree, Dataset dataset, IEnumerable<int> rows);
    113     protected abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateImpactValues(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree tree, Dataset dataset, IEnumerable<int> rows);
     112    protected abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateReplacementValues(ISymbolicExpressionTree tree);
     113    protected abstract Dictionary<ISymbolicExpressionTreeNode, double> CalculateImpactValues(ISymbolicExpressionTree tree);
     114    protected abstract void UpdateModel(ISymbolicExpressionTree tree);
    114115
    115116    private ConstantTreeNode MakeConstantTreeNode(double value) {
     
    137138
    138139      SymbolicExpressionTree tree = (SymbolicExpressionTree)simplifiedExpressionTree.Clone();
    139 
    140       //this.Content.ModelChanged -= new EventHandler(Content_ModelChanged);
    141       //this.Content.Model = new SymbolicRegressionModel(Content.Model.Interpreter, tree);
    142       //this.Content.ModelChanged += new EventHandler(Content_ModelChanged);
    143 
     140      UpdateModel(tree);
    144141      this.PaintNodeImpacts();
    145142    }
     
    166163          VisualSymbolicExpressionTreeNode visualTree = treeChart.GetVisualSymbolicExpressionTreeNode(treeNode);
    167164         
    168           //if (impact < 1.0) {
    169           //  visualTree.FillColor = Color.FromArgb((int)((1.0 - impact) * 255), Color.Red);
    170           //} else {
    171           visualTree.FillColor = Color.FromArgb((int)((impact - 1.0) / max * 255), Color.Green);
    172           //}
     165          // impact = 0 if no change
     166          // impact < 0 if new solution is better
     167          // impact > 0 if new solution is worse
     168          if (impact < 0.0) {
     169            visualTree.FillColor = Color.FromArgb((int)(impact / min * 255), Color.Red);
     170          } else {
     171            visualTree.FillColor = Color.FromArgb((int)(impact / max * 255), Color.Green);
     172          }
    173173          visualTree.ToolTip += Environment.NewLine + "Node impact: " + impact;
    174174          visualTree.ToolTip += Environment.NewLine + "Replacement value: " + replacementValue;
Note: See TracChangeset for help on using the changeset viewer.