time_start=0,
                                       classification_col=c)
x_train, y_train = timestamped_to_vector(train,
                                         vector_col=v,
                                         time_start=0,
                                         classification_col=c)

# Random search with thresholding
rand_params = Configs.get_all()

expt = Experiments.Experiment(rand_params,
                              search_algorithm="random",
                              data=(x_train, y_train),
                              folds=10,
                              folder_name="random_search_reults",
                              thresholding=True,
                              threshold=0.5)

# parameter configurations
A_B_C = Configs.get_A_B_C

# Ensemble model
ensemble_config = Experiments.Ensemble_configurations(
    list(A_B_C.values()),
    x_test=x_test,
    y_test=y_test,
    x_train=x_train,
    y_train=y_train,
    folder_name="test_train_results",
    batch_size=64)
ensemble_config.run_experiments()
params_A["step"] = [1, 2, 3, 4, 5]  # snapshot intervals (s)

increase_snap_expt = Experiments.Increase_Snaphot_Experiment(
    params_A,
    search_algorithm="grid",
    data=(x, y),
    folds=10,
    folder_name="increase_intervals",
    thresholding=False,
    run_on_factors=True)
increase_snap_expt.run_experiments()

# Ensemble model
ensemble_config = Experiments.Ensemble_configurations(
    list(A_B_C.values()),
    data=(x, y),
    folds=10,
    folder_name="ensemble_ABC",
    batch_size=58)
ensemble_config.run_experiments()

# Time step ensemble model
params_A["step"] = [1]
ensemble_sub_seq = Experiments.Ensemble_sub_sequences(
    params_A, data=(x, y), folds=10, folder_name="ensemble_sub_sequence")
ensemble_sub_seq.run_experiments()

# Leave out test data
for config_description in A_B_C:
    params = A_B_C[config_description]
    params["sequence_length"] = [4, 8, 16]
    omit_test = Experiments.Omit_test_data(