From: Benjamin Auder Date: Thu, 16 Mar 2017 13:30:17 +0000 (+0100) Subject: remove logging X-Git-Url: https://git.auder.net/variants/%24%7Bvname%7D/%7B%7B%20asset%28%27mixstore/images/%3C?a=commitdiff_plain;h=1041e053af6c432e19a9c31807cdc7c8bee7c4bd;p=talweg.git remove logging --- diff --git a/reports/ipynb_generator.py b/reports/ipynb_generator.py index 4e47063..fedfa40 100755 --- a/reports/ipynb_generator.py +++ b/reports/ipynb_generator.py @@ -1,6 +1,6 @@ #!/usr/bin/env python -import sys, os, re, logging +import sys, os, re # Languages mapping as used by markdown/pandoc shortname2language = dict( @@ -27,7 +27,6 @@ def read(text, argv=sys.argv[2:]): include_text = f.read() lines[i] = include_text text = '\n'.join(lines) - logging.info('******* text after include:\n{}'.format(text)) # Run Mako mako_kwargs = {} @@ -48,11 +47,8 @@ def read(text, argv=sys.argv[2:]): lookup = TemplateLookup(directories=[os.curdir]) # text = text.encode('utf-8') temp = Template(text=text, lookup=lookup, strict_undefined=True) - logging.info('******* mako_kwargs: {}'.format(str(mako_kwargs))) text = temp.render(**mako_kwargs) - logging.info('******* text after mako:\n{}'.format(text)) - # Parse the cells lines = text.splitlines() cells = [] @@ -67,10 +63,8 @@ def read(text, argv=sys.argv[2:]): if shortname: # Check if code is to be typeset as static # Markdown code (e.g., shortname=py-t) - logging.info('******* found shortname {}' .format(shortname)) astext = shortname[-2:] == '-t' - logging.info('******* cell: astext={} shortname={}' .format(astext, shortname)) if astext: # Markdown @@ -85,7 +79,6 @@ def read(text, argv=sys.argv[2:]): inside = 'codecell' cells.append(['codecell', fullname, []]) else: - logging.info('******* cell: markdown') # Markdown cell inside = 'markdown' cells.append(['markdown', 'text', ['\n']]) @@ -105,9 +98,6 @@ def read(text, argv=sys.argv[2:]): # Add an ending ``` of code cells[i][2].append('```\n') cells[i][2] = '\n'.join(cells[i][2]) - # TODO: optional logging - import pprint - logging.info('******* cell data structure:\b%s' % pprint.pformat(cells)) return cells def write(cells): @@ -147,9 +137,4 @@ def driver(): f.write(filestr) if __name__ == '__main__': - logfile = 'tmp.log' - if os.path.isfile(logfile): - os.remove(logfile) - logging.basicConfig(format='%(message)s', level=logging.DEBUG, - filename=logfile) driver() diff --git a/reports/tmp.log b/reports/tmp.log deleted file mode 100644 index 39629a7..0000000 --- a/reports/tmp.log +++ /dev/null @@ -1,768 +0,0 @@ -******* text after include: ------ -

Introduction

- -J'ai fait quelques essais dans différentes configurations pour la méthode "Neighbors" -(la seule dont on a parlé).
Il semble que le mieux soit - - * simtype="exo" ou "mix" : similarités exogènes avec/sans endogènes (fenêtre optimisée par VC) - * same_season=FALSE : les indices pour la validation croisée ne tiennent pas compte des saisons - * mix_strategy="mult" : on multiplie les poids (au lieu d'en éteindre) - -J'ai systématiquement comparé à une approche naïve : la moyennes des lendemains des jours -"similaires" dans tout le passé ; à chaque fois sans prédiction du saut (sauf pour Neighbors : -prédiction basée sur les poids calculés). - -Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques filaments puis les -histogrammes de quelques poids. Concernant les graphes de filaments, la moitié gauche du graphe -correspond aux jours similaires au jour courant, tandis que la moitié droite affiche les -lendemains : ce sont donc les voisinages tels qu'utilisés dans l'algorithme. - -<% -list_titles = ['Pollution par chauffage', 'Pollution par épandage', 'Semaine non polluée'] -list_indices = ['indices_ch', 'indices_ep', 'indices_np'] -%> ------r -library(talweg) - -ts_data = read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg")) -exo_data = read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg")) -data = getData(ts_data, exo_data, input_tz = "Europe/Paris", working_tz="Europe/Paris", predict_at=13) - -indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days") -indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days") -indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days") -% for i in range(3): ------ -

${list_titles[i]}

------r -p_nn_exo = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", simtype="exo", horizon=H) -p_nn_mix = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", simtype="mix", horizon=H) -p_az = computeForecast(data, ${list_indices[i]}, "Average", "Zero", horizon=H) #, memory=183) -p_pz = computeForecast(data, ${list_indices[i]}, "Persistence", "Zero", horizon=H, same_day=TRUE) ------r -e_nn_exo = computeError(data, p_nn_exo) -e_nn_mix = computeError(data, p_nn_mix) -e_az = computeError(data, p_az) -e_pz = computeError(data, p_pz) -options(repr.plot.width=9, repr.plot.height=7) -plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4)) - -# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence - -i_np = which.min(e_nn_exo$abs$indices) -i_p = which.max(e_nn_exo$abs$indices) ------r -options(repr.plot.width=9, repr.plot.height=4) -par(mfrow=c(1,2)) - -plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np)) -plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p)) - -plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np)) -plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p)) - -plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np)) -plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p)) - -# Bleu: prévue, noir: réalisée ------r -par(mfrow=c(1,2)) -f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np)) -f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p)) - -f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np)) -f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np)) -plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p)) - -plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np)) -plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np)) -plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p)) - -plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np)) -plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p)) - -# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir ------r -par(mfrow=c(1,2)) -plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np)) -plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p)) - -plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np)) -plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p) - -# - pollué à gauche, + pollué à droite ------r -# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite -p_nn_exo$getParams(i_np)$window -p_nn_exo$getParams(i_p)$window - -p_nn_mix$getParams(i_np)$window -p_nn_mix$getParams(i_p)$window -% endfor ------ -

Bilan

- -Problème difficile : on ne fait guère mieux qu'une naïve moyenne des lendemains des jours -similaires dans le passé, ce qui n'est pas loin de prédire une série constante égale à la -dernière valeur observée (méthode "zéro"). La persistence donne parfois de bons résultats -mais est trop instable (sensibilité à l'argument same_day). - -Comment améliorer la méthode ? -******* mako_kwargs: {} -******* text after mako: ------ -

Introduction

- -J'ai fait quelques essais dans différentes configurations pour la méthode "Neighbors" -(la seule dont on a parlé).
Il semble que le mieux soit - - * simtype="exo" ou "mix" : similarités exogènes avec/sans endogènes (fenêtre optimisée par VC) - * same_season=FALSE : les indices pour la validation croisée ne tiennent pas compte des saisons - * mix_strategy="mult" : on multiplie les poids (au lieu d'en éteindre) - -J'ai systématiquement comparé à une approche naïve : la moyennes des lendemains des jours -"similaires" dans tout le passé ; à chaque fois sans prédiction du saut (sauf pour Neighbors : -prédiction basée sur les poids calculés). - -Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques filaments puis les -histogrammes de quelques poids. Concernant les graphes de filaments, la moitié gauche du graphe -correspond aux jours similaires au jour courant, tandis que la moitié droite affiche les -lendemains : ce sont donc les voisinages tels qu'utilisés dans l'algorithme. - - ------r -library(talweg) - -ts_data = read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg")) -exo_data = read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg")) -data = getData(ts_data, exo_data, input_tz = "Europe/Paris", working_tz="Europe/Paris", predict_at=13) - -indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days") -indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days") -indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days") ------ -

Pollution par chauffage

------r -p_nn_exo = computeForecast(data, indices_ch, "Neighbors", "Neighbors", simtype="exo", horizon=H) -p_nn_mix = computeForecast(data, indices_ch, "Neighbors", "Neighbors", simtype="mix", horizon=H) -p_az = computeForecast(data, indices_ch, "Average", "Zero", horizon=H) #, memory=183) -p_pz = computeForecast(data, indices_ch, "Persistence", "Zero", horizon=H, same_day=TRUE) ------r -e_nn_exo = computeError(data, p_nn_exo) -e_nn_mix = computeError(data, p_nn_mix) -e_az = computeError(data, p_az) -e_pz = computeError(data, p_pz) -options(repr.plot.width=9, repr.plot.height=7) -plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4)) - -# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence - -i_np = which.min(e_nn_exo$abs$indices) -i_p = which.max(e_nn_exo$abs$indices) ------r -options(repr.plot.width=9, repr.plot.height=4) -par(mfrow=c(1,2)) - -plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np)) -plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p)) - -plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np)) -plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p)) - -plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np)) -plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p)) - -# Bleu: prévue, noir: réalisée ------r -par(mfrow=c(1,2)) -f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np)) -f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p)) - -f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np)) -f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np)) -plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p)) - -plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np)) -plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np)) -plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p)) - -plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np)) -plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p)) - -# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir ------r -par(mfrow=c(1,2)) -plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np)) -plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p)) - -plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np)) -plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p) - -# - pollué à gauche, + pollué à droite ------r -# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite -p_nn_exo$getParams(i_np)$window -p_nn_exo$getParams(i_p)$window - -p_nn_mix$getParams(i_np)$window -p_nn_mix$getParams(i_p)$window ------ -

Pollution par épandage

------r -p_nn_exo = computeForecast(data, indices_ep, "Neighbors", "Neighbors", simtype="exo", horizon=H) -p_nn_mix = computeForecast(data, indices_ep, "Neighbors", "Neighbors", simtype="mix", horizon=H) -p_az = computeForecast(data, indices_ep, "Average", "Zero", horizon=H) #, memory=183) -p_pz = computeForecast(data, indices_ep, "Persistence", "Zero", horizon=H, same_day=TRUE) ------r -e_nn_exo = computeError(data, p_nn_exo) -e_nn_mix = computeError(data, p_nn_mix) -e_az = computeError(data, p_az) -e_pz = computeError(data, p_pz) -options(repr.plot.width=9, repr.plot.height=7) -plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4)) - -# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence - -i_np = which.min(e_nn_exo$abs$indices) -i_p = which.max(e_nn_exo$abs$indices) ------r -options(repr.plot.width=9, repr.plot.height=4) -par(mfrow=c(1,2)) - -plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np)) -plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p)) - -plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np)) -plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p)) - -plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np)) -plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p)) - -# Bleu: prévue, noir: réalisée ------r -par(mfrow=c(1,2)) -f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np)) -f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p)) - -f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np)) -f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np)) -plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p)) - -plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np)) -plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np)) -plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p)) - -plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np)) -plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p)) - -# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir ------r -par(mfrow=c(1,2)) -plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np)) -plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p)) - -plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np)) -plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p) - -# - pollué à gauche, + pollué à droite ------r -# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite -p_nn_exo$getParams(i_np)$window -p_nn_exo$getParams(i_p)$window - -p_nn_mix$getParams(i_np)$window -p_nn_mix$getParams(i_p)$window ------ -

Semaine non polluée

------r -p_nn_exo = computeForecast(data, indices_np, "Neighbors", "Neighbors", simtype="exo", horizon=H) -p_nn_mix = computeForecast(data, indices_np, "Neighbors", "Neighbors", simtype="mix", horizon=H) -p_az = computeForecast(data, indices_np, "Average", "Zero", horizon=H) #, memory=183) -p_pz = computeForecast(data, indices_np, "Persistence", "Zero", horizon=H, same_day=TRUE) ------r -e_nn_exo = computeError(data, p_nn_exo) -e_nn_mix = computeError(data, p_nn_mix) -e_az = computeError(data, p_az) -e_pz = computeError(data, p_pz) -options(repr.plot.width=9, repr.plot.height=7) -plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], 4)) - -# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: persistence - -i_np = which.min(e_nn_exo$abs$indices) -i_p = which.max(e_nn_exo$abs$indices) ------r -options(repr.plot.width=9, repr.plot.height=4) -par(mfrow=c(1,2)) - -plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo day",i_np)) -plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p)) - -plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix day",i_np)) -plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p)) - -plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np)) -plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p)) - -# Bleu: prévue, noir: réalisée ------r -par(mfrow=c(1,2)) -f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); title(paste("Filaments nn exo day",i_np)) -f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); title(paste("Filaments nn exo day",i_p)) - -f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); title(paste("Filaments nn mix day",i_np)) -f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); title(paste("Filaments nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np)) -plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p)) - -plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np)) -plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p)) ------r -par(mfrow=c(1,2)) -plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np)) -plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p)) - -plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np)) -plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p)) - -# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir ------r -par(mfrow=c(1,2)) -plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np)) -plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p)) - -plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np)) -plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p) - -# - pollué à gauche, + pollué à droite ------r -# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite -p_nn_exo$getParams(i_np)$window -p_nn_exo$getParams(i_p)$window - -p_nn_mix$getParams(i_np)$window -p_nn_mix$getParams(i_p)$window ------ -

Bilan

- -Problème difficile : on ne fait guère mieux qu'une naïve moyenne des lendemains des jours -similaires dans le passé, ce qui n'est pas loin de prédire une série constante égale à la -dernière valeur observée (méthode "zéro"). La persistence donne parfois de bons résultats -mais est trop instable (sensibilité à l'argument same_day). - -Comment améliorer la méthode ? -******* cell: markdown -******* found shortname r -******* cell: astext=False shortname=r -******* cell: markdown -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* cell: markdown -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* cell: markdown -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* found shortname r -******* cell: astext=False shortname=r -******* cell: markdown -******* cell data structure:[['markdown', - 'text', - '\n' - '\n' - '

Introduction

\n' - '\n' - "J'ai fait quelques essais dans différentes configurations pour la méthode " - '"Neighbors"\n' - '(la seule dont on a parlé).
Il semble que le mieux soit\n' - '\n' - ' * simtype="exo" ou "mix" : similarités exogènes avec/sans endogènes ' - '(fenêtre optimisée par VC)\n' - ' * same_season=FALSE : les indices pour la validation croisée ne tiennent ' - 'pas compte des saisons\n' - ' * mix_strategy="mult" : on multiplie les poids (au lieu d\'en éteindre)\n' - '\n' - "J'ai systématiquement comparé à une approche naïve : la moyennes des " - 'lendemains des jours\n' - '"similaires" dans tout le passé ; à chaque fois sans prédiction du saut ' - '(sauf pour Neighbors :\n' - 'prédiction basée sur les poids calculés).\n' - '\n' - "Ensuite j'affiche les erreurs, quelques courbes prévues/mesurées, quelques " - 'filaments puis les\n' - 'histogrammes de quelques poids. Concernant les graphes de filaments, la ' - 'moitié gauche du graphe\n' - 'correspond aux jours similaires au jour courant, tandis que la moitié ' - 'droite affiche les\n' - "lendemains : ce sont donc les voisinages tels qu'utilisés dans " - "l'algorithme.\n" - '\n'], - ['codecell', - 'R', - 'library(talweg)\n' - '\n' - 'ts_data = ' - 'read.csv(system.file("extdata","pm10_mesures_H_loc_report.csv",package="talweg"))\n' - 'exo_data = ' - 'read.csv(system.file("extdata","meteo_extra_noNAs.csv",package="talweg"))\n' - 'data = getData(ts_data, exo_data, input_tz = "Europe/Paris", ' - 'working_tz="Europe/Paris", predict_at=13)\n' - '\n' - 'indices_ch = seq(as.Date("2015-01-18"),as.Date("2015-01-24"),"days")\n' - 'indices_ep = seq(as.Date("2015-03-15"),as.Date("2015-03-21"),"days")\n' - 'indices_np = seq(as.Date("2015-04-26"),as.Date("2015-05-02"),"days")'], - ['markdown', - 'text', - '\n\n

Pollution par chauffage

'], - ['codecell', - 'R', - 'p_nn_exo = computeForecast(data, indices_ch, "Neighbors", "Neighbors", ' - 'simtype="exo", horizon=H)\n' - 'p_nn_mix = computeForecast(data, indices_ch, "Neighbors", "Neighbors", ' - 'simtype="mix", horizon=H)\n' - 'p_az = computeForecast(data, indices_ch, "Average", "Zero", horizon=H) #, ' - 'memory=183)\n' - 'p_pz = computeForecast(data, indices_ch, "Persistence", "Zero", horizon=H, ' - 'same_day=TRUE)'], - ['codecell', - 'R', - 'e_nn_exo = computeError(data, p_nn_exo)\n' - 'e_nn_mix = computeError(data, p_nn_mix)\n' - 'e_az = computeError(data, p_az)\n' - 'e_pz = computeError(data, p_pz)\n' - 'options(repr.plot.width=9, repr.plot.height=7)\n' - 'plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], ' - '4))\n' - '\n' - '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: ' - 'persistence\n' - '\n' - 'i_np = which.min(e_nn_exo$abs$indices)\n' - 'i_p = which.max(e_nn_exo$abs$indices)'], - ['codecell', - 'R', - 'options(repr.plot.width=9, repr.plot.height=4)\n' - 'par(mfrow=c(1,2))\n' - '\n' - 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo ' - 'day",i_np))\n' - 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n' - '\n' - 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix ' - 'day",i_np))\n' - 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n' - '\n' - 'plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))\n' - 'plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))\n' - '\n' - '# Bleu: prévue, noir: réalisée'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); ' - 'title(paste("Filaments nn exo day",i_np))\n' - 'f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); ' - 'title(paste("Filaments nn exo day",i_p))\n' - '\n' - 'f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); ' - 'title(paste("Filaments nn mix day",i_np))\n' - 'f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); ' - 'title(paste("Filaments nn mix day",i_p))'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))\n' - 'plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))\n' - '\n' - 'plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))\n' - 'plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))\n' - 'plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))\n' - '\n' - 'plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))\n' - 'plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))\n' - '\n' - '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))\n' - 'plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))\n' - '\n' - 'plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))\n' - 'plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)\n' - '\n' - '# - pollué à gauche, + pollué à droite'], - ['codecell', - 'R', - '# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite\n' - 'p_nn_exo$getParams(i_np)$window\n' - 'p_nn_exo$getParams(i_p)$window\n' - '\n' - 'p_nn_mix$getParams(i_np)$window\n' - 'p_nn_mix$getParams(i_p)$window'], - ['markdown', - 'text', - '\n\n

Pollution par épandage

'], - ['codecell', - 'R', - 'p_nn_exo = computeForecast(data, indices_ep, "Neighbors", "Neighbors", ' - 'simtype="exo", horizon=H)\n' - 'p_nn_mix = computeForecast(data, indices_ep, "Neighbors", "Neighbors", ' - 'simtype="mix", horizon=H)\n' - 'p_az = computeForecast(data, indices_ep, "Average", "Zero", horizon=H) #, ' - 'memory=183)\n' - 'p_pz = computeForecast(data, indices_ep, "Persistence", "Zero", horizon=H, ' - 'same_day=TRUE)'], - ['codecell', - 'R', - 'e_nn_exo = computeError(data, p_nn_exo)\n' - 'e_nn_mix = computeError(data, p_nn_mix)\n' - 'e_az = computeError(data, p_az)\n' - 'e_pz = computeError(data, p_pz)\n' - 'options(repr.plot.width=9, repr.plot.height=7)\n' - 'plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], ' - '4))\n' - '\n' - '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: ' - 'persistence\n' - '\n' - 'i_np = which.min(e_nn_exo$abs$indices)\n' - 'i_p = which.max(e_nn_exo$abs$indices)'], - ['codecell', - 'R', - 'options(repr.plot.width=9, repr.plot.height=4)\n' - 'par(mfrow=c(1,2))\n' - '\n' - 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo ' - 'day",i_np))\n' - 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n' - '\n' - 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix ' - 'day",i_np))\n' - 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n' - '\n' - 'plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))\n' - 'plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))\n' - '\n' - '# Bleu: prévue, noir: réalisée'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); ' - 'title(paste("Filaments nn exo day",i_np))\n' - 'f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); ' - 'title(paste("Filaments nn exo day",i_p))\n' - '\n' - 'f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); ' - 'title(paste("Filaments nn mix day",i_np))\n' - 'f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); ' - 'title(paste("Filaments nn mix day",i_p))'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))\n' - 'plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))\n' - '\n' - 'plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))\n' - 'plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))\n' - 'plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))\n' - '\n' - 'plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))\n' - 'plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))\n' - '\n' - '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))\n' - 'plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))\n' - '\n' - 'plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))\n' - 'plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)\n' - '\n' - '# - pollué à gauche, + pollué à droite'], - ['codecell', - 'R', - '# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite\n' - 'p_nn_exo$getParams(i_np)$window\n' - 'p_nn_exo$getParams(i_p)$window\n' - '\n' - 'p_nn_mix$getParams(i_np)$window\n' - 'p_nn_mix$getParams(i_p)$window'], - ['markdown', - 'text', - '\n\n

Semaine non polluée

'], - ['codecell', - 'R', - 'p_nn_exo = computeForecast(data, indices_np, "Neighbors", "Neighbors", ' - 'simtype="exo", horizon=H)\n' - 'p_nn_mix = computeForecast(data, indices_np, "Neighbors", "Neighbors", ' - 'simtype="mix", horizon=H)\n' - 'p_az = computeForecast(data, indices_np, "Average", "Zero", horizon=H) #, ' - 'memory=183)\n' - 'p_pz = computeForecast(data, indices_np, "Persistence", "Zero", horizon=H, ' - 'same_day=TRUE)'], - ['codecell', - 'R', - 'e_nn_exo = computeError(data, p_nn_exo)\n' - 'e_nn_mix = computeError(data, p_nn_mix)\n' - 'e_az = computeError(data, p_az)\n' - 'e_pz = computeError(data, p_pz)\n' - 'options(repr.plot.width=9, repr.plot.height=7)\n' - 'plotError(list(e_nn_mix, e_pz, e_az, e_nn_exo), cols=c(1,2,colors()[258], ' - '4))\n' - '\n' - '# Noir: neighbors_mix, bleu: neighbors_exo, vert: moyenne, rouge: ' - 'persistence\n' - '\n' - 'i_np = which.min(e_nn_exo$abs$indices)\n' - 'i_p = which.max(e_nn_exo$abs$indices)'], - ['codecell', - 'R', - 'options(repr.plot.width=9, repr.plot.height=4)\n' - 'par(mfrow=c(1,2))\n' - '\n' - 'plotPredReal(data, p_nn_exo, i_np); title(paste("PredReal nn exo ' - 'day",i_np))\n' - 'plotPredReal(data, p_nn_exo, i_p); title(paste("PredReal nn exo day",i_p))\n' - '\n' - 'plotPredReal(data, p_nn_mix, i_np); title(paste("PredReal nn mix ' - 'day",i_np))\n' - 'plotPredReal(data, p_nn_mix, i_p); title(paste("PredReal nn mix day",i_p))\n' - '\n' - 'plotPredReal(data, p_az, i_np); title(paste("PredReal az day",i_np))\n' - 'plotPredReal(data, p_az, i_p); title(paste("PredReal az day",i_p))\n' - '\n' - '# Bleu: prévue, noir: réalisée'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'f_np_exo = computeFilaments(data, p_nn_exo, i_np, plot=TRUE); ' - 'title(paste("Filaments nn exo day",i_np))\n' - 'f_p_exo = computeFilaments(data, p_nn_exo, i_p, plot=TRUE); ' - 'title(paste("Filaments nn exo day",i_p))\n' - '\n' - 'f_np_mix = computeFilaments(data, p_nn_mix, i_np, plot=TRUE); ' - 'title(paste("Filaments nn mix day",i_np))\n' - 'f_p_mix = computeFilaments(data, p_nn_mix, i_p, plot=TRUE); ' - 'title(paste("Filaments nn mix day",i_p))'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotFilamentsBox(data, f_np_exo); title(paste("FilBox nn exo day",i_np))\n' - 'plotFilamentsBox(data, f_p_exo); title(paste("FilBox nn exo day",i_p))\n' - '\n' - 'plotFilamentsBox(data, f_np_mix); title(paste("FilBox nn mix day",i_np))\n' - 'plotFilamentsBox(data, f_p_mix); title(paste("FilBox nn mix day",i_p))'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotRelVar(data, f_np_exo); title(paste("StdDev nn exo day",i_np))\n' - 'plotRelVar(data, f_p_exo); title(paste("StdDev nn exo day",i_p))\n' - '\n' - 'plotRelVar(data, f_np_mix); title(paste("StdDev nn mix day",i_np))\n' - 'plotRelVar(data, f_p_mix); title(paste("StdDev nn mix day",i_p))\n' - '\n' - '# Variabilité globale en rouge ; sur les 60 voisins (+ lendemains) en noir'], - ['codecell', - 'R', - 'par(mfrow=c(1,2))\n' - 'plotSimils(p_nn_exo, i_np); title(paste("Weights nn exo day",i_np))\n' - 'plotSimils(p_nn_exo, i_p); title(paste("Weights nn exo day",i_p))\n' - '\n' - 'plotSimils(p_nn_mix, i_np); title(paste("Weights nn mix day",i_np))\n' - 'plotSimils(p_nn_mix, i_p); title(paste("Weights nn mix day",i_p)\n' - '\n' - '# - pollué à gauche, + pollué à droite'], - ['codecell', - 'R', - '# Fenêtres sélectionnées dans ]0,10] / endo à gauche, exo à droite\n' - 'p_nn_exo$getParams(i_np)$window\n' - 'p_nn_exo$getParams(i_p)$window\n' - '\n' - 'p_nn_mix$getParams(i_np)$window\n' - 'p_nn_mix$getParams(i_p)$window'], - ['markdown', - 'text', - '\n' - '\n' - '

Bilan

\n' - '\n' - "Problème difficile : on ne fait guère mieux qu'une naïve moyenne des " - 'lendemains des jours\n' - "similaires dans le passé, ce qui n'est pas loin de prédire une série " - 'constante égale à la\n' - 'dernière valeur observée (méthode "zéro"). La persistence donne parfois de ' - 'bons résultats\n' - "mais est trop instable (sensibilité à l'argument same_day).\n" - '\n' - 'Comment améliorer la méthode ?']]