Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
03/18/11 09:57:44 (13 years ago)
Author:
gkronber
Message:

#1418 bug fixes and minor changes to improve performance in online evaluators.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DataAnalysis Refactoring/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineNormalizedMeanSquaredErrorEvaluator.cs

    r5564 r5746  
    3030    public double NormalizedMeanSquaredError {
    3131      get {
    32         return meanSquaredErrorCalculator.Mean / originalVarianceCalculator.Variance;
     32        double var = originalVarianceCalculator.Variance;
     33        double m = meanSquaredErrorCalculator.Mean;
     34        return var > 0 ? m / var : 0.0;
    3335      }
    3436    }
     
    5153
    5254    public void Add(double original, double estimated) {
    53       if (double.IsNaN(estimated) || double.IsInfinity(estimated) ||
    54           double.IsNaN(original) || double.IsInfinity(original)) {
    55         throw new ArgumentException("Mean squared error is not defined for NaN or infinity elements");
    56       } else {
    57         double error = estimated - original;
    58         meanSquaredErrorCalculator.Add(error * error);
    59         originalVarianceCalculator.Add(original);
    60       }
     55      // no need to check for validity of values explicitly as it is checked in the meanAndVariance calculator anyway
     56      double error = estimated - original;
     57      meanSquaredErrorCalculator.Add(error * error);
     58      originalVarianceCalculator.Add(original);
    6159    }
    6260    #endregion
Note: See TracChangeset for help on using the changeset viewer.