Free cookie consent management tool by TermsFeed Policy Generator

source: trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/SymbolicRegressionModelQualityAnalyzer.cs @ 3922

Last change on this file since 3922 was 3710, checked in by gkronber, 14 years ago

Implemented reviewer comments. #893 (HeuristicLab 3.3.0 application review)

File size: 22.7 KB
Line 
1#region License Information
2/* HeuristicLab
3 * Copyright (C) 2002-2010 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
4 *
5 * This file is part of HeuristicLab.
6 *
7 * HeuristicLab is free software: you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation, either version 3 of the License, or
10 * (at your option) any later version.
11 *
12 * HeuristicLab is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with HeuristicLab. If not, see <http://www.gnu.org/licenses/>.
19 */
20#endregion
21
22using System.Linq;
23using HeuristicLab.Common;
24using HeuristicLab.Core;
25using HeuristicLab.Data;
26using HeuristicLab.Operators;
27using HeuristicLab.Optimization;
28using HeuristicLab.Parameters;
29using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
30using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
31using HeuristicLab.Problems.DataAnalysis.Regression.Symbolic;
32using HeuristicLab.Problems.DataAnalysis.Symbolic;
33using System.Collections.Generic;
34using HeuristicLab.Problems.DataAnalysis.Symbolic.Symbols;
35using HeuristicLab.Problems.DataAnalysis;
36using HeuristicLab.Analysis;
37using HeuristicLab.Problems.DataAnalysis.Evaluators;
38using HeuristicLab.Optimization.Operators;
39using System;
40
41namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Analyzers {
42  /// <summary>
43  /// "An operator for analyzing the quality of symbolic regression solutions symbolic expression tree encoding."
44  /// </summary>
45  [Item("SymbolicRegressionModelQualityAnalyzer", "An operator for analyzing the quality of symbolic regression solutions symbolic expression tree encoding.")]
46  [StorableClass]
47  public sealed class SymbolicRegressionModelQualityAnalyzer : AlgorithmOperator, ISymbolicRegressionAnalyzer {
48    private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter";
49    private const string SymbolicExpressionTreeParameterName = "SymbolicExpressionTree";
50    private const string ProblemDataParameterName = "ProblemData";
51    private const string ResultsParameterName = "Results";
52
53    private const string TrainingMeanSquaredErrorQualityParameterName = "Mean squared error (training)";
54    private const string MinTrainingMeanSquaredErrorQualityParameterName = "Min mean squared error (training)";
55    private const string MaxTrainingMeanSquaredErrorQualityParameterName = "Max mean squared error (training)";
56    private const string AverageTrainingMeanSquaredErrorQualityParameterName = "Average mean squared error (training)";
57    private const string BestTrainingMeanSquaredErrorQualityParameterName = "Best mean squared error (training)";
58
59    private const string TrainingAverageRelativeErrorQualityParameterName = "Average relative error (training)";
60    private const string MinTrainingAverageRelativeErrorQualityParameterName = "Min average relative error (training)";
61    private const string MaxTrainingAverageRelativeErrorQualityParameterName = "Max average relative error (training)";
62    private const string AverageTrainingAverageRelativeErrorQualityParameterName = "Average average relative error (training)";
63    private const string BestTrainingAverageRelativeErrorQualityParameterName = "Best average relative error (training)";
64
65    private const string TrainingRSquaredQualityParameterName = "R² (training)";
66    private const string MinTrainingRSquaredQualityParameterName = "Min R² (training)";
67    private const string MaxTrainingRSquaredQualityParameterName = "Max R² (training)";
68    private const string AverageTrainingRSquaredQualityParameterName = "Average R² (training)";
69    private const string BestTrainingRSquaredQualityParameterName = "Best R² (training)";
70
71    private const string TestMeanSquaredErrorQualityParameterName = "Mean squared error (test)";
72    private const string MinTestMeanSquaredErrorQualityParameterName = "Min mean squared error (test)";
73    private const string MaxTestMeanSquaredErrorQualityParameterName = "Max mean squared error (test)";
74    private const string AverageTestMeanSquaredErrorQualityParameterName = "Average mean squared error (test)";
75    private const string BestTestMeanSquaredErrorQualityParameterName = "Best mean squared error (test)";
76
77    private const string TestAverageRelativeErrorQualityParameterName = "Average relative error (test)";
78    private const string MinTestAverageRelativeErrorQualityParameterName = "Min average relative error (test)";
79    private const string MaxTestAverageRelativeErrorQualityParameterName = "Max average relative error (test)";
80    private const string AverageTestAverageRelativeErrorQualityParameterName = "Average average relative error (test)";
81    private const string BestTestAverageRelativeErrorQualityParameterName = "Best average relative error (test)";
82
83    private const string TestRSquaredQualityParameterName = "R² (test)";
84    private const string MinTestRSquaredQualityParameterName = "Min R² (test)";
85    private const string MaxTestRSquaredQualityParameterName = "Max R² (test)";
86    private const string AverageTestRSquaredQualityParameterName = "Average R² (test)";
87    private const string BestTestRSquaredQualityParameterName = "Best R² (test)";
88
89    private const string RSquaredValuesParameterName = "R²";
90    private const string MeanSquaredErrorValuesParameterName = "Mean squared error";
91    private const string RelativeErrorValuesParameterName = "Average relative error";
92
93    private const string TrainingSamplesStartParameterName = "TrainingSamplesStart";
94    private const string TrainingSamplesEndParameterName = "TrainingSamplesEnd";
95    private const string TestSamplesStartParameterName = "TestSamplesStart";
96    private const string TestSamplesEndParameterName = "TestSamplesEnd";
97    private const string UpperEstimationLimitParameterName = "UpperEstimationLimit";
98    private const string LowerEstimationLimitParameterName = "LowerEstimationLimit";
99
100    #region parameter properties
101    public ScopeTreeLookupParameter<SymbolicExpressionTree> SymbolicExpressionTreeParameter {
102      get { return (ScopeTreeLookupParameter<SymbolicExpressionTree>)Parameters[SymbolicExpressionTreeParameterName]; }
103    }
104    public IValueLookupParameter<ISymbolicExpressionTreeInterpreter> SymbolicExpressionTreeInterpreterParameter {
105      get { return (IValueLookupParameter<ISymbolicExpressionTreeInterpreter>)Parameters[SymbolicExpressionTreeInterpreterParameterName]; }
106    }
107    public IValueLookupParameter<DataAnalysisProblemData> ProblemDataParameter {
108      get { return (IValueLookupParameter<DataAnalysisProblemData>)Parameters[ProblemDataParameterName]; }
109    }
110    public IValueLookupParameter<IntValue> TrainingSamplesStartParameter {
111      get { return (IValueLookupParameter<IntValue>)Parameters[TrainingSamplesStartParameterName]; }
112    }
113    public IValueLookupParameter<IntValue> TrainingSamplesEndParameter {
114      get { return (IValueLookupParameter<IntValue>)Parameters[TrainingSamplesEndParameterName]; }
115    }
116    public IValueLookupParameter<IntValue> TestSamplesStartParameter {
117      get { return (IValueLookupParameter<IntValue>)Parameters[TestSamplesStartParameterName]; }
118    }
119    public IValueLookupParameter<IntValue> TestSamplesEndParameter {
120      get { return (IValueLookupParameter<IntValue>)Parameters[TestSamplesEndParameterName]; }
121    }
122    public IValueLookupParameter<DoubleValue> UpperEstimationLimitParameter {
123      get { return (IValueLookupParameter<DoubleValue>)Parameters[UpperEstimationLimitParameterName]; }
124    }
125    public IValueLookupParameter<DoubleValue> LowerEstimationLimitParameter {
126      get { return (IValueLookupParameter<DoubleValue>)Parameters[LowerEstimationLimitParameterName]; }
127    }
128    public ILookupParameter<ResultCollection> ResultsParameter {
129      get { return (ILookupParameter<ResultCollection>)Parameters[ResultsParameterName]; }
130    }
131    #endregion
132
133    [Storable]
134    private UniformSubScopesProcessor subScopesProcessor;
135    [Storable]
136    private MinAverageMaxValueAnalyzer minAvgMaxTrainingMseAnalyzer;
137    [Storable]
138    private MinAverageMaxValueAnalyzer minAvgMaxTestMseAnalyzer;
139    [Storable]
140    private MinAverageMaxValueAnalyzer minAvgMaxTrainingRSquaredAnalyzer;
141    [Storable]
142    private MinAverageMaxValueAnalyzer minAvgMaxTestRSquaredAnalyzer;
143    [Storable]
144    private MinAverageMaxValueAnalyzer minAvgMaxTrainingRelErrorAnalyzer;
145    [Storable]
146    private MinAverageMaxValueAnalyzer minAvgMaxTestRelErrorAnalyzer;
147
148    public SymbolicRegressionModelQualityAnalyzer()
149      : base() {
150      Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze."));
151      Parameters.Add(new ValueLookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used to calculate the output values of the symbolic expression tree."));
152      Parameters.Add(new ValueLookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data containing the input varaibles for the symbolic regression problem."));
153      Parameters.Add(new ValueLookupParameter<IntValue>(TrainingSamplesStartParameterName, "The first index of the training data set partition on which the model quality values should be calculated."));
154      Parameters.Add(new ValueLookupParameter<IntValue>(TrainingSamplesEndParameterName, "The last index of the training data set partition on which the model quality values should be calculated."));
155      Parameters.Add(new ValueLookupParameter<IntValue>(TestSamplesStartParameterName, "The first index of the test data set partition on which the model quality values should be calculated."));
156      Parameters.Add(new ValueLookupParameter<IntValue>(TestSamplesEndParameterName, "The last index of the test data set partition on which the model quality values should be calculated."));
157      Parameters.Add(new ValueLookupParameter<DoubleValue>(UpperEstimationLimitParameterName, "The upper limit that should be used as cut off value for the output values of symbolic expression trees."));
158      Parameters.Add(new ValueLookupParameter<DoubleValue>(LowerEstimationLimitParameterName, "The lower limit that should be used as cut off value for the output values of symbolic expression trees."));
159      Parameters.Add(new ValueLookupParameter<DataTable>(MeanSquaredErrorValuesParameterName, "The data table to collect mean squared error values."));
160      Parameters.Add(new ValueLookupParameter<DataTable>(RSquaredValuesParameterName, "The data table to collect R² correlation coefficient values."));
161      Parameters.Add(new ValueLookupParameter<DataTable>(RelativeErrorValuesParameterName, "The data table to collect relative error values."));
162      Parameters.Add(new LookupParameter<ResultCollection>(ResultsParameterName, "The result collection where the best symbolic regression solution should be stored."));
163
164      #region operator initialization
165      subScopesProcessor = new UniformSubScopesProcessor();
166      SymbolicRegressionModelQualityCalculator trainingQualityCalculator = new SymbolicRegressionModelQualityCalculator();
167      SymbolicRegressionModelQualityCalculator testQualityCalculator = new SymbolicRegressionModelQualityCalculator();
168      minAvgMaxTrainingMseAnalyzer = new MinAverageMaxValueAnalyzer();
169      minAvgMaxTestMseAnalyzer = new MinAverageMaxValueAnalyzer();
170
171      minAvgMaxTrainingRSquaredAnalyzer = new MinAverageMaxValueAnalyzer();
172      minAvgMaxTestRSquaredAnalyzer = new MinAverageMaxValueAnalyzer();
173
174      minAvgMaxTrainingRelErrorAnalyzer = new MinAverageMaxValueAnalyzer();
175      minAvgMaxTestRelErrorAnalyzer = new MinAverageMaxValueAnalyzer();
176      #endregion
177
178      #region parameter wiring
179      subScopesProcessor.Depth.Value = SymbolicExpressionTreeParameter.Depth;
180      trainingQualityCalculator.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name;
181      trainingQualityCalculator.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
182      trainingQualityCalculator.SamplesStartParameter.ActualName = TrainingSamplesStartParameter.Name;
183      trainingQualityCalculator.SamplesEndParameter.ActualName = TrainingSamplesEndParameter.Name;
184      trainingQualityCalculator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
185      trainingQualityCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter.Name;
186      trainingQualityCalculator.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter.Name;
187      trainingQualityCalculator.AverageRelativeErrorQualityParameter.ActualName = TrainingAverageRelativeErrorQualityParameterName;
188      trainingQualityCalculator.MeanSquaredErrorQualityParameter.ActualName = TrainingMeanSquaredErrorQualityParameterName;
189      trainingQualityCalculator.RSquaredQualityParameter.ActualName = TrainingRSquaredQualityParameterName;
190
191      testQualityCalculator.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name;
192      testQualityCalculator.ProblemDataParameter.ActualName = ProblemDataParameter.Name;
193      testQualityCalculator.SamplesStartParameter.ActualName = TestSamplesStartParameter.Name;
194      testQualityCalculator.SamplesEndParameter.ActualName = TestSamplesEndParameter.Name;
195      testQualityCalculator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name;
196      testQualityCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter.Name;
197      testQualityCalculator.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter.Name;
198      testQualityCalculator.AverageRelativeErrorQualityParameter.ActualName = TestAverageRelativeErrorQualityParameterName;
199      testQualityCalculator.MeanSquaredErrorQualityParameter.ActualName = TestMeanSquaredErrorQualityParameterName;
200      testQualityCalculator.RSquaredQualityParameter.ActualName = TestRSquaredQualityParameterName;
201      #region training/test MSE
202      minAvgMaxTrainingMseAnalyzer.ValueParameter.ActualName = TrainingMeanSquaredErrorQualityParameterName;
203      minAvgMaxTrainingMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
204      minAvgMaxTrainingMseAnalyzer.AverageValueParameter.ActualName = AverageTrainingMeanSquaredErrorQualityParameterName;
205      minAvgMaxTrainingMseAnalyzer.MaxValueParameter.ActualName = MaxTrainingMeanSquaredErrorQualityParameterName;
206      minAvgMaxTrainingMseAnalyzer.MinValueParameter.ActualName = MinTrainingMeanSquaredErrorQualityParameterName;
207      minAvgMaxTrainingMseAnalyzer.ValuesParameter.ActualName = MeanSquaredErrorValuesParameterName;
208      minAvgMaxTrainingMseAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
209      minAvgMaxTrainingMseAnalyzer.CollectMinValueInResultsParameter.Value = new BoolValue(false);
210      minAvgMaxTrainingMseAnalyzer.CollectAverageValueInResultsParameter.Value = new BoolValue(false);
211      minAvgMaxTrainingMseAnalyzer.CollectMaxValueInResultsParameter.Value = new BoolValue(false);
212
213      minAvgMaxTestMseAnalyzer.ValueParameter.ActualName = TestMeanSquaredErrorQualityParameterName;
214      minAvgMaxTestMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
215      minAvgMaxTestMseAnalyzer.AverageValueParameter.ActualName = AverageTestMeanSquaredErrorQualityParameterName;
216      minAvgMaxTestMseAnalyzer.MaxValueParameter.ActualName = MaxTestMeanSquaredErrorQualityParameterName;
217      minAvgMaxTestMseAnalyzer.MinValueParameter.ActualName = MinTestMeanSquaredErrorQualityParameterName;
218      minAvgMaxTestMseAnalyzer.ValuesParameter.ActualName = MeanSquaredErrorValuesParameterName;
219      minAvgMaxTestMseAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
220      minAvgMaxTestMseAnalyzer.CollectMinValueInResultsParameter.Value = new BoolValue(false);
221      minAvgMaxTestMseAnalyzer.CollectAverageValueInResultsParameter.Value = new BoolValue(false);
222      minAvgMaxTestMseAnalyzer.CollectMaxValueInResultsParameter.Value = new BoolValue(false);
223
224      #endregion
225      #region training/test R²
226      minAvgMaxTrainingRSquaredAnalyzer.ValueParameter.ActualName = TrainingRSquaredQualityParameterName;
227      minAvgMaxTrainingRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
228      minAvgMaxTrainingRSquaredAnalyzer.AverageValueParameter.ActualName = AverageTrainingRSquaredQualityParameterName;
229      minAvgMaxTrainingRSquaredAnalyzer.MaxValueParameter.ActualName = MaxTrainingRSquaredQualityParameterName;
230      minAvgMaxTrainingRSquaredAnalyzer.MinValueParameter.ActualName = MinTrainingRSquaredQualityParameterName;
231      minAvgMaxTrainingRSquaredAnalyzer.ValuesParameter.ActualName = RSquaredValuesParameterName;
232      minAvgMaxTrainingRSquaredAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
233      minAvgMaxTrainingRSquaredAnalyzer.CollectMinValueInResultsParameter.Value = new BoolValue(false);
234      minAvgMaxTrainingRSquaredAnalyzer.CollectAverageValueInResultsParameter.Value = new BoolValue(false);
235      minAvgMaxTrainingRSquaredAnalyzer.CollectMaxValueInResultsParameter.Value = new BoolValue(false);
236
237
238      minAvgMaxTestRSquaredAnalyzer.ValueParameter.ActualName = TestRSquaredQualityParameterName;
239      minAvgMaxTestRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
240      minAvgMaxTestRSquaredAnalyzer.AverageValueParameter.ActualName = AverageTestRSquaredQualityParameterName;
241      minAvgMaxTestRSquaredAnalyzer.MaxValueParameter.ActualName = MaxTestRSquaredQualityParameterName;
242      minAvgMaxTestRSquaredAnalyzer.MinValueParameter.ActualName = MinTestRSquaredQualityParameterName;
243      minAvgMaxTestRSquaredAnalyzer.ValuesParameter.ActualName = RSquaredValuesParameterName;
244      minAvgMaxTestRSquaredAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
245      minAvgMaxTestRSquaredAnalyzer.CollectMinValueInResultsParameter.Value = new BoolValue(false);
246      minAvgMaxTestRSquaredAnalyzer.CollectAverageValueInResultsParameter.Value = new BoolValue(false);
247      minAvgMaxTestRSquaredAnalyzer.CollectMaxValueInResultsParameter.Value = new BoolValue(false);
248
249      #endregion
250      #region training/test avg. rel. error
251      minAvgMaxTrainingRelErrorAnalyzer.ValueParameter.ActualName = TrainingAverageRelativeErrorQualityParameterName;
252      minAvgMaxTrainingRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
253      minAvgMaxTrainingRelErrorAnalyzer.AverageValueParameter.ActualName = AverageTrainingAverageRelativeErrorQualityParameterName;
254      minAvgMaxTrainingRelErrorAnalyzer.MaxValueParameter.ActualName = MaxTrainingAverageRelativeErrorQualityParameterName;
255      minAvgMaxTrainingRelErrorAnalyzer.MinValueParameter.ActualName = MinTrainingAverageRelativeErrorQualityParameterName;
256      minAvgMaxTrainingRelErrorAnalyzer.ValuesParameter.ActualName = RelativeErrorValuesParameterName;
257      minAvgMaxTrainingRelErrorAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
258      minAvgMaxTrainingRelErrorAnalyzer.CollectMinValueInResultsParameter.Value = new BoolValue(false);
259      minAvgMaxTrainingRelErrorAnalyzer.CollectAverageValueInResultsParameter.Value = new BoolValue(false);
260      minAvgMaxTrainingRelErrorAnalyzer.CollectMaxValueInResultsParameter.Value = new BoolValue(false);
261
262      minAvgMaxTestRelErrorAnalyzer.ValueParameter.ActualName = TestAverageRelativeErrorQualityParameterName;
263      minAvgMaxTestRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
264      minAvgMaxTestRelErrorAnalyzer.AverageValueParameter.ActualName = AverageTestAverageRelativeErrorQualityParameterName;
265      minAvgMaxTestRelErrorAnalyzer.MaxValueParameter.ActualName = MaxTestAverageRelativeErrorQualityParameterName;
266      minAvgMaxTestRelErrorAnalyzer.MinValueParameter.ActualName = MinTestAverageRelativeErrorQualityParameterName;
267      minAvgMaxTestRelErrorAnalyzer.ValuesParameter.ActualName = RelativeErrorValuesParameterName;
268      minAvgMaxTestRelErrorAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name;
269      minAvgMaxTestRelErrorAnalyzer.CollectMinValueInResultsParameter.Value = new BoolValue(false);
270      minAvgMaxTestRelErrorAnalyzer.CollectAverageValueInResultsParameter.Value = new BoolValue(false);
271      minAvgMaxTestRelErrorAnalyzer.CollectMaxValueInResultsParameter.Value = new BoolValue(false);
272      #endregion
273      #endregion
274
275      #region operator graph
276      OperatorGraph.InitialOperator = subScopesProcessor;
277      subScopesProcessor.Operator = trainingQualityCalculator;
278      trainingQualityCalculator.Successor = testQualityCalculator;
279      testQualityCalculator.Successor = null;
280      subScopesProcessor.Successor = minAvgMaxTrainingMseAnalyzer;
281      minAvgMaxTrainingMseAnalyzer.Successor = minAvgMaxTestMseAnalyzer;
282      minAvgMaxTestMseAnalyzer.Successor = minAvgMaxTrainingRSquaredAnalyzer;
283      minAvgMaxTrainingRSquaredAnalyzer.Successor = minAvgMaxTestRSquaredAnalyzer;
284      minAvgMaxTestRSquaredAnalyzer.Successor = minAvgMaxTrainingRelErrorAnalyzer;
285      minAvgMaxTrainingRelErrorAnalyzer.Successor = minAvgMaxTestRelErrorAnalyzer;
286      minAvgMaxTestRelErrorAnalyzer.Successor = null;
287      #endregion
288
289      Initialize();
290    }
291
292    [StorableConstructor]
293    private SymbolicRegressionModelQualityAnalyzer(bool deserializing) : base() { }
294
295    [StorableHook(HookType.AfterDeserialization)]
296    private void Initialize() {
297      SymbolicExpressionTreeParameter.DepthChanged += new EventHandler(SymbolicExpressionTreeParameter_DepthChanged);
298    }
299
300    public override IDeepCloneable Clone(Cloner cloner) {
301      SymbolicRegressionModelQualityAnalyzer clone = (SymbolicRegressionModelQualityAnalyzer)base.Clone(cloner);
302      clone.Initialize();
303      return clone;
304    }
305
306    private void SymbolicExpressionTreeParameter_DepthChanged(object sender, EventArgs e) {
307      subScopesProcessor.Depth.Value = SymbolicExpressionTreeParameter.Depth;
308      minAvgMaxTrainingMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
309      minAvgMaxTrainingRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
310      minAvgMaxTrainingRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
311      minAvgMaxTestMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
312      minAvgMaxTestRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
313      minAvgMaxTestRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth;
314    }
315  }
316}
Note: See TracBrowser for help on using the repository browser.