def train_all(train_dataset, vali_dataset): train(DecisionTreeClassifierTrainer(), train_dataset, vali_dataset) train(DecisionTreeTrainer(), train_dataset, vali_dataset) train(LassoTrainer(), train_dataset, vali_dataset) train(LogisticRegressionTrainer(), train_dataset, vali_dataset) train(SGDClassifierTrainer(), train_dataset, vali_dataset)
if "vali_set" not in params: logging.error('"vali_set" not defined') exit(1) if "test_set" not in params: logging.error('"test_set" not defined') exit(1) # device = torch.device("cuda") if torch.cuda.is_available() else None device = None num_columns = params["num_columns"] if "num_columns" in params else 138 anchor_url_features = (params["anchor_url_features"] if "anchor_url_features" in params else None) body_features = params[ "body_features"] if "body_features" in params else None train_dataset = load_dataset(params["train_set"], num_columns, anchor_url_features, body_features) vali_dataset = load_dataset(params["vali_set"], num_columns, anchor_url_features, body_features) train_all(train_dataset, vali_dataset) exit(0) test_dataset = load_dataset(params["test_set"], num_columns, anchor_url_features, body_features) evalute_all(test_dataset, 5, DecisionTreeTrainer(), DecisionTreeTrainer(), True, 100, 100)
def train_all(train_dataset, vali_dataset, prefix: str = ""): # train(DecisionTreeClassifierTrainer(), train_dataset, vali_dataset) train(DecisionTreeTrainer(), train_dataset, vali_dataset, prefix) train(LassoTrainer(), train_dataset, vali_dataset, prefix)
description="Read command line parameters.") parser.add_argument("-p", "--parameters", help="Path to config file.") args = parser.parse_args(sys.argv[1:]) with open(args.parameters, "r") as f: params = json.load(f) if "dataset" not in params: raise Exception('Please define "dataset" in config file') random.seed(1234) np.random.seed(1234) torch.random.manual_seed(1234) dataset = UCIMultiClassDataset(params["dataset"]) log_trainer = LogisticRegressionTrainer() log_epsilon = 0.1 tgt_trainer = SGDClassifierTrainer() tgt_epsilon = 0.1 dm_trainer = DecisionTreeTrainer() experiments = [( ( DMEstimator(DecisionTreeTrainer()), IPSEstimator(), DoublyRobustEstimator(DecisionTreeTrainer()), ), 1000, ) for _ in range(100)] evaluate_all(experiments, dataset, log_trainer, log_epsilon, tgt_trainer, tgt_epsilon, 0)
body_features = params[ "body_features"] if "body_features" in params else None # uncomment to train behavior and target models # train_models(params) test_dataset = load_dataset( params["second_set"], num_columns, anchor_url_features, body_features, "second_set", ) weight_clamper = Clamper(min_v=0.0) estimators = [ DMEstimator(DecisionTreeTrainer(), 0.5, device=device), IPSEstimator(weight_clamper=weight_clamper, device=device), DoublyRobustEstimator(DecisionTreeTrainer(), 0.5, weight_clamper, False, device), DoublyRobustEstimator(DecisionTreeTrainer(), 0.5, weight_clamper, True, device), PseudoInverseEstimator(weight_clamper=weight_clamper, device=device), PBMEstimator(weight_clamper=weight_clamper, device=device), ] metrics = ["ndcg", "err"] alphas = [0.0, 1.0, 2.0] trainers = [ (DecisionTreeTrainer(), LassoTrainer()), (LassoTrainer(), DecisionTreeTrainer()), ]