I'm doing a very simple recommender based on binary data. Using GenericRecommenderIRStatsEvaluator I get nDCG = NaN for each user. My data is still very incomplete, which means an extremely low cooccurrence rate but there are some since otherwise I'd expect P and R to be 0 and they are not. For nDCG to be NaN it looks like the running average is never initialized because the user values are never initialized. How should I interpret this?
I catch the exception at the end when the average nDCG is calculated but the P, R, and F should still be OK, right? I wonder if an exception is really what you want here because it makes otherwise valid values inaccessible. I commented out the nDCG precondition and the results are weak as I'd expect but valid AFAIK. 12/12/03 10:55:11 INFO eval.GenericRecommenderIRStatsEvaluator: Precision/recall/fall-out/nDCG: 0.01214798453892877 / 0.010180472003701981 / 5.687917781641289E-5 / NaN 12/12/03 10:55:11 INFO eval.GenericRecommenderIRStatsEvaluator: Evaluated with user 2146441897 in 24ms 12/12/03 10:55:11 INFO eval.GenericRecommenderIRStatsEvaluator: Precision/recall/fall-out/nDCG: 0.012141280353200884 / 0.010175763182238659 / 5.6884648356688493E-5 / NaN Precision = 0.012141280353200884 Recall = 0.010175763182238659 F1 = 0.011071967790639152