From 2e0ef04b1bb097b43df90afe8e7200c39421aff2 Mon Sep 17 00:00:00 2001 From: Benjamin Auder 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") ##

${list_titles[i]}

${"##"} ${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 général inférieur à 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 intensité des erreurs absolues ont clairement diminué : elles sont souvent en dessous de 5. En revanche le MAPE moyen reste en général au-delà de 20%. Comme dans le cas de l'épandage on constate une croissance globale de la courbe -journalière d'erreur absolue moyenne (en haut à gauche) -- sauf pour la méthode à voisins -"locale" ; ceci peut être dû au fait que l'on ajuste le niveau du jour à prédire en le -recollant sur la dernière valeur observée (sauf pour "Neighbors local"). +journalière d'erreur absolue moyenne (en haut à gauche) $-$ sauf pour la méthode à +voisins "locale" ; ceci peut être dû au fait que l'on ajuste le niveau du jour à prédire +en le recollant sur la dernière valeur observé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" à prédire $-$ à gauche $-$ la forme est plu retrouvé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" à droite, non seulement la forme n'est pas anticipée mais -surtout le niveau prédit est largement supérieur au niveau de pollution observé -- dans +surtout le niveau prédit est largement supérieur au niveau de pollution observé $-$ 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 près de 0 : c'est ce que l'on souhaite observer pour éviter d'effectuer une simple moyenne. % elif i == 1: -En comparaison avec le paragraphe précédent on retrouve le même (bon) comportement des -poids pour la version "non locale". +On retrouve le mê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