Example #1
0
def test():
    lvl = 1
    wavelet = 'db4'  # Haar'
    ts_file_name = 'ford_ts.csv'
    last_days = 1200
    time_frame = 60
    time_bias = 1

    data_loader = DataLoader(ts_file_name, last_days, debug=True)

    raw_data = data_loader.as_matrix()
    ts_data = denoise(raw_data, lvl, wavelet)

    # plt.plot(raw_data[3])
    # plt.show()
    # plt.plot(ts_data[3])
    # plt.show()

    daily_features, _ = np.shape(ts_data)
    dataset = data_loader.prepare_dataset_sae(ts_data, time_frame, time_bias)

    runner = Runner(daily_features,
                    lstm_layers=1,
                    gamma=0.005,
                    delay=4,
                    sae_lr=0.01,
                    beta=0,
                    hidden_nodes_activation_rate=0.9,
                    hidden_layers_sizes=[8],
                    debug=True)

    cross_validator = CrossValidator()
    pred_target = cross_validator.run_validation(runner,
                                                 dataset,
                                                 sae_epoch=1,
                                                 lstm_epoch=1)
    pred_target_dollars = [(data_loader.to_dolar(x), data_loader.to_dolar(y))
                           for x, y in pred_target]
    dollars_loss = sum([abs(x - y) for x, y in pred_target_dollars])
    print("[RUNNER] Dollars lost={}".format(dollars_loss))
def test_final(with_beta=False):
    lvl = 1
    wavelet = 'db4'  # Haar'
    ts_file_name = 'ford_final.csv'
    training_days = 1200
    days_test_frame = 90
    tests_number = 6
    time_frame = 60
    time_bias = 1
    sae_epoch = 200
    lstm_epoch = 50

    if with_beta:
        beta = 1
        print("[TEST_FINAL] EVALUATION OF MODEL WITH BETA=1")
    else:
        beta = 0
        print("[TEST_FINAL] EVALUATION OF MODEL WITH BETA=0")

    all_days = training_days + days_test_frame * tests_number + 30 + time_frame

    data_loader = DataLoader(ts_file_name, all_days, debug=True)

    raw_data = data_loader.as_matrix()
    ts_data = denoise(raw_data, lvl, wavelet)

    daily_features, _ = np.shape(ts_data)
    dataset = data_loader.prepare_dataset_sae(ts_data, time_frame, time_bias)

    runner = Runner(daily_features,
                    lstm_layers=1,
                    gamma=0.005,
                    delay=4,
                    sae_lr=0.01,
                    beta=beta,
                    hidden_nodes_activation_rate=0.9,
                    hidden_layers_sizes=[8],
                    debug=True)

    validator = Validator()

    training_dataset = dataset
    test_datasets = []
    for _ in range(tests_number):
        ntest = training_dataset[-days_test_frame:]
        training_dataset = training_dataset[:-days_test_frame]  #TODO CHECK!
        test_datasets.append(ntest)

    test_datasets.reverse()

    pred_target = []

    for test_dataset in test_datasets:
        pred_target += validator.train_and_eval_hard(runner, training_dataset,
                                                     test_dataset, sae_epoch,
                                                     lstm_epoch)
        training_dataset += test_dataset

    pred_target_dollars = [(data_loader.to_dolar(x), data_loader.to_dolar(y))
                           for x, y in pred_target]
    dollars_loss = sum([abs(x - y) for x, y in pred_target_dollars])
    print("[RUNNER] Total dollars lost={}".format(dollars_loss))
    print("==============================================================")