Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/27/16 16:21:07 (8 years ago)
Author:
abeham
Message:

#2457:

  • changed expected runtime calculation
    • now outputs positive infinity instead of nan when no run was successful
    • now filters outliers in successful and unsuccessful runs by using two standard deviations of the mean of successful runs as lower bound
      • this change allows having unsuccessful runs in the database with low evaluations / runtime (e.g. due to being aborted early or from an experiment where the max budget was lower)
  • worked on recommendation algorithms
    • implemented several performance measures (absolute error, absolute log error, ndcp, kendall's tau) to evaluate the ranking
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/PerformanceComparison/HeuristicLab.Analysis/3.3/QualityAnalysis/ExpectedRuntimeHelper.cs

    r13774 r13803  
    1 using HeuristicLab.Optimization;
     1using HeuristicLab.Common;
     2using HeuristicLab.Optimization;
    23using System;
    34using System.Collections.Generic;
     
    2425      }
    2526
    26       var ert = double.NaN;
     27      var ert = double.PositiveInfinity;
    2728
     29      var nRuns = successful.Count + unsuccessful.Count;
    2830      if (successful.Count > 0) {
    29         if (unsuccessful.Count == 0) ert = successful.Average();
    30         else {
    31           var ps = successful.Count / (double)(successful.Count + unsuccessful.Count);
    32           ert = successful.Average() + ((1.0 - ps) / ps) * unsuccessful.Average();
    33         }
     31        var succAvg = successful.Average();
     32        var succDev = successful.StandardDeviation();
     33        successful.RemoveAll(x => x < succAvg - 2 * succDev);
     34        unsuccessful.RemoveAll(x => x < succAvg - 2 * succDev);
     35        nRuns = successful.Count + unsuccessful.Count;
     36
     37        ert = successful.Average() / (successful.Count / (double)nRuns);
    3438      }
    35       return new ErtCalculationResult(successful.Count, (successful.Count + unsuccessful.Count), ert);
     39      return new ErtCalculationResult(successful.Count, nRuns, ert);
    3640    }
    3741
Note: See TracChangeset for help on using the changeset viewer.