Free cookie consent management tool by TermsFeed Policy Generator

Changeset 10750


Ignore:
Timestamp:
04/15/14 13:18:14 (11 years ago)
Author:
mkommend
Message:

#2175: Branched DataAnalysis.Symbolic.Regression with local changes.

Location:
branches/DataAnalysis.ComplexityAnalyzer/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression
Files:
2 edited
2 copied

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis.ComplexityAnalyzer/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression-3.4.csproj

    r10596 r10750  
    117117  </ItemGroup>
    118118  <ItemGroup>
     119    <Compile Include="MultiObjective\SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator.cs" />
    119120    <Compile Include="MultiObjective\SymbolicRegressionMultiObjectiveValidationBestSolutionAnalyzer.cs" />
    120121    <Compile Include="Plugin.cs" />
  • branches/DataAnalysis.ComplexityAnalyzer/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/MultiObjective/SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator.cs

    r10744 r10750  
    2828
    2929namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Regression {
    30   [Item("Pearson R² & Tree size Evaluator", "Calculates the Pearson R² and the tree size of a symbolic regression solution.")]
     30  [Item("Pearson R² & Tree Complexity Evaluator", "Calculates the Pearson R² and the tree complexity of a symbolic regression solution.")]
    3131  [StorableClass]
    32   public class SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator : SymbolicRegressionMultiObjectiveEvaluator {
     32  public class SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator : SymbolicRegressionMultiObjectiveEvaluator {
    3333    [StorableConstructor]
    34     protected SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator(bool deserializing) : base(deserializing) { }
    35     protected SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator(SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator original, Cloner cloner)
     34    protected SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator(bool deserializing) : base(deserializing) { }
     35    protected SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator(SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator original, Cloner cloner)
    3636      : base(original, cloner) {
    3737    }
    3838    public override IDeepCloneable Clone(Cloner cloner) {
    39       return new SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator(this, cloner);
     39      return new SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator(this, cloner);
    4040    }
    4141
    42     public SymbolicRegressionMultiObjectivePearsonRSquaredTreeSizeEvaluator() : base() { }
     42    public SymbolicRegressionMultiObjectivePearsonRSquaredTreeComplexityEvaluator() : base() { }
    4343
    4444    public override IEnumerable<bool> Maximization { get { return new bool[2] { true, false }; } }
     
    6969
    7070      if (errorState != OnlineCalculatorError.None) r2 = double.NaN;
    71       return new double[2] { r2, solution.Length };
     71      return new double[2] { r2, SymbolicDataAnalysisModelComplexityAnalyzer.CalculateComplexity(solution.Root.GetSubtree(0).GetSubtree(0)) };
    7272    }
    7373
  • branches/DataAnalysis.ComplexityAnalyzer/HeuristicLab.Problems.DataAnalysis.Symbolic.Regression/3.4/SymbolicRegressionSolution.cs

    r9456 r10750  
    6363    }
    6464
     65    public double ModelComplexity {
     66      get { return ((DoubleValue)this["Complexity"].Value).Value; }
     67      private set { ((DoubleValue)this["Complexity"].Value).Value = value; }
     68    }
     69
    6570    private ResultCollection EstimationLimitsResultCollection {
    6671      get { return (ResultCollection)this[EstimationLimitsResultsResultName].Value; }
     
    114119      estimationLimitResults.Add(new Result(TestNaNEvaluationsResultName, "", new IntValue()));
    115120      Add(new Result(EstimationLimitsResultsResultName, "Results concerning the estimation limits of symbolic regression solution", estimationLimitResults));
    116 
     121      Add(new Result("Complexity", "", new DoubleValue()));
    117122      RecalculateResults();
    118123    }
     
    124129    [StorableHook(HookType.AfterDeserialization)]
    125130    private void AfterDeserialization() {
     131      if (!ContainsKey("Complexity")) Add(new Result("Complexity", "", new DoubleValue()));
    126132      if (!ContainsKey(EstimationLimitsResultsResultName)) {
    127133        ResultCollection estimationLimitResults = new ResultCollection();
     
    146152      ModelLength = Model.SymbolicExpressionTree.Length;
    147153      ModelDepth = Model.SymbolicExpressionTree.Depth;
     154      ModelComplexity = SymbolicDataAnalysisModelComplexityAnalyzer.CalculateComplexity(Model.SymbolicExpressionTree.Root.GetSubtree(0).GetSubtree(0));
    148155
    149156      EstimationLimits.Lower = Model.LowerEstimationLimit;
Note: See TracChangeset for help on using the changeset viewer.