Une méthode de prévision à un pas de temps Application à la prévision de la qualité de l’air S. Canu, Ph. Leray, A. Rakotomamonjy laboratoire PSI, équipe « systèmes d’information pour l’environnement » psichaud.insa-rouen.fr/~scanu
Plan de route u les données de l’agglomération rouennaise u nettoyage des données - validation de capteurs u prévision à un pas de temps le problème d’apprentissage une méthode de sélection de variables pertinentes l’algorithme d ’apprentissage illustrations u conclusions validation de données prévision à un jour
Les données brutes de Rouen - SO2 : DRIR, CARL, EXPO, DVIL et SOTT, - NO2 : DRIR, CARL et EXPO - O3 : DRIR, CARL et EXPO 11 variables pendant 3 ans
Les données brutes - SO2 : DRIR, CARL, EXPO, DVIL et SOTT, - NO2 : DRIR, CARL et EXPO - O3 : DRIR, CARL et EXPO – 11 variables pendant 3 ans, – une donnée toutes les heures (365*24 = 8760)
1998
NO 2 (1998)
SO 2 98
Ozone (O 3 )
Ozone 98 - données manquantes
Données manquantes 98 sur 8760 points valeurs manquantes SO valeurs manquantes O valeurs manquantes NO sur 24*365= 8760 points valeurs manquantes SO valeurs manquantes O valeurs manquantes NO
O 3 corrélations 98
Nettoyage - principe O 3 (t+1) Modèle linéaire
Nettoyage - résultat
Nettoyage - résultat (détail)
Histogramme des indices ATMO sur Rouen (1997 et 1998)
Indice ATMO sur Rouen 1997
Indice Atmo sur Rouen 1998
Causes des pics de pollutions à Rouen « statistiquement » non significatif conjectures : été : pics d’ozone hiver : pics de NO2-SO2 Précurseur ? Qui est précurseur de qui Fiabilité des capteurs ?
Prévision du maximum sur un jour de ozone Il est minuit….. Que va t’il se passer demain Variables explicatives variable à prévoir O3(t-24:t)max(O3(t+1:t+25)) f(x) = y f inconnue, de « taille » inconnue
Apprentissage à partir d'exemples Données : (x i,y i ) i=1,n Principe inductif : Minimisation risque empirique Ce n’est pas suffisant...
Contrôler la complexité “effective” Taille du réseau limiter les poids Arrêter l’apprentissage estimer la complexité B 1 B n B k*
Choix de contrôle de la complexité le cas linéaire
* sélection de l'hyperparamètre Erreur Estimer l’erreur, la vraie
Choix de contrôle de la complexité le cas linéaire * sélection de l'hyperparamètre Erreur Estimer l’erreur, la vraie
Choix de contrôle de la complexité le cas NON linéaire (PMC) sélection des variables pertinentes * sélection de l'hyperparamètre Erreur Estimer l’erreur, la vraie
Pour j=1:5 xi = X; yi = y; xt = xi((j-1)*n+1:j*n,:); yt = yi((j-1)*n+1:j*n,:); xi((j-1)*n+1:j*n,:) = []; yi((j-1)*n+1:j*n,:) = []; [W1opt,W2opt] = MLParmsfit(xi,yi,W1,W2,lambda); yprev1t = MLPval(xt,W1opt,W2opt,F1,F2); errarmst = errarmst+mean((yprev1t-yt).^2); errarmsat = errarmsat+mean(abs(yprev1t-yt)); end Estimation de l’erreur par validation croisée x test Apprentissage x i
Estimation de l’erreur de prévision f(x) = y f inconnue, de « taille » inconnue t = 2 (Nadaraya Watson Hardle 88) Stacking (Wolpert 92): on ajoute toutes les variables explicatives possibles Erreur obtenue sur les y i de test de la validation croisée
Algorithme 1. Séparation des données apprentissage (97) - test (98) 2. Identification du modèle 2.1 modèle de prévision calcul de validation croisée) estimation du modèle 2.2 prévision de l’erreur variables explicatives = [x, y p ] variable à prévoir = abs(y p - y) = 2 3. Évaluation du modèle
Comparaison de trois modèles 1. Modèle linéaire 2. Modèle linéaire régularisé 3. Modèle non linéaire : réseau de neurones de type perceptron multicouche
Cohérence des années 97 98
97 98
max O 3
du modèle linéaire Err CV Err abs CV
pour le MLP Err CV Err abs CV
Prévision : résultats Régression linéaire ARM MLP App Test MSE MAE Modèle persistant : 97 : , 98 :
Résultats : modèle linéaire
Résultats : modèle linéaire (détail)
Résultats pour le MLP t
Résultats pour le MLP (détail) t
t
Conclusion on dispose d’une méthodologie – prévision – estimation de l’erreur reste à : – choisir le problème (y, été) – choisir les bonnes « entrées » (x, méteo) – disposer de suffisamment de données......pour la validation (domaine de validité du modèle) on fait de la « programmation par l’exemple »