Changeset 13950 for stable/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective
- Timestamp:
- 06/29/16 13:59:19 (8 years ago)
- Location:
- stable
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
stable
- Property svn:mergeinfo changed
/trunk/sources merged: 13582,13660
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression merged: 13582,13660
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4
- Property svn:mergeinfo changed
/trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4 merged: 13582,13660
- Property svn:mergeinfo changed
-
stable/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/SymbolicRegressionSolutionsAnalyzer.cs
r13636 r13950 27 27 using HeuristicLab.Common; 28 28 using HeuristicLab.Core; 29 using HeuristicLab.Data; 29 30 using HeuristicLab.Operators; 30 31 using HeuristicLab.Optimization; … … 37 38 private const string ResultCollectionParameterName = "Results"; 38 39 private const string RegressionSolutionQualitiesResultName = "Regression Solution Qualities"; 40 private const string TrainingQualityParameterName = "TrainingRSquared"; 41 private const string TestQualityParameterName = "TestRSquared"; 39 42 40 43 public ILookupParameter<ResultCollection> ResultCollectionParameter { 41 44 get { return (ILookupParameter<ResultCollection>)Parameters[ResultCollectionParameterName]; } 45 } 46 public ILookupParameter<DoubleValue> TrainingQualityParameter { 47 get { return (ILookupParameter<DoubleValue>)Parameters[TrainingQualityParameterName]; } 48 } 49 public ILookupParameter<DoubleValue> TestQualityParameter { 50 get { return (ILookupParameter<DoubleValue>)Parameters[TestQualityParameterName]; } 42 51 } 43 52 … … 56 65 public SymbolicRegressionSolutionsAnalyzer() { 57 66 Parameters.Add(new LookupParameter<ResultCollection>(ResultCollectionParameterName, "The result collection to store the analysis results.")); 67 Parameters.Add(new LookupParameter<DoubleValue>(TrainingQualityParameterName)); 68 Parameters.Add(new LookupParameter<DoubleValue>(TestQualityParameterName)); 69 } 70 71 [StorableHook(HookType.AfterDeserialization)] 72 private void AfterDeserialization() { 73 // BackwardsCompatibility3.3 74 75 #region Backwards compatible code, remove with 3.4 76 if (!Parameters.ContainsKey(TrainingQualityParameterName)) 77 Parameters.Add(new LookupParameter<DoubleValue>(TrainingQualityParameterName)); 78 if (!Parameters.ContainsKey(TestQualityParameterName)) 79 Parameters.Add(new LookupParameter<DoubleValue>(TestQualityParameterName)); 80 #endregion 58 81 } 59 82 … … 67 90 68 91 var dataTable = (DataTable)results[RegressionSolutionQualitiesResultName].Value; 92 93 // only if the parameters are available (not available in old persisted code) 94 ILookupParameter<DoubleValue> trainingQualityParam = null; 95 ILookupParameter<DoubleValue> testQualityParam = null; 96 // store actual names of parameter because it is changed below 97 trainingQualityParam = TrainingQualityParameter; 98 string prevTrainingQualityParamName = trainingQualityParam.ActualName; 99 testQualityParam = TestQualityParameter; 100 string prevTestQualityParamName = testQualityParam.ActualName; 69 101 foreach (var result in results.Where(r => r.Value is IRegressionSolution)) { 70 102 var solution = (IRegressionSolution)result.Value; 71 103 72 var trainingR2 = result.Name + Environment.NewLine + "Training R²";73 if (!dataTable.Rows.ContainsKey(trainingR2 ))74 dataTable.Rows.Add(new DataRow(trainingR2 ));104 var trainingR2Name = result.Name + " Training R²"; 105 if (!dataTable.Rows.ContainsKey(trainingR2Name)) 106 dataTable.Rows.Add(new DataRow(trainingR2Name)); 75 107 76 var testR2 = result.Name + Environment.NewLine + " Test R²";77 if (!dataTable.Rows.ContainsKey(testR2 ))78 dataTable.Rows.Add(new DataRow(testR2 ));108 var testR2Name = result.Name + " Test R²"; 109 if (!dataTable.Rows.ContainsKey(testR2Name)) 110 dataTable.Rows.Add(new DataRow(testR2Name)); 79 111 80 dataTable.Rows[trainingR2].Values.Add(solution.TrainingRSquared); 81 dataTable.Rows[testR2].Values.Add(solution.TestRSquared); 112 dataTable.Rows[trainingR2Name].Values.Add(solution.TrainingRSquared); 113 dataTable.Rows[testR2Name].Values.Add(solution.TestRSquared); 114 115 // also add training and test R² to the scope using the parameters 116 // HACK: we change the ActualName of the parameter to write two variables for each solution in the results collection 117 trainingQualityParam.ActualName = trainingR2Name; 118 trainingQualityParam.ActualValue = new DoubleValue(solution.TrainingRSquared); 119 testQualityParam.ActualName = testR2Name; 120 testQualityParam.ActualValue = new DoubleValue(solution.TestRSquared); 82 121 } 122 123 trainingQualityParam.ActualName = prevTrainingQualityParamName; 124 testQualityParam.ActualName = prevTestQualityParamName; 83 125 84 126 return base.Apply();
Note: See TracChangeset
for help on using the changeset viewer.