If you run this version of GroupLensRecommenderEvaluatorRunner, an odd thing
happens. The first evaluation will be number X, the second will be Y, the
third will be Y, ..., the Nth will be Y. The same Y as the second and the
third and the fourth. The RecommenderEvaluator implementation is stochastic,
but this should be a different number each time. Anyone know how this could
happen? (You can load the DataModel outside the loop, the numbers are the
same.)

 public static void main(String... args) throws IOException, TasteException,
OptionException {
    File ratingsFile = TasteOptionParser.getRatings(args);
    long first = System.currentTimeMillis();
    long last = first;
    for(int i = 0; i < 30; i++) {
      DataModel model = ratingsFile == null ? new GroupLensDataModel() : new
GroupLensDataModel(ratingsFile);
      RecommenderEvaluator evaluator = new
AverageAbsoluteDifferenceRecommenderEvaluator();
      double evaluation = evaluator.evaluate(new
GroupLensRecommenderBuilder(),
          null,
          model,
          0.9,
          0.3);
      long now = System.currentTimeMillis();
      log.info("Result #{}: {}", i, String.valueOf(evaluation));
      log.info("\t{} ms", now - last);
      last = System.currentTimeMillis();
    }
    log.info("Total time: {} ms", last - first);
  }


-- 
Lance Norskog
[email protected]

Reply via email to