def testEvaluateRankingLastZeroWithCutoff(self): ev = NdcgEval() dot_prod = np.dot(self.query.get_feature_vectors(), self.zero_weights.transpose()) ranking = ev._sort_docids_by_score(self.query.get_docids(), dot_prod, ties="last") self.assertAlmostEquals( 0.4452805, ev.evaluate_ranking(ranking, self.query, cutoff=10))
def __init__(self, folder: Path, um: str) -> None: train = str(folder / "train.txt") test = str(folder / "test.txt") self.n_rankers = 5 self.num_features = 45 self.train = load_queries(train, self.num_features) self.test = load_queries(test, self.num_features) print("Found {} train queries and {} test queries.".format( len(self.train), len(self.test))) self.ml = TeamDraftMultileave() self.rankers = np.array([ ProbabilisticRankingFunction("1", "random", self.num_features) for _ in range(self.n_rankers) ]) self.eval = NdcgEval() self.um = CascadeUserModel(um) self.cutoff = 10 print("OK")
def testGetNdcg(self): ev = NdcgEval() self.assertAlmostEqual(ev.get_ndcg([0, 0, 1, 0], [1, 0, 0, 0]), 0.5) self.assertAlmostEqual(ev.get_ndcg([0, 1, 0, 0], [1, 0, 0, 0]), 0.6309298) self.assertAlmostEqual(ev.get_ndcg([0, 0, 0, 0], [1, 0, 0, 0]), 0)