def __init__(self, arg_str=None): OptimizedInterleave.__init__(self, arg_str) parser = argparse.ArgumentParser() parser.add_argument('--allowed_leavings', choices=['prefix_constraint', 'prefix_constraint_va'], default='prefix_constraint_va') parser.add_argument("--credit_va", action="store_true", default=False) parser.add_argument("--um_class", type=str, default="environment.FederatedClickModel") parser.add_argument("--um_args", type=str, default="0.2 0.1") args = vars(parser.parse_known_args(split_arg_str(arg_str))[0]) self.allowed_leavings = getattr(self, args['allowed_leavings']) if args["credit_va"]: self.precompute_rank = self.precompute_rank_va self.um_class = get_class(args["um_class"]) self.um = self.um_class(args["um_args"])
def precompute_rank_va(self, R): sortR = R[:] examination = self.um.get_examination_prob(sortR) sortR.sort(key=dict(zip(sortR, examination)).get, reverse=True) return OptimizedInterleave.precompute_rank(self, sortR)