# Reconstruction of test data print("Reconstruction of test data... ") X_test_new = ica.inverse_transform(X_test_ica) print("Reconstructed matrix shape:", X_test_new.shape) mse = mean_squared_error(normalized_test_data, X_test_new) cvscores_mse_test.append(mse) print('Reconstruction MSE : ', mse) rms = sqrt(mse) print('Reconstruction RMSE : ', rms) cvscores_rmse_test.append(rms) # Apply dimensionality reduction directory = '../../../regression/ica/{}/{}/fold_{}/'.format( v, dim, fold) if not os.path.exists(directory): os.makedirs(directory) for sub in index_subjects: subject = load_data(sub, view) normalized_subject = scaler.fit_transform(subject) transformed_subject = ica.transform(normalized_subject) file = directory + "X_{}.npy".format(sub) np.save(file, transformed_subject) print('Shape of Latent representation:', transformed_subject.shape) print('Transpose of latent representation', transformed_subject.T.shape) print("shape of vector mse train", np.array([cvscores_mse_train]).shape) print(cvscores_mse_train) np.save('cvscores_mse_train_ica_dim_{}.npy'.format(dim), np.array([cvscores_mse_train])) print("shape of vector mse test", np.array([cvscores_mse_test]).shape)
def __init__(self): run_name = 'run_test' self.outdir = './results/' + run_name + '/' self.outdir_train = self.outdir + 'train/' self.outdir_test = self.outdir + 'test/' self.training_counter = 0 try: sys.makedirs(self.outdir_train) sys.makedirs(self.outdir_test) except Exception: pass self.writer_train = SummaryWriter(self.outdir_train) self.writer_test = SummaryWriter(self.outdir_test) self.monitor_freq = 100 self.testing_samples = 100 self.validation_scores = [] self.training_scores = [] self.settings = { 'past_horzion': 100, 'max_steps': 365, 'inital_account_balance': 1e4, 'stop_below_balance': 1e3, 'transation_fee': .1, 'years_training': 5, 'years_testing': 1, } testing_end = date.today() testing_beginning = testing_end - relativedelta( years=self.settings['years_testing']) - relativedelta( days=self.settings['past_horzion']) training_end = testing_beginning - relativedelta(days=1) training_beginning = training_end - relativedelta( years=self.settings['years_training']) - relativedelta( days=self.settings['past_horzion']) self.data = { 'train_gold': self.get_prices(gold_shanghai, 1, training_beginning, training_end), 'train_copper': self.get_prices(copper_shanghai, 1, training_beginning, training_end), 'train_aluminum': self.get_prices(aluminum_shanghai, 1, training_beginning, training_end), 'test_gold': self.get_prices(gold_shanghai, 1, testing_beginning, testing_end), 'test_copper': self.get_prices(copper_shanghai, 1, testing_beginning, testing_end), 'test_aluminum': self.get_prices(aluminum_shanghai, 1, testing_beginning, testing_end), 'test_soybean_oil': self.get_prices(soybean_oil, 1, testing_beginning, testing_end), 'test_dax_futures': self.get_prices(dax_futures, 1, testing_beginning, testing_end), 'test_corn': self.get_prices(corn, 1, testing_beginning, testing_end), 'test_canadian_dollar': self.get_prices(canadian_dollar, 1, testing_beginning, testing_end), } # print('\n\n*************\n', self.data['test_corn'], '\n\n') self.env_test_gold = StockTradingEnv(self.get_prices( gold_shanghai, 1, testing_beginning, testing_end), self.settings, test=True) self.env_test_copper = StockTradingEnv(self.get_prices( copper_shanghai, 1, testing_beginning, testing_end), self.settings, test=True) self.env_test_aluminum = StockTradingEnv(self.get_prices( aluminum_shanghai, 1, testing_beginning, testing_end), self.settings, test=True) self.env_test_soy_bean = StockTradingEnv(self.get_prices( soybean_oil, 1, testing_beginning, testing_end), self.settings, test=True) self.env_test_dax = StockTradingEnv(self.get_prices( dax_futures, 1, testing_beginning, testing_end), self.settings, test=True) self.env_test_corn = StockTradingEnv(self.get_prices( corn, 1, testing_beginning, testing_end), self.settings, test=True) self.env_test_canadian_dollar = StockTradingEnv(self.get_prices( canadian_dollar, 1, testing_beginning, testing_end), self.settings, test=True) self.env_train = StockTradingEnv(self.data['train_gold'], self.settings, test=False) # self.env_test = StockTradingEnv(self.data['test_gold'], self.settings, test=True) self.test_envs = { 'gold': StockTradingEnv(self.data['test_gold'], self.settings, test=True), 'copper': StockTradingEnv(self.data['test_copper'], self.settings, test=True), 'aluminum': StockTradingEnv(self.data['test_aluminum'], self.settings, test=True), } self.agent = self.rl_agent(self.env_train)