Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/21/10 15:21:34 (14 years ago)
Author:
gkronber
Message:

Refactored symbolic expression tree encoding and problem classes for symbolic regression. #937 , #938

Location:
trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/DataAnalysisProblemDataView.cs

    r3442 r3462  
    2929      : this() {
    3030      Content = content;
    31       variableCollectionView.Content = content.Variables.AsReadOnly();
     31    }
     32
     33    protected override void OnContentChanged() {
     34      base.OnContentChanged();
     35      variableCollectionView.Content = Content.Variables.AsReadOnly();
    3236    }
    3337
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/EstimatedValuesView.cs

    r3442 r3462  
    6868    protected override void RegisterContentEvents() {
    6969      base.RegisterContentEvents();
    70       Content.ModelChanged += new EventHandler(Content_ModelChanged);
     70      Content.EstimatedValuesChanged += new EventHandler(Content_EstimatedValuesChanged);
    7171      Content.ProblemDataChanged += new EventHandler(Content_ProblemDataChanged);
    7272    }
     
    7474    protected override void DeregisterContentEvents() {
    7575      base.DeregisterContentEvents();
    76       Content.ModelChanged -= new EventHandler(Content_ModelChanged);
     76      Content.EstimatedValuesChanged -= new EventHandler(Content_EstimatedValuesChanged);
    7777      Content.ProblemDataChanged -= new EventHandler(Content_ProblemDataChanged);
    7878    }
     
    8282    }
    8383
    84     void Content_ModelChanged(object sender, EventArgs e) {
     84    void Content_EstimatedValuesChanged(object sender, EventArgs e) {
    8585      OnContentChanged();
    8686    }
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/LineChartView.cs

    r3442 r3462  
    6565      : this() {
    6666      Content = dataAnalysisSolution;
    67       DrawTargetVariableValues();
    68       DrawEstimatedValues();
     67      RedrawChart();
    6968    }
    7069
    71     private void DrawEstimatedValues() {
     70    private void RedrawChart() {
     71      this.chart.Series.Clear();
     72      this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
     73      this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = Content.ProblemData.TargetVariable.Value;
     74      this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
     75      this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindY(Content.ProblemData.Dataset[Content.ProblemData.TargetVariable.Value]);
     76      this.UpdateStripLines();
     77
    7278      this.chart.Series.Add(ESTIMATEDVALUES_SERIES_NAME);
    7379      this.chart.Series[ESTIMATEDVALUES_SERIES_NAME].LegendText = Content.ItemName;
     
    7783    }
    7884
    79     private void DrawTargetVariableValues() {
    80       this.chart.Series.Clear();
    81       this.chart.Series.Add(TARGETVARIABLE_SERIES_NAME);
    82       this.chart.Series[TARGETVARIABLE_SERIES_NAME].LegendText = Content.ProblemData.TargetVariable.Value;
    83       this.chart.Series[TARGETVARIABLE_SERIES_NAME].ChartType = SeriesChartType.FastLine;
    84       this.chart.Series[TARGETVARIABLE_SERIES_NAME].Points.DataBindY(Content.ProblemData.Dataset[Content.ProblemData.TargetVariable.Value]);
    85       this.UpdateStripLines();
    86     }
    87 
    8885    #region events
    8986    protected override void RegisterContentEvents() {
    9087      base.RegisterContentEvents();
    91       Content.ModelChanged += new EventHandler(Content_ModelChanged);
     88      Content.EstimatedValuesChanged += new EventHandler(Content_EstimatedValuesChanged);
    9289      Content.ProblemDataChanged += new EventHandler(Content_ProblemDataChanged);
    9390    }
     
    9592    protected override void DeregisterContentEvents() {
    9693      base.DeregisterContentEvents();
    97       Content.ModelChanged -= new EventHandler(Content_ModelChanged);
     94      Content.EstimatedValuesChanged -= new EventHandler(Content_EstimatedValuesChanged);
    9895      Content.ProblemDataChanged -= new EventHandler(Content_ProblemDataChanged);
    9996    }
    10097
    10198    void Content_ProblemDataChanged(object sender, EventArgs e) {
    102       OnContentChanged();
     99      RedrawChart();
    103100    }
    104101
    105     void Content_ModelChanged(object sender, EventArgs e) {
    106       OnContentChanged();
     102    void Content_EstimatedValuesChanged(object sender, EventArgs e) {
     103      UpdateEstimatedValuesLineChart();
    107104    }
    108105
    109106    protected override void OnContentChanged() {
    110107      base.OnContentChanged();
    111       UpdateEstimatedValuesLineChart();
     108      RedrawChart();
    112109    }
    113110
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/ScatterPlotView.cs

    r3442 r3462  
    8484      : this() {
    8585      Content = dataAnalysisSolution;
     86      UpdateChart();
    8687    }
    8788
    8889    protected override void RegisterContentEvents() {
    8990      base.RegisterContentEvents();
    90       Content.ModelChanged += new EventHandler(Content_ModelChanged);
     91      Content.EstimatedValuesChanged += new EventHandler(Content_EstimatedValuesChanged);
    9192      Content.ProblemDataChanged += new EventHandler(Content_ProblemDataChanged);
    9293    }
    9394    protected override void DeregisterContentEvents() {
    9495      base.DeregisterContentEvents();
    95       Content.ModelChanged -= new EventHandler(Content_ModelChanged);
     96      Content.EstimatedValuesChanged -= new EventHandler(Content_EstimatedValuesChanged);
    9697      Content.ProblemDataChanged -= new EventHandler(Content_ProblemDataChanged);
    9798    }
     
    99100
    100101    void Content_ProblemDataChanged(object sender, EventArgs e) {
    101       OnContentChanged();
    102     }
    103 
    104     void Content_ModelChanged(object sender, EventArgs e) {
    105       OnContentChanged();
     102      UpdateChart();
     103    }
     104
     105    void Content_EstimatedValuesChanged(object sender, EventArgs e) {
     106      UpdateSeries();
    106107    }
    107108
     
    127128
    128129    private void UpdateSeries() {
    129       string targetVariableName = Content.ProblemData.TargetVariable.Value;
    130       Dataset dataset = Content.ProblemData.Dataset;
    131       int trainingStart = Content.ProblemData.TrainingSamplesStart.Value;
    132       int trainingEnd = Content.ProblemData.TrainingSamplesEnd.Value;
    133       int testStart = Content.ProblemData.TestSamplesStart.Value;
    134       int testEnd = Content.ProblemData.TestSamplesEnd.Value;
    135       if (this.chart.Series[ALL_SERIES].Points.Count > 0)
    136         this.chart.Series[ALL_SERIES].Points.DataBindXY(Content.EstimatedValues.ToArray(), "",
    137           dataset[targetVariableName], "");
    138       if (this.chart.Series[TRAINING_SERIES].Points.Count > 0)
    139         this.chart.Series[TRAINING_SERIES].Points.DataBindXY(Content.EstimatedTrainingValues.ToArray(), "",
    140           dataset.GetVariableValues(targetVariableName, trainingStart, trainingEnd), "");
    141       if (this.chart.Series[TEST_SERIES].Points.Count > 0)
    142         this.chart.Series[TEST_SERIES].Points.DataBindXY(Content.EstimatedTestValues.ToArray(), "",
    143           dataset.GetVariableValues(targetVariableName, testStart, testEnd), "");
    144 
    145       double max = Math.Max(Content.EstimatedValues.Max(), dataset.GetMax(targetVariableName));
    146       double min = Math.Min(Content.EstimatedValues.Min(), dataset.GetMin(targetVariableName));
    147 
    148       max = Math.Ceiling(max) * 1.2;
    149       min = Math.Floor(min) * 0.8;
    150 
    151       this.chart.ChartAreas[0].AxisX.Maximum = max;
    152       this.chart.ChartAreas[0].AxisX.Minimum = min;
    153       this.chart.ChartAreas[0].AxisY.Maximum = max;
    154       this.chart.ChartAreas[0].AxisY.Minimum = min;
     130      if (InvokeRequired) Invoke((Action)UpdateSeries);
     131      else {
     132        string targetVariableName = Content.ProblemData.TargetVariable.Value;
     133        Dataset dataset = Content.ProblemData.Dataset;
     134        int trainingStart = Content.ProblemData.TrainingSamplesStart.Value;
     135        int trainingEnd = Content.ProblemData.TrainingSamplesEnd.Value;
     136        int testStart = Content.ProblemData.TestSamplesStart.Value;
     137        int testEnd = Content.ProblemData.TestSamplesEnd.Value;
     138        if (this.chart.Series[ALL_SERIES].Points.Count > 0)
     139          this.chart.Series[ALL_SERIES].Points.DataBindXY(Content.EstimatedValues.ToArray(), "",
     140            dataset[targetVariableName], "");
     141        if (this.chart.Series[TRAINING_SERIES].Points.Count > 0)
     142          this.chart.Series[TRAINING_SERIES].Points.DataBindXY(Content.EstimatedTrainingValues.ToArray(), "",
     143            dataset.GetVariableValues(targetVariableName, trainingStart, trainingEnd), "");
     144        if (this.chart.Series[TEST_SERIES].Points.Count > 0)
     145          this.chart.Series[TEST_SERIES].Points.DataBindXY(Content.EstimatedTestValues.ToArray(), "",
     146            dataset.GetVariableValues(targetVariableName, testStart, testEnd), "");
     147
     148        double max = Math.Max(Content.EstimatedValues.Max(), dataset.GetMax(targetVariableName));
     149        double min = Math.Min(Content.EstimatedValues.Min(), dataset.GetMin(targetVariableName));
     150
     151        max = Math.Ceiling(max) * 1.2;
     152        min = Math.Floor(min) * 0.8;
     153
     154        this.chart.ChartAreas[0].AxisX.Maximum = max;
     155        this.chart.ChartAreas[0].AxisX.Minimum = min;
     156        this.chart.ChartAreas[0].AxisY.Maximum = max;
     157        this.chart.ChartAreas[0].AxisY.Minimum = min;
     158      }
    155159    }
    156160
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/Symbolic/SimplifiedSymbolicExpressionModelView.cs

    r3461 r3462  
    4444    public new SymbolicRegressionSolution Content {
    4545      get { return (SymbolicRegressionSolution)base.Content; }
    46       set {        base.Content = value;      }
     46      set { base.Content = value; }
    4747    }
    4848
     
    5858    }
    5959
     60    protected override void RegisterContentEvents() {
     61      base.RegisterContentEvents();
     62      Content.ModelChanged += new EventHandler(Content_ModelChanged);
     63    }
     64
     65    protected override void DeregisterContentEvents() {
     66      base.DeregisterContentEvents();
     67      Content.ModelChanged -= new EventHandler(Content_ModelChanged);
     68    }
     69
     70    void Content_ModelChanged(object sender, EventArgs e) {
     71      UpdateTreeChart();
     72    }
     73
    6074    protected override void OnContentChanged() {
    6175      base.OnContentChanged();
     76      UpdateTreeChart();
     77    }
     78
     79    private void UpdateTreeChart() {
    6280      var simplifier = new SymbolicSimplifier();
    6381      var simplifiedTree = simplifier.Simplify(Content.Model.SymbolicExpressionTree);
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Views/3.3/Symbolic/SymbolicExpressionModelView.cs

    r3461 r3462  
    5757    }
    5858
     59
     60    protected override void RegisterContentEvents() {
     61      base.RegisterContentEvents();
     62      Content.ModelChanged += new EventHandler(Content_ModelChanged);
     63    }
     64
     65    protected override void DeregisterContentEvents() {
     66      base.DeregisterContentEvents();
     67      Content.ModelChanged -= new EventHandler(Content_ModelChanged);
     68    }
     69
     70    void Content_ModelChanged(object sender, EventArgs e) {
     71      UpdateTreeChart();
     72    }
     73
    5974    protected override void OnContentChanged() {
    6075      base.OnContentChanged();
     76      UpdateTreeChart();
     77    }
     78
     79    private void UpdateTreeChart() {
    6180      viewHost.Content = Content.Model.SymbolicExpressionTree;
    6281    }
Note: See TracChangeset for help on using the changeset viewer.