Accueil / Factory / Algos ML / N-BEATS — factory / algos ML / prévision de séries temporelles

MODÈLE N-BEATS.

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é.

PrévisionSéries temporellesDeep learningPlanificationNiveau : avancé

FICHE D'IDENTITÉ

notes sur 5 · usage entreprise
PerformanceAu niveau des meilleurs sur de gros portefeuilles de séries
InterprétabilitéBoîte noire, sauf en version interprétable tendance + saison
VitesseEntraînement de quelques minutes sur CPU pour une série
Facilité de réglageFenêtre d'entrée et nombre d'époques à tester
Tolérance aux données brutesSérie régulière, sans trous, mise à l'échelle au préalable
EN 30 SECONDES

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.

1. Une fenêtre d'historique en entrée

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.

2. Des blocs empilés

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.

3. Chaque bloc corrige le reste

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.

4. Une version lisible

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.

LE CAS MÉTIER

prévision des ventes · plan S&OP / budget / approvisionnement
EN ENTRÉE

Neuf ans de ventes mensuelles

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.

EN SORTIE

Les 12 mois suivants, d'un bloc

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.

CE QU'ON MESURE

La MAPE face au naïf saisonnier

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.

QUAND LE SORTIR, QUAND L'ÉVITER

OUI

  • Des centaines ou milliers de séries à prévoir avec un seul modèle global
  • Séries régulières à tendance et saisonnalité, sans variable explicative disponible
  • Horizon de plusieurs périodes à produire d'un seul bloc : plan annuel, S&OP
  • Équipe déjà outillée en Python et en deep learning

NON

  • Une seule série courte : ARIMA ou Holt-Winters font aussi bien, plus vite et avec une fourchette
  • Promotions, prix, météo qui pilotent la demande : N-BEATS d'origine ne lit que le passé de la série, voir TFT
  • Demande intermittente avec beaucoup de zéros : préférer Croston
  • Besoin d'expliquer chaque chiffre en comité : un modèle statistique se défend mieux
LES 4 RÉGLAGES QUI COMPTENT

Noms donnés pour darts (Python), la bibliothèque la plus simple pour lancer N-BEATS.

input_chunk_length

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.

output_chunk_length

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.

generic_architecture

True par défaut : blocs génériques, souvent les plus précis. False : blocs tendance et saisonnalité, plus lisibles pour le métier.

n_epochs et mise à l'échelle

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.

LE CODE MINIMAL

jeu d'exemple : ventes_mensuelles.csv ↓
# 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.

QUESTIONS FRÉQUENTES

Que signifie N-BEATS ?

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.

N-BEATS est-il meilleur qu'ARIMA ?

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.

N-BEATS peut-il utiliser des variables explicatives ?

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.

LES ALGOS VOISINS

à comparer avant de choisir
la référence à battre

ARIMA

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 externes

Temporal Fusion Transformer

Ajoute prix, promotions, calendrier et plusieurs quantiles. Plus complet, plus lourd à entraîner.

Voir la fiche →
sans entraînement

Modèles fondation temporels

Des réseaux déjà entraînés sur des millions de séries, qui prévoient directement la vôtre.

Voir la fiche →
— formation

Passer de la fiche à la pratique

Dataistudio forme les équipes au machine learning et à l'IA, sur des cas concrets.

Voir les formations →