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()
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(
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()