Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
08/12/15 10:35:02 (9 years ago)
Author:
mkommend
Message:

#2175: Merged trunk changes and extracted parameters of evaluators to their base class.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis.ComplexityAnalyzer/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/PearsonRSquaredNestedTreeSizeEvaluator.cs

    r12147 r12848  
    2727using HeuristicLab.Data;
    2828using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    29 using HeuristicLab.Parameters;
    3029using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
    3130
     
    3433  [StorableClass]
    3534  public class PearsonRSquaredNestedTreeSizeEvaluator : SymbolicRegressionMultiObjectiveEvaluator {
    36     private const string useConstantOptimizationParameterName = "Use constant optimization";
    37     public IFixedValueParameter<BoolValue> UseConstantOptimizationParameter {
    38       get { return (IFixedValueParameter<BoolValue>)Parameters[useConstantOptimizationParameterName]; }
    39     }
    40     public bool UseConstantOptimization {
    41       get { return UseConstantOptimizationParameter.Value.Value; }
    42       set { UseConstantOptimizationParameter.Value.Value = value; }
    43     }
    44 
    4535    [StorableConstructor]
    4636    protected PearsonRSquaredNestedTreeSizeEvaluator(bool deserializing) : base(deserializing) { }
     
    5242    }
    5343
    54     public PearsonRSquaredNestedTreeSizeEvaluator()
    55       : base() {
    56       Parameters.Add(new FixedValueParameter<BoolValue>(useConstantOptimizationParameterName, "", new BoolValue(false)));
    57     }
     44    public PearsonRSquaredNestedTreeSizeEvaluator() : base() { }
    5845
    5946    public override IEnumerable<bool> Maximization { get { return new bool[2] { true, false }; } }
     
    7158      }
    7259
    73       double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value);
     60      double[] qualities = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, solution, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, ProblemDataParameter.ActualValue, rows, ApplyLinearScalingParameter.ActualValue.Value, DecimalPlaces);
    7461      QualitiesParameter.ActualValue = new DoubleArray(qualities);
    7562      return base.InstrumentedApply();
    7663    }
    7764
    78     public static double[] Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, IRegressionProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling) {
     65    public static double[] Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, IRegressionProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling, int decimalPlaces) {
    7966      double r2 = SymbolicRegressionSingleObjectivePearsonRSquaredEvaluator.Calculate(interpreter, solution, lowerEstimationLimit, upperEstimationLimit, problemData, rows, applyLinearScaling);
    80       r2 = Math.Round(r2, 3);
     67      if (decimalPlaces >= 0)
     68        r2 = Math.Round(r2, decimalPlaces);
    8169      return new double[2] { r2, solution.IterateNodesPostfix().Sum(n => n.GetLength()) };
    8270    }
     
    8775      ApplyLinearScalingParameter.ExecutionContext = context;
    8876
    89       double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows, ApplyLinearScalingParameter.ActualValue.Value);
     77      double[] quality = Calculate(SymbolicDataAnalysisTreeInterpreterParameter.ActualValue, tree, EstimationLimitsParameter.ActualValue.Lower, EstimationLimitsParameter.ActualValue.Upper, problemData, rows, ApplyLinearScalingParameter.ActualValue.Value, DecimalPlaces);
    9078
    9179      SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
Note: See TracChangeset for help on using the changeset viewer.