Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/30/11 18:04:03 (14 years ago)
Author:
gkronber
Message:

#1453: Added an ErrorState property to online evaluators to indicate if the result value is valid or if there has been an error in the calculation. Adapted all classes that use one of the online evaluators to check this property.

Location:
trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectiveMeanSquaredErrorTreeSizeEvaluator.cs

    r5851 r5894  
    5858      IEnumerable<double> originalValues = problemData.Dataset.GetEnumeratedVariableValues(problemData.TargetVariable, rows);
    5959      IEnumerable<double> boundedEstimationValues = estimatedValues.LimitToRange(lowerEstimationLimit, upperEstimationLimit);
    60       double mse = OnlineMeanSquaredErrorEvaluator.Calculate(originalValues, boundedEstimationValues);
     60      OnlineEvaluatorError errorState;
     61      double mse = OnlineMeanSquaredErrorEvaluator.Calculate(originalValues, boundedEstimationValues, out errorState);
     62      if (errorState != OnlineEvaluatorError.None) mse = double.NaN;
    6163      return new double[2] { mse, solution.Length };
    6264    }
     
    7274      SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
    7375      EstimationLimitsParameter.ExecutionContext = null;
    74       EvaluatedNodesParameter.ExecutionContext = null; 
     76      EvaluatedNodesParameter.ExecutionContext = null;
    7577
    7678      return quality;
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/MultiObjective/SymbolicClassificationMultiObjectivePearsonRSquaredTreeSizeEvaluator.cs

    r5851 r5894  
    3737      IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows);
    3838      IEnumerable<double> originalValues = problemData.Dataset.GetEnumeratedVariableValues(problemData.TargetVariable, rows);
    39       double r2 = OnlinePearsonsRSquaredEvaluator.Calculate(estimatedValues, originalValues);
    40       return new double[] { double.IsNaN(r2) ? 0.0 : r2, solution.Length };
     39      OnlineEvaluatorError errorState;
     40      double r2 = OnlinePearsonsRSquaredEvaluator.Calculate(estimatedValues, originalValues, out errorState);
     41      if (errorState != OnlineEvaluatorError.None) r2 = 0.0;
     42      return new double[] { r2, solution.Length };
     43
    4144    }
    4245
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveBoundedMeanSquaredErrorEvaluator.cs

    r5851 r5894  
    6363      IEnumerator<double> originalEnumerator = originalValues.GetEnumerator();
    6464      IEnumerator<double> estimatedEnumerator = estimatedValues.GetEnumerator();
    65       OnlineMeanSquaredErrorEvaluator mseEvaluator = new OnlineMeanSquaredErrorEvaluator();
    6665      double errorSum = 0.0;
    6766      int n = 0;
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectiveMeanSquaredErrorEvaluator.cs

    r5851 r5894  
    5858      IEnumerable<double> originalValues = problemData.Dataset.GetEnumeratedVariableValues(problemData.TargetVariable, rows);
    5959      IEnumerable<double> boundedEstimationValues = estimatedValues.LimitToRange(lowerEstimationLimit, upperEstimationLimit);
    60       return OnlineMeanSquaredErrorEvaluator.Calculate(originalValues, boundedEstimationValues);
     60      OnlineEvaluatorError errorState;
     61      double mse = OnlineMeanSquaredErrorEvaluator.Calculate(originalValues, boundedEstimationValues, out errorState);
     62      if (errorState != OnlineEvaluatorError.None) return double.NaN;
     63      else return mse;
    6164    }
    6265
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SingleObjective/SymbolicClassificationSingleObjectivePearsonRSquaredEvaluator.cs

    r5851 r5894  
    5858      IEnumerable<double> estimatedValues = interpreter.GetSymbolicExpressionTreeValues(solution, problemData.Dataset, rows);
    5959      IEnumerable<double> originalValues = problemData.Dataset.GetEnumeratedVariableValues(problemData.TargetVariable, rows);
    60       double r2 = OnlinePearsonsRSquaredEvaluator.Calculate(estimatedValues, originalValues);
    61       return double.IsNaN(r2) ? 0.0 : r2;
     60      OnlineEvaluatorError errorState;
     61      double r2 = OnlinePearsonsRSquaredEvaluator.Calculate(estimatedValues, originalValues, out errorState);
     62      if (errorState != OnlineEvaluatorError.None) return 0.0;
     63      else return r2;
    6264    }
    6365
     
    7274      SymbolicDataAnalysisTreeInterpreterParameter.ExecutionContext = null;
    7375      EstimationLimitsParameter.ExecutionContext = null;
    74       EvaluatedNodesParameter.ExecutionContext = null; 
     76      EvaluatedNodesParameter.ExecutionContext = null;
    7577
    7678      return r2;
  • trunk/sources/HeuristicLab.Problems.DataAnalysis.Symbolic.Classification/3.4/SymbolicDiscriminantFunctionClassificationModel.cs

    r5818 r5894  
    124124      double alpha;
    125125      double beta;
    126       OnlineLinearScalingParameterCalculator.Calculate(estimatedValues, targetValues, out alpha, out beta);
     126      OnlineEvaluatorError errorState;
     127      OnlineLinearScalingParameterCalculator.Calculate(estimatedValues, targetValues, out alpha, out beta, out errorState);
     128      if (errorState != OnlineEvaluatorError.None) return;
    127129
    128130      ConstantTreeNode alphaTreeNode = null;
Note: See TracChangeset for help on using the changeset viewer.