Changeset 5942 for trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAbsolutePercentageErrorCalculator.cs
- Timestamp:
- 04/04/11 15:38:16 (13 years ago)
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/HeuristicLab.Problems.DataAnalysis/3.4/OnlineEvaluators/OnlineMeanAbsolutePercentageErrorCalculator.cs
r5941 r5942 25 25 26 26 namespace HeuristicLab.Problems.DataAnalysis { 27 public class OnlineMeanAbsolutePercentageError Evaluator : IOnlineEvaluator {27 public class OnlineMeanAbsolutePercentageErrorCalculator : IOnlineCalculator { 28 28 29 29 private double sre; … … 35 35 } 36 36 37 public OnlineMeanAbsolutePercentageError Evaluator() {37 public OnlineMeanAbsolutePercentageErrorCalculator() { 38 38 Reset(); 39 39 } 40 40 41 #region IOnline Evaluator Members42 private Online EvaluatorError errorState;43 public Online EvaluatorError ErrorState {41 #region IOnlineCalculator Members 42 private OnlineCalculatorError errorState; 43 public OnlineCalculatorError ErrorState { 44 44 get { return errorState; } 45 45 } … … 50 50 n = 0; 51 51 sre = 0.0; 52 errorState = Online EvaluatorError.InsufficientElementsAdded;52 errorState = OnlineCalculatorError.InsufficientElementsAdded; 53 53 } 54 54 … … 57 57 double.IsNaN(original) || double.IsInfinity(original) || 58 58 original.IsAlmost(0.0)) { 59 errorState = errorState | Online EvaluatorError.InvalidValueAdded;59 errorState = errorState | OnlineCalculatorError.InvalidValueAdded; 60 60 } else { 61 61 sre += Math.Abs((estimated - original) / original); 62 62 n++; 63 errorState = errorState & (~Online EvaluatorError.InsufficientElementsAdded); // n >= 163 errorState = errorState & (~OnlineCalculatorError.InsufficientElementsAdded); // n >= 1 64 64 } 65 65 } … … 67 67 #endregion 68 68 69 public static double Calculate(IEnumerable<double> first, IEnumerable<double> second, out Online EvaluatorError errorState) {69 public static double Calculate(IEnumerable<double> first, IEnumerable<double> second, out OnlineCalculatorError errorState) { 70 70 IEnumerator<double> firstEnumerator = first.GetEnumerator(); 71 71 IEnumerator<double> secondEnumerator = second.GetEnumerator(); 72 OnlineMeanAbsolutePercentageError Evaluator evaluator = new OnlineMeanAbsolutePercentageErrorEvaluator();72 OnlineMeanAbsolutePercentageErrorCalculator calculator = new OnlineMeanAbsolutePercentageErrorCalculator(); 73 73 74 74 // always move forward both enumerators (do not use short-circuit evaluation!) … … 76 76 double estimated = secondEnumerator.Current; 77 77 double original = firstEnumerator.Current; 78 evaluator.Add(original, estimated);78 calculator.Add(original, estimated); 79 79 } 80 80 … … 83 83 throw new ArgumentException("Number of elements in first and second enumeration doesn't match."); 84 84 } else { 85 errorState = evaluator.ErrorState;86 return evaluator.MeanAbsolutePercentageError;85 errorState = calculator.ErrorState; 86 return calculator.MeanAbsolutePercentageError; 87 87 } 88 88 }
Note: See TracChangeset
for help on using the changeset viewer.