示例#1
0
results_df = pd.DataFrame(columns=[
    'name', 'layer_dims', 'dropout_rates', 'batchsize', 'best_iter',
    'train_mse', 'train_mae', 'train_mape', 'test_mse', 'test_mae', 'test_mape'
])
path_results = path_out

# ### Main loop

# In[16]:

for gen_name, selected_variables in dict_selected_var.items():

    # Prepare dataset
    x_conso = select_variables(x_conso, dict_colnames_conso,
                               selected_variables)
    dataset, dict_ds = get_train_test_sets(x_conso, y_conso, date_test_start,
                                           date_test_end)
    dataset = normalized_dataset(dataset, dict_colnames_conso)

    nb_hidden_units = dataset['train']['x'].shape[1]

    for idx, (nb_hidden_layers, dropout) in enumerate(combination):

        print(
            '========================= Model {}/{} ========================='.
            format(idx + 1, len(combination)))

        # Prepare model characteristics
        name_model = 'b0_FFNN_l{}*{}_d{}*{}_{}_norm'.format(
            nb_hidden_units, nb_hidden_layers, dropout, nb_hidden_layers,
            gen_name)
results_df = pd.DataFrame(columns=[
    'name', 'layer_dims', 'dropout_rates', 'batchsize', 'best_iter',
    'train_mse', 'train_mae', 'train_mape', 'test_mse', 'test_mae', 'test_mape'
])
path_results = path_out

# ### Main loop

# In[18]:

for gen_name, selected_variables in dict_selected_var.items():

    # Prepare dataset
    x_conso_selected_var = select_variables(x_conso, dict_colnames_conso,
                                            selected_variables)
    dataset, dict_ds = get_train_test_sets(x_conso_selected_var, y_conso,
                                           date_test_start, date_test_end)
    dataset = normalized_dataset(dataset, dict_colnames_conso)

    nb_hidden_units_base = dataset['train']['x'].shape[1]

    for idx, (nb_hidden_layers, dropout) in enumerate(combination):

        print(
            '========================= Model {}/{} ========================='.
            format(idx + 1, len(combination)))

        # Get right number of hidden units
        nb_hidden_units = int(nb_hidden_units_base * (1 + dropout))

        # Prepare model characteristics
        name_model = 'b1_FFNN_l{}*{}_d{}*{}_{}_norm'.format(
    data_conso_df, dict_colnames_conso = get_uniformed_data_conso(
        dict_data_conso)

    # Granularity from 15 min to 1H
    data_conso_df = change_granularity(data_conso_df, granularity="1H")

    # Get x and y from prediction
    x_conso, y_conso, dict_colnames_conso = get_x_y_prediction_conso(
        data_conso_df, dict_colnames_conso, lag=24)

    # Getting each datasets
    dict_datasets = {}
    for key, date_period in cv_periods.items():
        x_conso_selected_var = select_variables(x_conso, dict_colnames_conso,
                                                selected_variables)
        dataset, dict_ds = get_train_test_sets(x_conso_selected_var, y_conso,
                                               date_period[0], date_period[1])
        dataset = normalized_dataset(dataset, dict_colnames_conso)

        dict_datasets[key] = {'dataset': dataset, 'dict_ds': dict_ds}

    # Deleting useless info
    del x_conso, y_conso

    ### Getting FFNN input dim ###
    input_dim = dict_datasets['period_1']['dataset']['train']['x'].shape[1]

    ### Prepare results wrap up ###
    results_df = pd.DataFrame(columns=[
        'name', 'layer_dims', 'dropout_rates', 'batchsize', 'best_iter',
        'train_mse', 'train_mae', 'train_mape', 'test_mse', 'test_mae',
        'test_mape'