Le notebook de référence pour ce tutoriel est TimeSeries.
Lorsqu’on a créé un dataset pour les time series – comme ci-dessous :
def windowed_dataset(series, window_size, batch_size, shuffle_buffer): dataset = tf.data.Dataset.from_tensor_slices(series) dataset = dataset.window(window_size + 1, shift=1, drop_remainder=True) dataset = dataset.flat_map(lambda window: window.batch(window_size + 1)) dataset = dataset.shuffle(shuffle_buffer).map(lambda window: (window[:-1], window[-1])) dataset = dataset.batch(batch_size).prefetch(1) return dataset
et un modèle :
dataset = windowed_dataset(x_train, window_size, batch_size, shuffle_buffer_size) print(dataset) l0 = tf.keras.layers.Dense(1, input_shape=[window_size]) model = tf.keras.models.Sequential([l0]) model.compile(loss="mse", optimizer=tf.keras.optimizers.SGD(lr=1e-6, momentum=0.9)) model.fit(dataset,epochs=100,verbose=0) 1 model.summary()
Ici le modèle est des plus simples puisque c’est un modèle linéaire.
model.fit(dataset,epochs=100,verbose=0)
On peut ensuite effectuer des prévisions (forecasts) :
forecast = [] for time in range(len(series) - window_size): forecast.append(model.predict(series[time:time + window_size][np.newaxis])) forecast = forecast[split_time-window_size:] results = np.array(forecast)[:, 0, 0] plt.figure(figsize=(10, 6)) plot_series(time_valid, x_valid) plot_series(time_valid, results)
On utilise model.predict pour calculer les prévisions et plot_series pour afficher les résultats comparés.
Ensuite on calcule la métrique, MAE le plus souvent.
tf.keras.metrics.mean_absolute_error(x_valid, results).numpy()