Ejemplo n.º 1
0
def single_test(data_generation,
                features,
                actions,
                outcome,
                policy_factory,
                matrices,
                n_tests=1000):
    print("Setting up simulator")
    generator = data_generation.DataGenerator(matrices=matrices)
    print("Setting up policy")
    policy = policy_factory(generator.get_n_actions(),
                            generator.get_n_outcomes())
    ## Fit the policy on historical data first
    print("Fitting historical data to the policy")
    policy.fit_treatment_outcome(features, actions, outcome)
    ## Run an online test with a small number of actions
    print("Running an online test")
    result = test_policy(generator, policy, default_reward_function, n_tests)
    print("Total reward:", result)
    print("Final analysis of results")
    policy.final_analysis()
Ejemplo n.º 2
0
                          header=None,
                          sep=" ").values
observations = features[:, :128]
labels = features[:, 128] + features[:, 129] * 2

import data_generation
import random_recommender
policy_factory = random_recommender.RandomRecommender
import reference_recommender
policy_factory = reference_recommender.HistoricalRecommender

## First test with the same number of treatments
print("---- Testing with only two treatments ----")

print("Setting up simulator")
generator = data_generation.DataGenerator(matrices="./generating_matrices.mat")
print("Setting up policy")
policy = policy_factory(generator.get_n_actions(), generator.get_n_outcomes())
## Fit the policy on historical data first
print("Fitting historical data to the policy")
policy.fit_treatment_outcome(features, actions, outcome)
## Run an online test with a small number of actions
print("Running an online test")
n_tests = 1000
result = test_policy(generator, policy, default_reward_function, n_tests)
print("Total reward:", result)
print("Final analysis of results")
policy.final_analysis()

## First test with the same number of treatments
print(
Ejemplo n.º 3
0
import data_generation as dg
import draw as d
from algorithm.km_smote import Over_Sample
from algorithm.under_sample import Under_Sample


if __name__ == "__main__":
    dg = dg.DataGenerator(1000, 0.9)
    data, label = dg.generate()
    di = {"n_clusters": 10}
    osampler = Over_Sample(data=data, label=label, n=3, categorical_features=[], **di)
    syth = osampler.do_synthetic()
    print("syth leng", len(syth))
    syth_label = [1.0] * len(syth)
    dr = d.Drawer(data, label)
    dr.plot_scatter()
    dr1 = d.Drawer(syth, syth_label)
    dr1.plot_scatter()
    under_sample = Under_Sample(major=data[0:900].tolist(), major_label=[0.]*900, synthetics=syth, synthetics_label=syth_label, categorical_features=[], rate=0.5, **di)
    under = under_sample.do_undersample()
    print("under length", len(under))
    under_label = [0.0] * len(under)
    x = under + syth
    y = under_label + syth_label
    dr2 = d.Drawer(x, y)
    dr2.plot_scatter()