From 2e0ef04b1bb097b43df90afe8e7200c39421aff2 Mon Sep 17 00:00:00 2001 From: Benjamin Auder <benjamin.auder@somewhere> Date: Fri, 5 May 2017 00:47:25 +0200 Subject: [PATCH] 'update' --- pkg/R/plot.R | 3 ++- reports/Experiments.gj | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/pkg/R/plot.R b/pkg/R/plot.R index b5a8e4b..d501d9e 100644 --- a/pkg/R/plot.R +++ b/pkg/R/plot.R @@ -64,7 +64,8 @@ plotPredReal <- function(data, pred, index) measure = data$getSerie( pred$getIndexInData(index) )[1:length(pred$getForecast(1))] # Remove the common part, where prediction == measure - dot_mark <- ifelse(prediction[1]==measure[1], which.max(prediction==measure), 0) + dot_mark <- ifelse(prediction[1]==measure[1], + which.max(seq_along(prediction)[prediction==measure]), 0) prediction = prediction[(dot_mark+1):length(prediction)] measure = measure[(dot_mark+1):length(measure)] diff --git a/reports/Experiments.gj b/reports/Experiments.gj index 55147e9..aef72e6 100644 --- a/reports/Experiments.gj +++ b/reports/Experiments.gj @@ -54,7 +54,7 @@ indices_np = seq(as.Date("2015-04-27"),as.Date("2015-05-03"),"days") ##<h2 style="color:blue;font-size:2em">${list_titles[i]}</h2> ${"##"} ${list_titles[i]} -----r -p1 = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", predict_from=P, +p1_7 = computeForecast(data, ${list_indices[i]}, "Neighbors", "Neighbors", predict_from=P, horizon=H, simtype="mix", local=FALSE) p2 = computeForecast(data, ${list_indices[i]}, "Neighbors", NULL, predict_from=P, horizon=H, simtype="none", local=TRUE) @@ -78,10 +78,10 @@ i_np = which.min(sum_p23) #indice de jour "facile" i_p = which.max(sum_p23) #indice de jour "difficile" ----- % if i == 0: -L'erreur absolue -- en haut à gauche -- reste modérée pour les meilleurs modèles +L'erreur absolue $-$ en haut à droite $-$ reste modérée pour les meilleurs modèles (variantes à voisins), ne dépassant 10 que deux jours. Les deux modèles naïfs ont des erreurs similaires sauf sur la période "difficile" (jours 4 à 6), sur laquelle on gagne -donc à chercher des jours similaires pour effectuer la prévision. +donc à chercher des jours semblables pour effectuer la prévision. Le MAPE reste en geÌneÌral infeÌrieur aÌ 35% pour les meilleurs méthodes. % elif i == 1: Le modèle à voisins avec contrainte de localité obtient ici les meilleurs résultats, son @@ -92,9 +92,9 @@ droite). Le MAPE jour après jour est du même ordre que précédemment pour cet Dans ce cas plus favorable les intensiteÌ des erreurs absolues ont clairement diminueÌ : elles sont souvent en dessous de 5. En revanche le MAPE moyen reste en général au-delaÌ de 20%. Comme dans le cas de l'eÌpandage on constate une croissance globale de la courbe -journalieÌre d'erreur absolue moyenne (en haut aÌ gauche) -- sauf pour la méthode à voisins -"locale" ; ceci peut eÌtre duÌ au fait que l'on ajuste le niveau du jour aÌ preÌdire en le -recollant sur la dernieÌre valeur observeÌe (sauf pour "Neighbors local"). +journalieÌre d'erreur absolue moyenne (en haut aÌ gauche) $-$ sauf pour la méthode à +voisins "locale" ; ceci peut eÌtre duÌ au fait que l'on ajuste le niveau du jour aÌ preÌdire +en le recollant sur la dernieÌre valeur observeÌe (sauf pour "Neighbors local"). % endif -----r options(repr.plot.width=9, repr.plot.height=4) @@ -120,7 +120,7 @@ Dans le cas d'un jour "facile" aÌ preÌdire $-$ aÌ gauche $-$ la forme est plu retrouveÌe, ainsi que le niveau moyen pour la méthode sans contrainte de localité (dans l'autre, l'algorithme a probablement écarté trop de voisins potentiels). Concernant le jour "difficile" aÌ droite, non seulement la forme n'est pas anticipeÌe mais -surtout le niveau preÌdit est largement supérieur au niveau de pollution observeÌ -- dans +surtout le niveau preÌdit est largement supérieur au niveau de pollution observeÌ $-$ dans une moindre mesure toutefois pour la variante "locale". % else: L'impression visuelle est plutôt mauvaise dans ce cas, mais les écart étant minimes les @@ -230,10 +230,11 @@ title(paste("Weights p1 day",i_p)) Les poids se concentrent preÌs de 0 : c'est ce que l'on souhaite observer pour eÌviter d'effectuer une simple moyenne. % elif i == 1: -En comparaison avec le paragraphe preÌceÌdent on retrouve le meÌme (bon) comportement des -poids pour la version "non locale". +On retrouve le meÌme (bon) comportement des poids : concentration vers 0, quelques poids +non négligeables (presque trop peu pour le jour "difficile"). % else: -Concernant les poids en revanche, deux cas a priori mauvais se cumulent : ... +Les poids sont répartis comme souhaité : concentrés vers 0 avec quelques valeurs non +négligeables. % endif -----r options(digits=2) -- 2.44.0