Un réseau de neurones conçu uniquement pour prévoir une série à partir de son passé, sans variables explicatives. Il lit une fenêtre d'historique et sort tout l'horizon d'un bloc. On l'utilise quand on a beaucoup de séries à prévoir avec un seul modèle, et il existe en version lisible qui sépare tendance et saisonnalité.
Un prévisionniste qui regarde les 24 derniers mois, dessine les 12 suivants, puis passe la main à un collègue chargé de corriger ce qu'il a mal saisi. Et ainsi de suite, trente fois.
Le réseau reçoit les 24 derniers mois (la fenêtre) et doit produire les 12 suivants. L'entraînement fait glisser cette fenêtre sur tout l'historique pour fabriquer des exemples.
Chaque bloc est un petit réseau classique. Il produit deux choses : un morceau de prévision, et ce qu'il a compris du passé, retiré de l'entrée avant le bloc suivant.
Le bloc suivant ne voit que ce que les précédents n'ont pas expliqué. La prévision finale est la somme des contributions de tous les blocs.
En mode interprétable, certains blocs sont contraints à produire une tendance (courbe lisse) et d'autres une saisonnalité (sinusoïdes). La prévision se décompose alors comme dans un tableau de bord.
Une seule colonne de ventes, de janvier 2017 à décembre 2025, avec une tendance haussière et un cycle annuel marqué. N-BEATS n'a besoin de rien d'autre.
Une prévision mois par mois pour l'année cachée, produite en une seule passe. La supply chain et la finance partent du même chiffre pour le plan annuel.
On entraîne jusqu'à fin 2024, on prévoit 2025 et on compare au réel. La MAPE donne l'erreur moyenne en % des ventes. Un réseau qui ne bat pas « même mois l'an dernier », ou un ARIMA, n'a pas sa place en production.
Noms donnés pour darts (Python), la bibliothèque la plus simple pour lancer N-BEATS.
La fenêtre d'historique lue par le réseau. Deux à sept fois l'horizon est l'usage : ici 24 mois pour en prévoir 12. Plus elle est longue, moins il reste d'exemples pour apprendre.
L'horizon produit d'un bloc. Le caler sur l'horizon métier (12 mois) évite de réinjecter les prévisions dans le modèle.
True par défaut : blocs génériques, souvent les plus précis. False : blocs tendance et saisonnalité, plus lisibles pour le métier.
Le nombre de passes sur les données. Trop peu, le réseau n'a rien appris ; trop, il récite l'historique. Toujours mettre la série à l'échelle (Scaler) avant l'entraînement.
# Plan de ventes à 12 mois : N-BEATS en Python (darts)
import pandas as pd
from darts import TimeSeries
from darts.dataprocessing.transformers import Scaler
from darts.metrics import mape
from darts.models import NaiveSeasonal, NBEATSModel
ventes = pd.read_csv("ventes_mensuelles.csv", parse_dates=["mois"])
serie = TimeSeries.from_dataframe(ventes, "mois", "ventes").astype("float32")
train, test = serie[:-12], serie[-12:] # on cache l'année 2025
# Mise à l'échelle : un réseau apprend mal sur des valeurs en milliers
echelle = Scaler()
train_norm = echelle.fit_transform(train)
# 24 mois en entrée, 12 mois prévus d'un seul bloc
modele = NBEATSModel(input_chunk_length=24, output_chunk_length=12, n_epochs=150, random_state=42)
modele.fit(train_norm)
prevision = echelle.inverse_transform(modele.predict(n=12))
# Référence à battre : les ventes du même mois l'an dernier
naif = NaiveSeasonal(K=12).fit(train).predict(n=12)
print("MAPE N-BEATS :", round(mape(test, prevision), 1), "%")
print("MAPE naïf saisonnier :", round(mape(test, naif), 1), "%")
print("Total 2025 prévu :", round(float(prevision.values().sum())), "| réel :", round(float(test.values().sum())))
N-BEATS se pratique en Python (darts, neuralforecast) : pas d'implémentation R courante en entreprise.
Neural Basis Expansion Analysis for Time Series. Chaque bloc du réseau projette sa prévision sur des fonctions de base : libres en mode générique, polynômes pour la tendance et sinusoïdes pour la saisonnalité en mode interprétable. Le modèle a été publié en 2019 par Element AI.
Sur le concours de prévision M4 et ses 100 000 séries, N-BEATS a fait mieux que les méthodes statistiques et que le vainqueur du concours. Sur une seule série de quelques années, l'écart est faible ou s'inverse. Il faut toujours comparer les deux sur la même année cachée.
Pas dans sa version d'origine, qui ne lit que le passé de la série. Des variantes comme N-BEATSx ou N-HiTS acceptent des variables externes. Pour des promotions ou des prix connus à l'avance, le Temporal Fusion Transformer est conçu pour cela.
Un modèle statistique par série, avec une fourchette de prévision. Sur une série seule, souvent aussi précis.
Voir la fiche → avec variables externesAjoute prix, promotions, calendrier et plusieurs quantiles. Plus complet, plus lourd à entraîner.
Voir la fiche → sans entraînementDes réseaux déjà entraînés sur des millions de séries, qui prévoient directement la vôtre.
Voir la fiche →Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.
Nous utilisons des cookies de mesure d'audience et de suivi publicitaire pour comprendre la fréquentation du site et l'efficacité de nos annonces. Rien n'est déposé sans votre accord. En savoir plus