예제 #1
0
파일: mslr_slate.py 프로젝트: zwcdp/ReAgent
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)
예제 #2
0
파일: mslr_slate.py 프로젝트: zwcdp/ReAgent
    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)
예제 #3
0
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)
예제 #4
0
        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)
예제 #5
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()),
    ]