Changeset 3681 for trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/SymbolicRegressionModelQualityAnalyzer.cs
- Timestamp:
- 05/06/10 19:02:45 (14 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis.Regression/3.3/Symbolic/Analyzers/SymbolicRegressionModelQualityAnalyzer.cs
r3666 r3681 37 37 using HeuristicLab.Problems.DataAnalysis.Evaluators; 38 38 using HeuristicLab.Optimization.Operators; 39 using System; 39 40 40 41 namespace HeuristicLab.Problems.DataAnalysis.Regression.Symbolic.Analyzers { … … 42 43 /// "An operator for analyzing the quality of symbolic regression solutions symbolic expression tree encoding." 43 44 /// </summary> 44 [Item(" PopulationSymbolicRegressionModelQualityAnalyzer", "An operator for analyzing the quality of symbolic regression solutions symbolic expression tree encoding.")]45 [Item("SymbolicRegressionModelQualityAnalyzer", "An operator for analyzing the quality of symbolic regression solutions symbolic expression tree encoding.")] 45 46 [StorableClass] 46 public sealed class PopulationSymbolicRegressionModelQualityAnalyzer : AlgorithmOperator, ISymbolicRegressionSolutionPopulationAnalyzer {47 public sealed class SymbolicRegressionModelQualityAnalyzer : AlgorithmOperator, ISymbolicRegressionAnalyzer { 47 48 private const string SymbolicExpressionTreeInterpreterParameterName = "SymbolicExpressionTreeInterpreter"; 48 49 private const string SymbolicExpressionTreeParameterName = "SymbolicExpressionTree"; … … 54 55 private const string MaxTrainingMeanSquaredErrorQualityParameterName = "MaxTrainingMeanSquaredError"; 55 56 private const string AverageTrainingMeanSquaredErrorQualityParameterName = "AverageTrainingMeanSquaredError"; 57 private const string BestTrainingMeanSquaredErrorQualityParameterName = "BestTrainingMeanSquaredError"; 56 58 57 59 private const string TrainingAverageRelativeErrorQualityParameterName = "TrainingAverageRelativeError"; … … 59 61 private const string MaxTrainingAverageRelativeErrorQualityParameterName = "MaxTrainingAverageRelativeError"; 60 62 private const string AverageTrainingAverageRelativeErrorQualityParameterName = "AverageTrainingAverageRelativeError"; 63 private const string BestTrainingAverageRelativeErrorQualityParameterName = "BestTrainingAverageRelativeError"; 61 64 62 65 private const string TrainingRSquaredQualityParameterName = "TrainingRSquared"; … … 64 67 private const string MaxTrainingRSquaredQualityParameterName = "MaxTrainingRSquared"; 65 68 private const string AverageTrainingRSquaredQualityParameterName = "AverageTrainingRSquared"; 69 private const string BestTrainingRSquaredQualityParameterName = "BestTrainingRSquared"; 66 70 67 71 private const string TestMeanSquaredErrorQualityParameterName = "TestMeanSquaredError"; … … 69 73 private const string MaxTestMeanSquaredErrorQualityParameterName = "MaxTestMeanSquaredError"; 70 74 private const string AverageTestMeanSquaredErrorQualityParameterName = "AverageTestMeanSquaredError"; 75 private const string BestTestMeanSquaredErrorQualityParameterName = "BestTestMeanSquaredError"; 71 76 72 77 private const string TestAverageRelativeErrorQualityParameterName = "TestAverageRelativeError"; … … 74 79 private const string MaxTestAverageRelativeErrorQualityParameterName = "MaxTestAverageRelativeError"; 75 80 private const string AverageTestAverageRelativeErrorQualityParameterName = "AverageTestAverageRelativeError"; 81 private const string BestTestAverageRelativeErrorQualityParameterName = "BestTestAverageRelativeError"; 76 82 77 83 private const string TestRSquaredQualityParameterName = "TestRSquared"; … … 79 85 private const string MaxTestRSquaredQualityParameterName = "MaxTestRSquared"; 80 86 private const string AverageTestRSquaredQualityParameterName = "AverageTestRSquared"; 87 private const string BestTestRSquaredQualityParameterName = "BestTestRSquared"; 81 88 82 89 private const string RSquaredValuesParameterName = "R-squared Values"; … … 92 99 93 100 #region parameter properties 94 public ILookupParameter<ISymbolicExpressionTreeInterpreter> SymbolicExpressionTreeInterpreterParameter { 95 get { return (ILookupParameter<ISymbolicExpressionTreeInterpreter>)Parameters[SymbolicExpressionTreeInterpreterParameterName]; } 96 } 97 public ILookupParameter<ItemArray<SymbolicExpressionTree>> SymbolicExpressionTreeParameter { 98 get { return (ILookupParameter<ItemArray<SymbolicExpressionTree>>)Parameters[SymbolicExpressionTreeParameterName]; } 99 } 100 public ILookupParameter<DataAnalysisProblemData> ProblemDataParameter { 101 get { return (ILookupParameter<DataAnalysisProblemData>)Parameters[ProblemDataParameterName]; } 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]; } 102 127 } 103 128 public ILookupParameter<ResultCollection> ResultsParameter { 104 129 get { return (ILookupParameter<ResultCollection>)Parameters[ResultsParameterName]; } 105 130 } 106 public IValueLookupParameter<IntValue> TrainingSamplesStartParameter {107 get { return (IValueLookupParameter<IntValue>)Parameters[TrainingSamplesStartParameterName]; }108 }109 public IValueLookupParameter<IntValue> TrainingSamplesEndParameter {110 get { return (IValueLookupParameter<IntValue>)Parameters[TrainingSamplesEndParameterName]; }111 }112 public IValueLookupParameter<IntValue> TestSamplesStartParameter {113 get { return (IValueLookupParameter<IntValue>)Parameters[TestSamplesStartParameterName]; }114 }115 public IValueLookupParameter<IntValue> TestSamplesEndParameter {116 get { return (IValueLookupParameter<IntValue>)Parameters[TestSamplesEndParameterName]; }117 }118 public IValueLookupParameter<DoubleValue> UpperEstimationLimitParameter {119 get { return (IValueLookupParameter<DoubleValue>)Parameters[UpperEstimationLimitParameterName]; }120 }121 public IValueLookupParameter<DoubleValue> LowerEstimationLimitParameter {122 get { return (IValueLookupParameter<DoubleValue>)Parameters[LowerEstimationLimitParameterName]; }123 }124 131 #endregion 125 132 126 public PopulationSymbolicRegressionModelQualityAnalyzer() 133 [Storable] 134 private MinAverageMaxValueAnalyzer minAvgMaxTrainingMseAnalyzer; 135 [Storable] 136 private MinAverageMaxValueAnalyzer minAvgMaxTestMseAnalyzer; 137 [Storable] 138 private MinAverageMaxValueAnalyzer minAvgMaxTrainingRSquaredAnalyzer; 139 [Storable] 140 private MinAverageMaxValueAnalyzer minAvgMaxTestRSquaredAnalyzer; 141 [Storable] 142 private MinAverageMaxValueAnalyzer minAvgMaxTrainingRelErrorAnalyzer; 143 [Storable] 144 private MinAverageMaxValueAnalyzer minAvgMaxTestRelErrorAnalyzer; 145 146 public SymbolicRegressionModelQualityAnalyzer() 127 147 : base() { 128 Parameters.Add(new LookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used to calculate the output values of the symbolic expression tree."));129 148 Parameters.Add(new ScopeTreeLookupParameter<SymbolicExpressionTree>(SymbolicExpressionTreeParameterName, "The symbolic expression trees to analyze.")); 130 Parameters.Add(new LookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data containing the input varaibles for the symbolic regression problem."));131 Parameters.Add(new LookupParameter<ResultCollection>(ResultsParameterName, "The result collection where the best symbolic regression solution should be stored."));149 Parameters.Add(new ValueLookupParameter<ISymbolicExpressionTreeInterpreter>(SymbolicExpressionTreeInterpreterParameterName, "The interpreter that should be used to calculate the output values of the symbolic expression tree.")); 150 Parameters.Add(new ValueLookupParameter<DataAnalysisProblemData>(ProblemDataParameterName, "The problem data containing the input varaibles for the symbolic regression problem.")); 132 151 Parameters.Add(new ValueLookupParameter<IntValue>(TrainingSamplesStartParameterName, "The first index of the training data set partition on which the model quality values should be calculated.")); 133 152 Parameters.Add(new ValueLookupParameter<IntValue>(TrainingSamplesEndParameterName, "The last index of the training data set partition on which the model quality values should be calculated.")); … … 136 155 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.")); 137 156 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.")); 138 Parameters.Add(new LookupParameter<DataTable>(MeanSquaredErrorValuesParameterName, "The data table to collect mean squared error values.")); 139 Parameters.Add(new LookupParameter<DataTable>(RSquaredValuesParameterName, "The data table to collect R² correlation coefficient values.")); 140 Parameters.Add(new LookupParameter<DataTable>(RelativeErrorValuesParameterName, "The data table to collect relative error values.")); 157 Parameters.Add(new ValueLookupParameter<DataTable>(MeanSquaredErrorValuesParameterName, "The data table to collect mean squared error values.")); 158 Parameters.Add(new ValueLookupParameter<DataTable>(RSquaredValuesParameterName, "The data table to collect R² correlation coefficient values.")); 159 Parameters.Add(new ValueLookupParameter<DataTable>(RelativeErrorValuesParameterName, "The data table to collect relative error values.")); 160 Parameters.Add(new LookupParameter<ResultCollection>(ResultsParameterName, "The result collection where the best symbolic regression solution should be stored.")); 141 161 142 162 #region operator initialization … … 145 165 SymbolicRegressionModelQualityCalculator trainingQualityCalculator = new SymbolicRegressionModelQualityCalculator(); 146 166 SymbolicRegressionModelQualityCalculator testQualityCalculator = new SymbolicRegressionModelQualityCalculator(); 147 MinAverageMaxValueCalculator minAvgMaxTrainingMseCalculator = new MinAverageMaxValueCalculator(); 148 MinAverageMaxValueCalculator minAvgMaxTestMseCalculator = new MinAverageMaxValueCalculator(); 149 MinAverageMaxValueCalculator minAvgMaxTrainingR2Calculator = new MinAverageMaxValueCalculator(); 150 MinAverageMaxValueCalculator minAvgMaxTestR2Calculator = new MinAverageMaxValueCalculator(); 151 MinAverageMaxValueCalculator minAvgMaxTrainingRelErrorCalculator = new MinAverageMaxValueCalculator(); 152 MinAverageMaxValueCalculator minAvgMaxTestRelErrorCalculator = new MinAverageMaxValueCalculator(); 153 DataTableValuesCollector mseDataTableValuesCollector = new DataTableValuesCollector(); 154 DataTableValuesCollector r2DataTableValuesCollector = new DataTableValuesCollector(); 155 DataTableValuesCollector relErrorDataTableValuesCollector = new DataTableValuesCollector(); 156 ResultsCollector resultsCollector = new ResultsCollector(); 167 minAvgMaxTrainingMseAnalyzer = new MinAverageMaxValueAnalyzer(); 168 minAvgMaxTestMseAnalyzer = new MinAverageMaxValueAnalyzer(); 169 170 minAvgMaxTrainingRSquaredAnalyzer = new MinAverageMaxValueAnalyzer(); 171 minAvgMaxTestRSquaredAnalyzer = new MinAverageMaxValueAnalyzer(); 172 173 minAvgMaxTrainingRelErrorAnalyzer = new MinAverageMaxValueAnalyzer(); 174 minAvgMaxTestRelErrorAnalyzer = new MinAverageMaxValueAnalyzer(); 157 175 #endregion 158 176 159 177 #region parameter wiring 160 trainingQualityCalculator.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter. ActualName;161 trainingQualityCalculator.ProblemDataParameter.ActualName = ProblemDataParameter. ActualName;162 trainingQualityCalculator.SamplesStartParameter.ActualName = TrainingSamplesStartParameter. ActualName;163 trainingQualityCalculator.SamplesEndParameter.ActualName = TrainingSamplesEndParameter. ActualName;164 trainingQualityCalculator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter. ActualName;165 trainingQualityCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter. ActualName;166 trainingQualityCalculator.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter. ActualName;178 trainingQualityCalculator.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name; 179 trainingQualityCalculator.ProblemDataParameter.ActualName = ProblemDataParameter.Name; 180 trainingQualityCalculator.SamplesStartParameter.ActualName = TrainingSamplesStartParameter.Name; 181 trainingQualityCalculator.SamplesEndParameter.ActualName = TrainingSamplesEndParameter.Name; 182 trainingQualityCalculator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name; 183 trainingQualityCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter.Name; 184 trainingQualityCalculator.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter.Name; 167 185 trainingQualityCalculator.AverageRelativeErrorQualityParameter.ActualName = TrainingAverageRelativeErrorQualityParameterName; 168 186 trainingQualityCalculator.MeanSquaredErrorQualityParameter.ActualName = TrainingMeanSquaredErrorQualityParameterName; 169 187 trainingQualityCalculator.RSquaredQualityParameter.ActualName = TrainingRSquaredQualityParameterName; 170 188 171 testQualityCalculator.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter. ActualName;172 testQualityCalculator.ProblemDataParameter.ActualName = ProblemDataParameter. ActualName;173 testQualityCalculator.SamplesStartParameter.ActualName = TestSamplesStartParameter. ActualName;174 testQualityCalculator.SamplesEndParameter.ActualName = TestSamplesEndParameter. ActualName;175 testQualityCalculator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter. ActualName;176 testQualityCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter. ActualName;177 testQualityCalculator.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter. ActualName;189 testQualityCalculator.LowerEstimationLimitParameter.ActualName = LowerEstimationLimitParameter.Name; 190 testQualityCalculator.ProblemDataParameter.ActualName = ProblemDataParameter.Name; 191 testQualityCalculator.SamplesStartParameter.ActualName = TestSamplesStartParameter.Name; 192 testQualityCalculator.SamplesEndParameter.ActualName = TestSamplesEndParameter.Name; 193 testQualityCalculator.SymbolicExpressionTreeInterpreterParameter.ActualName = SymbolicExpressionTreeInterpreterParameter.Name; 194 testQualityCalculator.SymbolicExpressionTreeParameter.ActualName = SymbolicExpressionTreeParameter.Name; 195 testQualityCalculator.UpperEstimationLimitParameter.ActualName = UpperEstimationLimitParameter.Name; 178 196 testQualityCalculator.AverageRelativeErrorQualityParameter.ActualName = TestAverageRelativeErrorQualityParameterName; 179 197 testQualityCalculator.MeanSquaredErrorQualityParameter.ActualName = TestMeanSquaredErrorQualityParameterName; 180 198 testQualityCalculator.RSquaredQualityParameter.ActualName = TestRSquaredQualityParameterName; 181 182 #region training min/avg/max 183 minAvgMaxTrainingMseCalculator.AverageValueParameter.ActualName = AverageTrainingMeanSquaredErrorQualityParameterName; 184 minAvgMaxTrainingMseCalculator.MaxValueParameter.ActualName = MaxTrainingMeanSquaredErrorQualityParameterName; 185 minAvgMaxTrainingMseCalculator.MinValueParameter.ActualName = MinTrainingMeanSquaredErrorQualityParameterName; 186 minAvgMaxTrainingMseCalculator.ValueParameter.ActualName = TrainingMeanSquaredErrorQualityParameterName; 187 188 minAvgMaxTrainingR2Calculator.AverageValueParameter.ActualName = AverageTrainingRSquaredQualityParameterName; 189 minAvgMaxTrainingR2Calculator.MaxValueParameter.ActualName = MaxTrainingRSquaredQualityParameterName; 190 minAvgMaxTrainingR2Calculator.MinValueParameter.ActualName = MinTrainingRSquaredQualityParameterName; 191 minAvgMaxTrainingR2Calculator.ValueParameter.ActualName = TrainingRSquaredQualityParameterName; 192 193 minAvgMaxTrainingRelErrorCalculator.AverageValueParameter.ActualName = AverageTrainingAverageRelativeErrorQualityParameterName; 194 minAvgMaxTrainingRelErrorCalculator.MaxValueParameter.ActualName = MaxTrainingAverageRelativeErrorQualityParameterName; 195 minAvgMaxTrainingRelErrorCalculator.MinValueParameter.ActualName = MinTrainingAverageRelativeErrorQualityParameterName; 196 minAvgMaxTrainingRelErrorCalculator.ValueParameter.ActualName = TrainingAverageRelativeErrorQualityParameterName; 197 #endregion 198 199 #region test min/avg/max 200 minAvgMaxTestMseCalculator.AverageValueParameter.ActualName = AverageTestMeanSquaredErrorQualityParameterName; 201 minAvgMaxTestMseCalculator.MaxValueParameter.ActualName = MaxTestMeanSquaredErrorQualityParameterName; 202 minAvgMaxTestMseCalculator.MinValueParameter.ActualName = MinTestMeanSquaredErrorQualityParameterName; 203 minAvgMaxTestMseCalculator.ValueParameter.ActualName = TestMeanSquaredErrorQualityParameterName; 204 205 minAvgMaxTestR2Calculator.AverageValueParameter.ActualName = AverageTestRSquaredQualityParameterName; 206 minAvgMaxTestR2Calculator.MaxValueParameter.ActualName = MaxTestRSquaredQualityParameterName; 207 minAvgMaxTestR2Calculator.MinValueParameter.ActualName = MinTestRSquaredQualityParameterName; 208 minAvgMaxTestR2Calculator.ValueParameter.ActualName = TestRSquaredQualityParameterName; 209 210 minAvgMaxTestRelErrorCalculator.AverageValueParameter.ActualName = AverageTestAverageRelativeErrorQualityParameterName; 211 minAvgMaxTestRelErrorCalculator.MaxValueParameter.ActualName = MaxTestAverageRelativeErrorQualityParameterName; 212 minAvgMaxTestRelErrorCalculator.MinValueParameter.ActualName = MinTestAverageRelativeErrorQualityParameterName; 213 minAvgMaxTestRelErrorCalculator.ValueParameter.ActualName = TestAverageRelativeErrorQualityParameterName; 214 #endregion 215 216 mseDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(AverageTrainingMeanSquaredErrorQualityParameterName, null, AverageTrainingMeanSquaredErrorQualityParameterName)); 217 mseDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MaxTrainingMeanSquaredErrorQualityParameterName, null, MaxTrainingMeanSquaredErrorQualityParameterName)); 218 mseDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MinTrainingMeanSquaredErrorQualityParameterName, null, MinTrainingMeanSquaredErrorQualityParameterName)); 219 mseDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(AverageTestMeanSquaredErrorQualityParameterName, null, AverageTestMeanSquaredErrorQualityParameterName)); 220 mseDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MaxTestMeanSquaredErrorQualityParameterName, null, MaxTestMeanSquaredErrorQualityParameterName)); 221 mseDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MinTestMeanSquaredErrorQualityParameterName, null, MinTestMeanSquaredErrorQualityParameterName)); 222 mseDataTableValuesCollector.DataTableParameter.ActualName = MeanSquaredErrorValuesParameterName; 223 224 r2DataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(AverageTrainingRSquaredQualityParameterName, null, AverageTrainingRSquaredQualityParameterName)); 225 r2DataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MaxTrainingRSquaredQualityParameterName, null, MaxTrainingRSquaredQualityParameterName)); 226 r2DataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MinTrainingRSquaredQualityParameterName, null, MinTrainingRSquaredQualityParameterName)); 227 r2DataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(AverageTestRSquaredQualityParameterName, null, AverageTestRSquaredQualityParameterName)); 228 r2DataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MaxTestRSquaredQualityParameterName, null, MaxTestRSquaredQualityParameterName)); 229 r2DataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MinTestRSquaredQualityParameterName, null, MinTestRSquaredQualityParameterName)); 230 r2DataTableValuesCollector.DataTableParameter.ActualName = RSquaredValuesParameterName; 231 232 relErrorDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(AverageTrainingAverageRelativeErrorQualityParameterName, null, AverageTrainingAverageRelativeErrorQualityParameterName)); 233 relErrorDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MaxTrainingAverageRelativeErrorQualityParameterName, null, MaxTrainingAverageRelativeErrorQualityParameterName)); 234 relErrorDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MinTrainingAverageRelativeErrorQualityParameterName, null, MinTrainingAverageRelativeErrorQualityParameterName)); 235 relErrorDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(AverageTestAverageRelativeErrorQualityParameterName, null, AverageTestAverageRelativeErrorQualityParameterName)); 236 relErrorDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MaxTestAverageRelativeErrorQualityParameterName, null, MaxTestAverageRelativeErrorQualityParameterName)); 237 relErrorDataTableValuesCollector.CollectedValues.Add(new LookupParameter<DoubleValue>(MinTestAverageRelativeErrorQualityParameterName, null, MinTestAverageRelativeErrorQualityParameterName)); 238 relErrorDataTableValuesCollector.DataTableParameter.ActualName = RelativeErrorValuesParameterName; 239 240 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(MeanSquaredErrorValuesParameterName)); 241 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(RSquaredValuesParameterName)); 242 resultsCollector.CollectedValues.Add(new LookupParameter<DataTable>(RelativeErrorValuesParameterName)); 243 resultsCollector.ResultsParameter.ActualName = ResultsParameter.Name; 244 199 #region training/test MSE 200 minAvgMaxTrainingMseAnalyzer.ValueParameter.ActualName = TrainingMeanSquaredErrorQualityParameterName; 201 minAvgMaxTrainingMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 202 minAvgMaxTrainingMseAnalyzer.AverageValueParameter.ActualName = AverageTrainingMeanSquaredErrorQualityParameterName; 203 minAvgMaxTrainingMseAnalyzer.MaxValueParameter.ActualName = MaxTrainingMeanSquaredErrorQualityParameterName; 204 minAvgMaxTrainingMseAnalyzer.MinValueParameter.ActualName = MinTrainingMeanSquaredErrorQualityParameterName; 205 minAvgMaxTrainingMseAnalyzer.ValuesParameter.ActualName = MeanSquaredErrorValuesParameterName; 206 minAvgMaxTrainingMseAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name; 207 208 minAvgMaxTestMseAnalyzer.ValueParameter.ActualName = TestMeanSquaredErrorQualityParameterName; 209 minAvgMaxTestMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 210 minAvgMaxTestMseAnalyzer.AverageValueParameter.ActualName = AverageTestMeanSquaredErrorQualityParameterName; 211 minAvgMaxTestMseAnalyzer.MaxValueParameter.ActualName = MaxTestMeanSquaredErrorQualityParameterName; 212 minAvgMaxTestMseAnalyzer.MinValueParameter.ActualName = MinTestMeanSquaredErrorQualityParameterName; 213 minAvgMaxTestMseAnalyzer.ValuesParameter.ActualName = MeanSquaredErrorValuesParameterName; 214 minAvgMaxTestMseAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name; 215 #endregion 216 #region training/test R² 217 minAvgMaxTrainingRSquaredAnalyzer.ValueParameter.ActualName = TrainingRSquaredQualityParameterName; 218 minAvgMaxTrainingRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 219 minAvgMaxTrainingRSquaredAnalyzer.AverageValueParameter.ActualName = AverageTrainingRSquaredQualityParameterName; 220 minAvgMaxTrainingRSquaredAnalyzer.MaxValueParameter.ActualName = MaxTrainingRSquaredQualityParameterName; 221 minAvgMaxTrainingRSquaredAnalyzer.MinValueParameter.ActualName = MinTrainingRSquaredQualityParameterName; 222 minAvgMaxTrainingRSquaredAnalyzer.ValuesParameter.ActualName = RSquaredValuesParameterName; 223 minAvgMaxTrainingRSquaredAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name; 224 225 minAvgMaxTestRSquaredAnalyzer.ValueParameter.ActualName = TestRSquaredQualityParameterName; 226 minAvgMaxTestRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 227 minAvgMaxTestRSquaredAnalyzer.AverageValueParameter.ActualName = AverageTestRSquaredQualityParameterName; 228 minAvgMaxTestRSquaredAnalyzer.MaxValueParameter.ActualName = MaxTestRSquaredQualityParameterName; 229 minAvgMaxTestRSquaredAnalyzer.MinValueParameter.ActualName = MinTestRSquaredQualityParameterName; 230 minAvgMaxTestRSquaredAnalyzer.ValuesParameter.ActualName = RSquaredValuesParameterName; 231 minAvgMaxTestRSquaredAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name; 232 #endregion 233 #region training/test avg. rel. error 234 minAvgMaxTrainingRelErrorAnalyzer.ValueParameter.ActualName = TrainingAverageRelativeErrorQualityParameterName; 235 minAvgMaxTrainingRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 236 minAvgMaxTrainingRelErrorAnalyzer.AverageValueParameter.ActualName = AverageTrainingAverageRelativeErrorQualityParameterName; 237 minAvgMaxTrainingRelErrorAnalyzer.MaxValueParameter.ActualName = MaxTrainingAverageRelativeErrorQualityParameterName; 238 minAvgMaxTrainingRelErrorAnalyzer.MinValueParameter.ActualName = MinTrainingAverageRelativeErrorQualityParameterName; 239 minAvgMaxTrainingRelErrorAnalyzer.ValuesParameter.ActualName = RelativeErrorValuesParameterName; 240 minAvgMaxTrainingRelErrorAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name; 241 242 minAvgMaxTestRelErrorAnalyzer.ValueParameter.ActualName = TestAverageRelativeErrorQualityParameterName; 243 minAvgMaxTestRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 244 minAvgMaxTestRelErrorAnalyzer.AverageValueParameter.ActualName = AverageTestAverageRelativeErrorQualityParameterName; 245 minAvgMaxTestRelErrorAnalyzer.MaxValueParameter.ActualName = MaxTestAverageRelativeErrorQualityParameterName; 246 minAvgMaxTestRelErrorAnalyzer.MinValueParameter.ActualName = MinTestAverageRelativeErrorQualityParameterName; 247 minAvgMaxTestRelErrorAnalyzer.ValuesParameter.ActualName = RelativeErrorValuesParameterName; 248 minAvgMaxTestRelErrorAnalyzer.ResultsParameter.ActualName = ResultsParameter.Name; 249 #endregion 245 250 #endregion 246 251 … … 250 255 trainingQualityCalculator.Successor = testQualityCalculator; 251 256 testQualityCalculator.Successor = null; 252 subScopesProcessor.Successor = minAvgMaxTrainingMseCalculator; 253 minAvgMaxTrainingMseCalculator.Successor = minAvgMaxTestMseCalculator; 254 minAvgMaxTestMseCalculator.Successor = minAvgMaxTrainingR2Calculator; 255 minAvgMaxTrainingR2Calculator.Successor = minAvgMaxTestR2Calculator; 256 minAvgMaxTestR2Calculator.Successor = minAvgMaxTrainingRelErrorCalculator; 257 minAvgMaxTrainingRelErrorCalculator.Successor = minAvgMaxTestRelErrorCalculator; 258 minAvgMaxTestRelErrorCalculator.Successor = mseDataTableValuesCollector; 259 mseDataTableValuesCollector.Successor = r2DataTableValuesCollector; 260 r2DataTableValuesCollector.Successor = relErrorDataTableValuesCollector; 261 relErrorDataTableValuesCollector.Successor = resultsCollector; 262 #endregion 263 257 subScopesProcessor.Successor = minAvgMaxTrainingMseAnalyzer; 258 minAvgMaxTrainingMseAnalyzer.Successor = minAvgMaxTestMseAnalyzer; 259 minAvgMaxTestMseAnalyzer.Successor = minAvgMaxTrainingRSquaredAnalyzer; 260 minAvgMaxTrainingRSquaredAnalyzer.Successor = minAvgMaxTestRSquaredAnalyzer; 261 minAvgMaxTestRSquaredAnalyzer.Successor = minAvgMaxTrainingRelErrorAnalyzer; 262 minAvgMaxTrainingRelErrorAnalyzer.Successor = minAvgMaxTestRelErrorAnalyzer; 263 minAvgMaxTestRelErrorAnalyzer.Successor = null; 264 #endregion 265 266 Initialize(); 267 } 268 269 [StorableConstructor] 270 private SymbolicRegressionModelQualityAnalyzer(bool deserializing) : base() { } 271 272 [StorableHook(HookType.AfterDeserialization)] 273 private void Initialize() { 274 SymbolicExpressionTreeParameter.DepthChanged += new EventHandler(SymbolicExpressionTreeParameter_DepthChanged); 275 } 276 277 public override IDeepCloneable Clone(Cloner cloner) { 278 SymbolicRegressionModelQualityAnalyzer clone = (SymbolicRegressionModelQualityAnalyzer)base.Clone(cloner); 279 clone.Initialize(); 280 return clone; 281 } 282 283 private void SymbolicExpressionTreeParameter_DepthChanged(object sender, EventArgs e) { 284 minAvgMaxTrainingMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 285 minAvgMaxTrainingRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 286 minAvgMaxTrainingRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 287 minAvgMaxTestMseAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 288 minAvgMaxTestRelErrorAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 289 minAvgMaxTestRSquaredAnalyzer.ValueParameter.Depth = SymbolicExpressionTreeParameter.Depth; 264 290 } 265 291 }
Note: See TracChangeset
for help on using the changeset viewer.