Un score qui perd contre ne rien faire
Un modèle des cinq plus proches voisins obtient 0,9983 en validation croisée aléatoire à cinq blocs sur une marche aléatoire, série dont les incréments sont par construction imprévisibles. Évalué en avançant dans le temps il obtient 0,6559, avec une RMSE 12,44 fois plus grande, et il perd contre la simple reconduction de la dernière valeur observée. C’est la découpe, non le modèle, qui a produit le premier nombre.
Prérequis : La régression qui trouve une relation qui n’existe pas
Prenez 600 pas d’une marche aléatoire : avec des pas normaux centrés réduits indépendants. Les incréments sont indépendants par construction : il n’y a donc rien à prévoir dans cette série. La meilleure prédiction possible de , connaissant tout jusqu’à , est .
Ajustez une régression des cinq plus proches voisins de sur l’indice temporel. Évaluez-la par validation croisée aléatoire à cinq blocs, ce qui est le réglage par défaut de toutes les bibliothèques.
A. Ce que la découpe aléatoire a mesuré
Rien qui concerne la prévision. Sous une découpe aléatoire, les voisins temporels d’un point mis de côté sont très majoritairement dans l’ensemble d’entraînement : le point est prédit à partir de , , , . Le modèle n’extrapole pas, il interpole entre deux observations qu’on lui a montrées, et sur une série continue cela revient presque à lire la réponse.
Évaluez le même modèle en avançant dans le temps. Entraînez sur tout ce qui précède une coupure, prédisez le bloc suivant, déplacez la coupure, recommencez :
| Évaluation | RMSE | |
|---|---|---|
| aléatoire, cinq blocs | 0.9983 | 0.865 |
| chaînage temporel | 0.6559 | 10.760 |
| dernière valeur reconduite | 0.6881 | 10.244 |
La RMSE est 12,44 fois plus grande avec la découpe honnête. Et la troisième ligne devrait clore le débat : répéter simplement la dernière valeur observée fait mieux que le modèle, sur les deux mesures. Le modèle a une valeur négative, et la première évaluation l’a présenté comme quasi parfait.
La figure rejoue une version plus simple du même piège sur des marches de 240 pas : sous la découpe aléatoire, chaque point mis de côté est comblé à partir de ses deux voisins, contre la dernière valeur reconduite sous la découpe honnête ; le facteur de flatterie y est donc d’environ 6, et non les 12,44 mesurés ici.
Interactif : une série sous deux découpages
Une série à mémoire. Seul le découpage change.
- Découpage mélangé
- 0.7557
- Prévision en avant
- 4.2224
- Flatté d’un facteur
- 5.6x
- Exact, groupé
- 4.9497
Mettre 48 points de côté au hasard donne une RMSE de 0.7557 ; mettre de côté les 48 derniers donne 4.2224. Un facteur 5.6, sur les mêmes données. Mélangez une série à mémoire et chaque point de test se retrouve entre des points d’entraînement, deux sur trois en ayant un juste à côté de chaque côté : on ne demande plus ce qui vient après, on demande de combler un trou.
B. Pourquoi n’est pas une consolation
Le du chaînage temporel paraît encore honorable, et il ne faut pas le lire comme « le modèle capte les deux tiers de la variation ». Une marche aléatoire erre : l’essentiel de la variance d’un bloc de test est le niveau où elle a dérivé, et prédire ce niveau à peu près juste vaut un grand tout en ne valant rien du tout.
C’est pourquoi une prévision se juge contre une référence et non contre une moyenne constante. Face à « reconduire la dernière valeur », le modèle est derrière, et c’est la bonne lecture : il n’y avait pas de signal, le modèle n’en a trouvé aucun, et tout chiffre suggérant le contraire venait de la manière de mesurer.
C. Où cela arrive hors d’une démonstration
La marche aléatoire rend l’effet indiscutable, mais le mécanisme n’a besoin que d’autocorrélation, que toute série réelle possède.
- Découpes aléatoires de données temporelles. Relevés de capteurs, prix, demande, charge serveur, constantes vitales. Les lignes voisines se ressemblent, donc une découpe aléatoire place des quasi-doublons de chaque ligne de test dans l’entraînement.
- Variables construites sur toute la série. Une moyenne mobile centrée, une standardisation utilisant la moyenne et l’écart type de tout l’échantillon, une décomposition saisonnière, une imputation ajustée sur l’ensemble. Chacune fait remonter de l’information dans le temps, et chacune traverse une découpe aléatoire sans être détectée.
- Données groupées découpées à la ligne. Plusieurs lignes par client, par patient, par session. La découpe doit se faire par groupe, et le temps est le même argument avec « la même semaine » pour groupe.
- Régler les hyperparamètres sur le bloc de test. Le chaînage temporel est honnête sur la découpe et peut tout de même être dépensé, un hyperparamètre à la fois, sur le dernier bloc.
D. Les vérifications qui ne coûtent rien
- Découpez toujours en avançant, pour tout ce qui a un indice temporel. Cela coûte une ligne. Si le modèle est réellement invariant dans le temps, les deux découpes s’accorderont, et cet accord vaut en lui-même d’être connu.
- Rapportez toujours une référence naïve. Dernière valeur pour un niveau, naïve saisonnière pour une série saisonnière. Un modèle qui ne la bat pas n’est pas encore un modèle, et la comparaison ne coûte rien.
- Recalculez chaque variable à l’intérieur du bloc. Si une transformation touche des lignes que le modèle n’a pas le droit d’avoir vues, elle appartient à l’étape d’entraînement et non au carnet de préparation des données.
- Demandez quel serait le score si la série était imprévisible. Sur ces données : 0,9983. Si votre évaluation peut renvoyer ce chiffre sur une marche aléatoire, elle ne mesure pas ce que vous croyez.
Références et lectures complémentaires
- Rob J Hyndman, George Athanasopoulos, Forecasting: Principles and Practice, OTexts, 2014source ↗
Les œuvres protégées par le droit d’auteur sont citées à titre de référence uniquement et ne sont pas hébergées ici ; veuillez consulter l’éditeur pour y accéder.