--- title: M4 Ensemble keywords: fastai sidebar: home_sidebar nb_path: "nbs/models_nbeats__ensemble.ipynb" ---
{% raw %}
{% endraw %} {% raw %}
# from google.colab import drive
# drive.mount('/content/drive')
# os.chdir('./drive/MyDrive/nixtlats')
# print(os.getcwd())
{% endraw %} {% raw %}
# !pip install torchinfo
# !pip install fastcore
# !pip install s3fs
# !pip install patool
# !pip install --upgrade pandas==1.2.4
# !pip install --upgrade requests==2.25.1
{% endraw %} {% raw %}
{% endraw %} {% raw %}
{% endraw %} {% raw %}

class Yearly[source]

Yearly()

Yearly()

{% endraw %} {% raw %}

class Quarterly[source]

Quarterly()

Quarterly()

{% endraw %} {% raw %}

class Monthly[source]

Monthly()

Monthly()

{% endraw %} {% raw %}
{% endraw %} {% raw %}

print_models_list(frequencies:list, table_width:int)

{% endraw %} {% raw %}
{% endraw %}

Loaders

{% raw %}

create_loaders_M4[source]

create_loaders_M4(Y_df, S_df, hparams, num_workers)

{% endraw %} {% raw %}
{% endraw %}

NBEATS Ensemble

{% raw %}

NBEATS_instantiate[source]

NBEATS_instantiate(hparams)

{% endraw %} {% raw %}
{% endraw %} {% raw %}

show_tensorboard[source]

show_tensorboard(logs_path, model_path)

{% endraw %} {% raw %}
{% endraw %} {% raw %}

class NBEATSEnsemble[source]

NBEATSEnsemble(use_gpus:bool=False, gpus:int=None, auto_select_gpus:bool=False)

{% endraw %} {% raw %}
{% endraw %}

Ensemble Experiments

{% raw %}
# val_freq_steps = 2
# tensorboard_logs = True
# NUM_WORKERS = 4

# frequencies = [Yearly]
# print_models_list(frequencies=frequencies, table_width=75)
Yearly grid (# of different model configurations = 18):
===========================================================================
activation                                                        [ReLU]
n_x                                                                  [0]
n_s                                                                  [0]
n_x_hidden                                                           [0]
n_s_hidden                                                           [0]
stack_types                                       [[trend, seasonality]]
n_blocks                                                        [[3, 3]]
n_layers                                                        [[4, 4]]
shared_weights                                                    [True]
n_harmonics                                                          [1]
n_polynomials                                                        [2]
n_theta_hidden         [[[256, 256, 256, 256], [2048, 2048, 2048, 204...
initialization                                            [lecun_normal]
learning_rate                                                    [0.001]
lr_decay                                                             [0]
lr_decay_step_size                                                [1000]
loss_val                                                         [SMAPE]
dropout_prob_theta                                                   [0]
weight_decay                                                         [0]
batch_size                                                        [1024]
batch_normalization                                              [False]
complete_inputs                                                  [False]
mode                                                            [simple]
n_time_in                                       [12, 18, 24, 30, 36, 42]
n_time_out                                                           [6]
train_sample_freq                                                    [1]
frequency                                                            [Y]
seasonality                                                          [1]
l_h                                                                [1.5]
loss_train                                           [MAPE, SMAPE, MASE]
n_steps                                                            [260]
random_seed                                                          [0]
dtype: object
===========================================================================

{% endraw %} {% raw %}
#                           gpus=-1 if torch.cuda.is_available() else None, 
#                           auto_select_gpus=True if torch.cuda.is_available() else False)

# forecasts = ensemble.fit(frequencies=frequencies,
#                          loader=TimeSeriesLoader,  
#                          val_freq_steps=val_freq_steps,
#                          tensorboard_logs=tensorboard_logs,
#                          logs_path=LOGS_PATH,
#                          num_workers=NUM_WORKERS)
Output hidden; open in https://colab.research.google.com to view.
{% endraw %} {% raw %}
 
SMAPE MASE OWA
Yearly 17.448574 5.438234 1.218016
{% endraw %}