Changeset 18103 for branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator.cs
- Timestamp:
- 12/02/21 17:23:10 (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanSquaredErrorEvaluator.cs
r18095 r18103 43 43 44 44 public override IOperation InstrumentedApply() { 45 var solution= SymbolicExpressionTreeParameter.ActualValue;45 var tree = SymbolicExpressionTreeParameter.ActualValue; 46 46 IEnumerable<int> rows = GenerateRowsToEvaluate(); 47 47 48 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value); 48 double quality = Calculate( 49 tree, ProblemDataParameter.ActualValue, 50 rows, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, 51 ApplyLinearScalingParameter.ActualValue.Value, 52 EstimationLimitsParameter.ActualValue.Lower, 53 EstimationLimitsParameter.ActualValue.Upper); 49 54 QualityParameter.ActualValue = new DoubleValue(quality); 50 55 … … 52 57 } 53 58 54 public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, IRegressionProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling) { 55 IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows); 59 public static double Calculate( 60 ISymbolicExpressionTree tree, 61 IRegressionProblemData problemData, 62 IEnumerable<int> rows, 63 ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 64 bool applyLinearScaling, 65 double lowerEstimationLimit, double upperEstimationLimit) { 66 IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, rows); 56 67 IEnumerable<double> targetValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, rows); 57 68 OnlineCalculatorError errorState; … … 76 87 ApplyLinearScalingParameter.ExecutionContext = context; 77 88 78 double mse = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows, ApplyLinearScalingParameter.ActualValue.Value); 89 double mse = Calculate( 90 tree, problemData, rows, 91 SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, 92 ApplyLinearScalingParameter.ActualValue.Value, 93 EstimationLimitsParameter.ActualValue.Lower, 94 EstimationLimitsParameter.ActualValue.Upper); 79 95 80 96 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; … … 85 101 } 86 102 87 public override double Evaluate(IRegressionProblemData problemData, 88 ISymbolicExpressionTree solution, 103 public override double Evaluate( 104 ISymbolicExpressionTree tree, 105 IRegressionProblemData problemData, 106 IEnumerable<int> rows, 89 107 ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 90 IEnumerable<int> rows = null,91 108 bool applyLinearScaling = true, 92 109 double lowerEstimationLimit = double.MinValue, 93 110 double upperEstimationLimit = double.MaxValue) { 94 return Calculate( interpreter, solution, lowerEstimationLimit, upperEstimationLimit, problemData, rows ?? problemData.TrainingIndices, applyLinearScaling);111 return Calculate(tree, problemData, rows, interpreter, applyLinearScaling, lowerEstimationLimit, upperEstimationLimit); 95 112 } 96 113 }
Note: See TracChangeset
for help on using the changeset viewer.