Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
07/06/09 17:12:37 (15 years ago)
Author:
gkronber
Message:

Improved handling of exceptional cases in data-based modeling evaluators. #688 (SimpleEvaluators should handle exceptional cases more gracefully)

Location:
trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators/CoefficientOfDeterminationEvaluator.cs

    r1894 r2136  
    3737      }
    3838    }
    39    
     39
    4040    public override string Description {
    4141      get {
     
    4646
    4747    public override double Evaluate(double[,] values) {
    48 
    49       double quality = SimpleR2Evaluator.Calculate(values);
    50       if (double.IsNaN(quality) || double.IsInfinity(quality))
    51         quality = double.MaxValue;
    52 
    53       return quality;
     48      try {
     49        return SimpleR2Evaluator.Calculate(values);
     50      }
     51      catch (ArgumentException) {
     52        return double.NegativeInfinity;
     53      }
    5454    }
    5555  }
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators/MeanAbsolutePercentageErrorEvaluator.cs

    r1894 r2136  
    4646
    4747    public override double Evaluate(double[,] values) {
    48       double quality = SimpleMeanAbsolutePercentageErrorEvaluator.Calculate(values);
    49       if (double.IsNaN(quality) || double.IsInfinity(quality))
    50         quality = double.MaxValue;
    51 
    52       return quality;
     48      try {
     49        return SimpleMeanAbsolutePercentageErrorEvaluator.Calculate(values);
     50      }
     51      catch (ArgumentException) {
     52        return double.PositiveInfinity;
     53      }
    5354    }
    5455  }
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators/MeanAbsolutePercentageOfRangeErrorEvaluator.cs

    r1894 r2136  
    4545
    4646    public override double Evaluate(double[,] values) {
    47       double quality = SimpleMeanAbsolutePercentageOfRangeErrorEvaluator.Calculate(values);
    48       if (double.IsNaN(quality) || double.IsInfinity(quality))
    49         quality = double.MaxValue;
    50 
    51       return quality;
     47      try { return SimpleMeanAbsolutePercentageOfRangeErrorEvaluator.Calculate(values); }
     48      catch (ArgumentException) {
     49        return double.PositiveInfinity;
     50      }
    5251    }
    5352  }
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators/MeanSquaredErrorEvaluator.cs

    r1894 r2136  
    4545
    4646    public override double Evaluate(double[,] values) {
    47       double quality = SimpleMSEEvaluator.Calculate(values);
    48 
    49       if (double.IsNaN(quality) || double.IsInfinity(quality)) {
    50         quality = double.MaxValue;
     47      try { return SimpleMSEEvaluator.Calculate(values); }
     48      catch (ArgumentException) {
     49        return double.PositiveInfinity;
    5150      }
    52 
    53       return quality;
    5451    }
    5552  }
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators/VariableQualityImpactCalculator.cs

    r2043 r2136  
    4646      evaluator.PrepareForEvaluation(dataset, targetVariable, start, end, punishmentFactor, tree);
    4747
    48       double[,] result = new double[end - start,2];
     48      double[,] result = new double[end - start, 2];
    4949      for (int i = start; i < end; i++) {
    5050        result[i - start, 0] = dataset.GetValue(i, targetVariable);
    51         result[i - start,1] = evaluator.Evaluate(i);
     51        result[i - start, 1] = evaluator.Evaluate(i);
    5252      }
    5353
    54       return HeuristicLab.Modeling.SimpleMSEEvaluator.Calculate(result);
     54      try {
     55        return HeuristicLab.Modeling.SimpleMSEEvaluator.Calculate(result);
     56      }
     57      catch (ArgumentException) {
     58        return double.PositiveInfinity;
     59      }
    5560    }
    5661  }
  • trunk/sources/HeuristicLab.GP.StructureIdentification/3.3/Evaluators/VarianceAccountedForEvaluator.cs

    r1894 r2136  
    5454
    5555    public override double Evaluate(double[,] values) {
    56       double quality = SimpleVarianceAccountedForEvaluator.Calculate(values);
    57 
    58       if (double.IsNaN(quality) || double.IsInfinity(quality)) {
    59         quality = double.MaxValue;
     56      try { return SimpleVarianceAccountedForEvaluator.Calculate(values); }
     57      catch (ArgumentException) {
     58        return double.NegativeInfinity;
    6059      }
    61       return quality;
    6260    }
    6361  }
Note: See TracChangeset for help on using the changeset viewer.