Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/16/19 11:43:52 (5 years ago)
Author:
mkommend
Message:

#2361: Merged all changes from the sensitivity branch to trunk.

Location:
trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification
Files:
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification

  • trunk/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator.cs

    r16784 r16788  
    11#region License Information
    22/* HeuristicLab
    3  * Copyright (C) 2002-2015 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
     3 * Copyright (C) 2002-2019 Heuristic and Evolutionary Algorithms Laboratory (HEAL)
    44 *
    55 * This file is part of HeuristicLab.
     
    2323using System.Collections.Generic;
    2424using System.Linq;
     25using HEAL.Attic;
    2526using HeuristicLab.Common;
    2627using HeuristicLab.Core;
     
    2829using HeuristicLab.Encodings.SymbolicExpressionTreeEncoding;
    2930using HeuristicLab.Parameters;
    30 using HeuristicLab.Persistence.Default.CompositeSerializers.Storable;
     31using HeuristicLab.PluginInfrastructure;
    3132
    3233namespace HeuristicLab.Problems.DataAnalysis.Symbolic.Classification {
     34  [NonDiscoverableType]
    3335  [Item("Weighted Residuals Mean Squared Error Evaluator", @"A modified mean squared error evaluator that enables the possibility to weight residuals differently.
    3436The first residual category belongs to estimated values which definitely belong to a specific class because the estimated value is located above the maximum or below the minimum of all the class values (DefiniteResidualsWeight).
     
    3638All other cases are represented by the third category (NegativeClassesResidualsWeight).
    3739The weight gets multiplied to the squared error. Note that the Evaluator acts like a normal MSE-Evaluator if all the weights are set to 1.")]
    38   [StorableClass]
    39   public class SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator : SymbolicClassificationSingleObjectiveEvaluator {
     40  [StorableType("A3193296-1A0F-46E2-8F43-22E2ED9CFFC5")]
     41  public sealed class SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator : SymbolicClassificationSingleObjectiveEvaluator {
    4042    private const string DefiniteResidualsWeightParameterName = "DefiniteResidualsWeight";
    4143    private const string PositiveClassResidualsWeightParameterName = "PositiveClassResidualsWeight";
    4244    private const string NegativeClassesResidualsWeightParameterName = "NegativeClassesResidualsWeight";
    4345    [StorableConstructor]
    44     protected SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator(bool deserializing) : base(deserializing) { }
    45     protected SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator(SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator original, Cloner cloner)
     46    private SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator(StorableConstructorFlag _) : base(_) { }
     47    private SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator(SymbolicClassificationSingleObjectiveWeightedResidualsMeanSquaredErrorEvaluator original, Cloner cloner)
    4648      : base(original, cloner) {
    4749    }
     
    7375
    7476    public double DefiniteResidualsWeight {
    75       get {
    76         return DefiniteResidualsWeightParameter.Value.Value;
    77       }
     77      get { return DefiniteResidualsWeightParameter.Value.Value; }
    7878    }
    7979    public double PositiveClassResidualsWeight {
    80       get {
    81         return PositiveClassResidualsWeightParameter.Value.Value;
    82       }
     80      get { return PositiveClassResidualsWeightParameter.Value.Value; }
    8381    }
    8482    public double NegativeClassesResidualsWeight {
    85       get {
    86         return NegativeClassesResidualsWeightParameter.Value.Value;
    87       }
     83      get { return NegativeClassesResidualsWeightParameter.Value.Value; }
    8884    }
    8985    #endregion
     
    9894    }
    9995
    100     public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree solution, double lowerEstimationLimit, double upperEstimationLimit, IClassificationProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling,
     96    public static double Calculate(ISymbolicDataAnalysisExpressionTreeInterpreter interpreter, ISymbolicExpressionTree tree, double lowerEstimationLimit, double upperEstimationLimit, IClassificationProblemData problemData, IEnumerable<int> rows, bool applyLinearScaling,
    10197      double definiteResidualsWeight, double positiveClassResidualsWeight, double negativeClassesResidualsWeight) {
    102       IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows);
     98      IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(tree, problemData.Dataset, rows);
    10399      IEnumerable<double> targetValues = problemData.Dataset.GetDoubleValues(problemData.TargetVariable, rows);
    104100      OnlineCalculatorError errorState;
     
    115111      double quality;
    116112      if (applyLinearScaling) {
    117         var calculator = new OnlineWeightedResidualsMeanSquaredErrorCalculator(positiveClassValue, classValuesMax, classValuesMin,
     113        var calculator = new OnlineWeightedClassificationMeanSquaredErrorCalculator(positiveClassValue, classValuesMax, classValuesMin,
    118114          definiteResidualsWeight, positiveClassResidualsWeight, negativeClassesResidualsWeight);
    119115        CalculateWithScaling(targetValues, estimatedValues, lowerEstimationLimit, upperEstimationLimit, calculator, problemData.Dataset.Rows);
     
    122118      } else {
    123119        IEnumerable<double> boundedEstimatedValues = estimatedValues.LimitToRange(lowerEstimationLimit, upperEstimationLimit);
    124         quality = OnlineWeightedResidualsMeanSquaredErrorCalculator.Calculate(targetValues, boundedEstimatedValues, positiveClassValue, classValuesMax,
     120        quality = OnlineWeightedClassificationMeanSquaredErrorCalculator.Calculate(targetValues, boundedEstimatedValues, positiveClassValue, classValuesMax,
    125121          classValuesMin, definiteResidualsWeight, positiveClassResidualsWeight, negativeClassesResidualsWeight, out errorState);
    126122      }
Note: See TracChangeset for help on using the changeset viewer.