Changeset 18103 for branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectiveMeanAbsoluteErrorEvaluator.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/SymbolicRegressionSingleObjectiveMeanAbsoluteErrorEvaluator.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(tree, 49 ProblemDataParameter.ActualValue, rows, 50 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, 66 double upperEstimationLimit) { 67 IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, rows); 56 68 IEnumerable<double> targetValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, rows); 57 69 OnlineCalculatorError errorState; … … 76 88 ApplyLinearScalingParameter.ExecutionContext = context; 77 89 78 double mse = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows, ApplyLinearScalingParameter.ActualValue.Value); 90 double mse = Calculate( 91 tree, problemData, rows, 92 SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, 93 ApplyLinearScalingParameter.ActualValue.Value, 94 EstimationLimitsParameter.ActualValue.Lower, 95 EstimationLimitsParameter.ActualValue.Upper); 79 96 80 97 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; … … 85 102 } 86 103 87 public override double Evaluate(IRegressionProblemData problemData, 88 ISymbolicExpressionTree solution, 104 public override double Evaluate( 105 ISymbolicExpressionTree tree, 106 IRegressionProblemData problemData, 107 IEnumerable<int> rows, 89 108 ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 90 IEnumerable<int> rows = null,91 109 bool applyLinearScaling = true, 92 110 double lowerEstimationLimit = double.MinValue, 93 111 double upperEstimationLimit = double.MaxValue) { 94 return Calculate( interpreter, solution, lowerEstimationLimit, upperEstimationLimit, problemData, rows ?? problemData.TrainingIndices, applyLinearScaling);112 return Calculate(tree, problemData, rows, interpreter, applyLinearScaling, lowerEstimationLimit, upperEstimationLimit); 95 113 } 96 114 }
Note: See TracChangeset
for help on using the changeset viewer.