def test_serendipity(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set, recommendations) serendipity = evaluator.serendipity() self.assertAlmostEqual(1 / 6, serendipity)
def test_novelty(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set, recommendations) novelty = evaluator.novelty() self.assertAlmostEqual(np.log(7) / np.log(2) - 2 / 3, novelty)
def test_diversity(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set, recommendations) diversity = evaluator.diversity() self.assertAlmostEqual((2 - np.sqrt(2)) / 3, diversity)
def test_ndcg(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set, recommendations) ndcg = evaluator.ndcg() self.assertAlmostEqual(np.log(3888) / np.log(11664), ndcg)
def test_recall(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set, recommendations) recall = evaluator.recall() self.assertAlmostEqual(17 / 24, recall)
def test_precision_threshold(self): local_exp = {'k': 3, 'threshold': 3} evaluator = reclab.Evaluator(local_exp, training_set, test_set, user_set, recommendations) precision = evaluator.precision() self.assertAlmostEqual(1 / 2, precision)
def test_precision(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set, recommendations) precision = evaluator.precision() self.assertAlmostEqual(5 / 6, precision)
def test_coverage(self): evaluator = reclab.Evaluator(exp, training_set, test_set, user_set[:1], recommendations[:1]) coverage = evaluator.coverage() self.assertAlmostEqual(3 / 4, coverage)