Changeset 18103 for branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.cs
- Timestamp:
- 12/02/21 17:23:10 (7 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/3136_Structural_GP/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SingleObjective/Evaluators/SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.cs
r18095 r18103 48 48 IEnumerable<int> rows = GenerateRowsToEvaluate(); 49 49 50 double quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value); 50 double quality = Calculate( 51 solution, ProblemDataParameter.ActualValue, 52 rows, SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, 53 ApplyLinearScalingParameter.ActualValue.Value, 54 EstimationLimitsParameter.ActualValue.Lower, 55 EstimationLimitsParameter.ActualValue.Upper); 51 56 QualityParameter.ActualValue = new DoubleValue(quality); 52 57 … … 54 59 } 55 60 56 public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, IRegressionProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling) { 57 IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows); 61 //TODO: refactor like evaluate method 62 public static double Calculate( 63 ISymbolicExpressionTree tree, 64 IRegressionProblemData problemData, 65 IEnumerable<int> rows, 66 ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 67 bool applyLinearScaling, 68 double lowerEstimationLimit, 69 double upperEstimationLimit) { 70 IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, rows); 58 71 IEnumerable<double> targetValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, rows); 59 72 OnlineCalculatorError errorState; … … 78 91 ApplyLinearScalingParameter.ExecutionContext = context; 79 92 80 double r2 = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows, ApplyLinearScalingParameter.ActualValue.Value); 93 double r2 = Calculate( 94 tree, problemData, rows, 95 SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, 96 ApplyLinearScalingParameter.ActualValue.Value, 97 EstimationLimitsParameter.ActualValue.Lower, 98 EstimationLimitsParameter.ActualValue.Upper); 81 99 82 100 SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null; … … 87 105 } 88 106 89 public override double Evaluate(IRegressionProblemData problemData, 90 ISymbolicExpressionTree solution, 107 public override double Evaluate( 108 ISymbolicExpressionTree tree, 109 IRegressionProblemData problemData, 110 IEnumerable<int> rows, 91 111 ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, 92 IEnumerable<int> rows = null,93 112 bool applyLinearScaling = true, 94 113 double lowerEstimationLimit = double.MinValue, 95 114 double upperEstimationLimit = double.MaxValue) { 96 return Calculate(interpreter, solution, lowerEstimationLimit, upperEstimationLimit, problemData, rows ?? problemData.TrainingIndices, applyLinearScaling); 115 return Calculate( 116 tree, problemData, rows, 117 interpreter, applyLinearScaling, 118 lowerEstimationLimit, upperEstimationLimit); 97 119 } 98 120 }
Note: See TracChangeset
for help on using the changeset viewer.