Skip to content

Commit 545178e

Browse files
committed
Update: figures for PVR
1 parent 6d3cea7 commit 545178e

File tree

1 file changed

+88
-32
lines changed

1 file changed

+88
-32
lines changed

wqf/val/pvr.py

Lines changed: 88 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,13 @@
2525
from wqf.val.metrics import MAPD
2626
from wqf.val.metrics import R2
2727
from wqf.val.metrics import RMSE
28+
from wqf.val.metrics import RMSLE
2829
from wqf.val.metrics import WRMSSE
2930
from wqf.val.period import Period
3031
from wqf.val.pvp import plot_bias_scene
3132
from wqf.val.pvp import plot_bias_time_series
3233
from wqf.val.pvp import plot_count_scene
34+
from wqf.val.pvp import plot_count_time_series
3335
from wqf.val.pvp import plot_determination_coefficient_scene
3436
from wqf.val.pvp import plot_determination_coefficient_time_series
3537
from wqf.val.pvp import plot_error_density
@@ -44,6 +46,8 @@
4446
from wqf.val.pvp import plot_relative_error_scatter
4547
from wqf.val.pvp import plot_rmse_scene
4648
from wqf.val.pvp import plot_rmse_time_series
49+
from wqf.val.pvp import plot_rmsle_scene
50+
from wqf.val.pvp import plot_rmsle_time_series
4751
from wqf.val.pvp import plot_value_density
4852
from wqf.val.pvp import plot_value_scatter
4953
from wqf.val.pvp import plot_wrmsse_scene
@@ -74,7 +78,7 @@ def plot_bias_diagrams(
7478
value = Count().value(ref, pre)
7579
print(f"Count ............. ({method}) {period}: {value}", flush=True)
7680

77-
title = f"{method} forecast {period}"
81+
title = _title(method, period)
7882
plot_bias_time_series(
7983
Bias().series(ref, pre),
8084
title,
@@ -96,13 +100,31 @@ def plot_bias_diagrams(
96100
title,
97101
f"rer_{method}_hist_{period.str('_')}",
98102
).clear()
103+
# noinspection PyTypeChecker
104+
plot_count_time_series(
105+
Count().series(ref, pre) / 1000.0,
106+
title,
107+
f"count_{method}_series_{period.str('_')}",
108+
xlim=period.lim,
109+
).clear()
99110
plot_count_scene(
100111
Count().image(ref, pre),
101112
title,
102113
f"count_{method}_image_{period.str('_')}",
103114
).clear()
104115

105116

117+
def _title(method: str, period: Period) -> str:
118+
method = method.split(":")
119+
if len(method) == 2:
120+
title = f"{method[0]} forecast {period} [{method[1]}]"
121+
else:
122+
title = f"{method[0]} forecast {period}"
123+
if title.startswith("XGB"):
124+
title = f"{title[3:4]}-day {title[5:]}"
125+
return title
126+
127+
106128
def plot_det_coefficient_diagrams(
107129
ref: DataArray, pre: DataArray, method: str, period: Period
108130
):
@@ -115,7 +137,7 @@ def plot_det_coefficient_diagrams(
115137
flush=True,
116138
)
117139

118-
title = f"{method} forecast {period}"
140+
title = _title(method, period)
119141
plot_determination_coefficient_time_series(
120142
R2().series(ref, pre),
121143
title,
@@ -141,7 +163,7 @@ def plot_mad_diagrams(
141163
flush=True,
142164
)
143165

144-
title = f"{method} forecast {period}"
166+
title = _title(method, period)
145167
plot_mad_time_series(
146168
MAD().series(ref, pre),
147169
title,
@@ -167,7 +189,7 @@ def plot_mapd_diagrams(
167189
flush=True,
168190
)
169191

170-
title = f"{method} forecast {period}"
192+
title = _title(method, period)
171193
plot_mapd_time_series(
172194
MAPD().series(ref, pre, condition=ref > 1.0),
173195
title,
@@ -193,7 +215,9 @@ def plot_rmse_diagrams(
193215
flush=True,
194216
)
195217

196-
title = f"{method} forecast {period}"
218+
title = _title(method, period)
219+
if title.startswith("XGB"):
220+
title = f"{title[3:4]}-day {title[4:]}"
197221
plot_rmse_time_series(
198222
RMSE().series(ref, pre),
199223
title,
@@ -207,27 +231,55 @@ def plot_rmse_diagrams(
207231
).clear()
208232

209233

234+
def plot_rmsle_diagrams(
235+
ref: DataArray, pre: DataArray, method: str, period: Period
236+
):
237+
ref = period.slice(ref)
238+
pre = period.slice(pre)
239+
240+
value = RMSLE().value(ref, pre)
241+
print(
242+
f"RMSLE ............. ({method}) {period}: {value:6.2f}",
243+
flush=True,
244+
)
245+
246+
title = _title(method, period)
247+
if title.startswith("XGB"):
248+
title = f"{title[3:4]}-day {title[4:]}"
249+
plot_rmsle_time_series(
250+
RMSLE().series(ref, pre),
251+
title,
252+
f"rmsle_{method}_series_{period.str('_')}",
253+
xlim=period.lim,
254+
).clear()
255+
plot_rmsle_scene(
256+
RMSLE().image(ref, pre),
257+
title,
258+
f"rmsle_{method}_image_{period.str('_')}",
259+
).clear()
260+
261+
210262
def plot_wrmsse_diagrams(
211263
ref: DataArray, pre: DataArray, method: str, period: Period
212264
):
213265
ref = period.slice(ref)
214266
pre = period.slice(pre)
215267

216-
value = WRMSSE().value(ref, pre, condition=ref > 1.0)
268+
value = WRMSSE().value(ref, pre)
217269
print(
218270
f"WRMSSE ............ ({method}) {period}: {value:6.2f}",
219271
flush=True,
220272
)
221273

222-
title = f"{method} forecast {period}"
274+
title = _title(method, period)
223275
plot_wrmsse_time_series(
224-
WRMSSE().series(ref, pre, condition=ref > 1.0),
276+
WRMSSE().series(ref, pre),
225277
title,
226278
f"wrmsse_{method}_series_{period.str('_')}",
227279
xlim=period.lim,
228280
).clear()
229281
plot_wrmsse_scene(
230-
WRMSSE().image(ref, pre, condition=ref > 1.0),
282+
WRMSSE().image(ref, pre),
231283
title,
232284
f"wrmsse_{method}_image_{period.str('_')}",
233285
).clear()
@@ -239,59 +291,63 @@ def plot_density_diagrams(
239291
x = period.slice(ref)
240292
y = period.slice(pre)
241293

294+
title = _title(method, period)
242295
plot_value_density(
243296
(x, y),
244-
f"{method} forecast {period}",
297+
title,
245298
f"val_{method}_density_{period.str('_')}",
246299
).clear()
247300
plot_error_density(
248301
(x, y - x),
249-
f"{method} forecast {period}",
302+
title,
250303
f"err_{method}_density_{period.str('_')}",
251304
).clear()
252305
plot_relative_error_density(
253306
(x, (y - x) / x),
254-
f"{method} forecast {period}",
307+
title,
255308
f"rer_{method}_density_{period.str('_')}",
256309
).clear()
257310
plot_value_scatter(
258311
(x, y),
259-
f"{method} forecast {period}",
312+
title,
260313
f"val_{method}_scatter_{period.str('_')}",
261314
).clear()
262315
plot_error_scatter(
263316
(x, y - x),
264-
f"{method} forecast {period}",
317+
title,
265318
f"err_{method}_scatter_{period.str('_')}",
266319
).clear()
267320
plot_relative_error_scatter(
268321
(x, (y - x) / x),
269-
f"{method} forecast {period}",
322+
title,
270323
f"rer_{method}_scatter_{period.str('_')}",
271324
).clear()
272325

273326

274327
def plot_diagnostic_diagrams(ref: DataArray, pre: DataArray, method: str):
275-
plot_bias_diagrams(ref, pre, method, Period(2016, 2019))
276-
plot_bias_diagrams(ref, pre, method, Period(2020))
277-
278-
plot_det_coefficient_diagrams(ref, pre, method, Period(2016, 2019))
279-
plot_det_coefficient_diagrams(ref, pre, method, Period(2020))
280-
281-
plot_mad_diagrams(ref, pre, method, Period(2016, 2019))
282-
plot_mad_diagrams(ref, pre, method, Period(2020))
283-
284-
plot_mapd_diagrams(ref, pre, method, Period(2016, 2019))
285-
plot_mapd_diagrams(ref, pre, method, Period(2020))
286-
287-
plot_rmse_diagrams(ref, pre, method, Period(2016, 2019))
288-
plot_rmse_diagrams(ref, pre, method, Period(2020))
289-
328+
# plot_bias_diagrams(ref, pre, method, Period(2016, 2019))
329+
# plot_bias_diagrams(ref, pre, method, Period(2020))
330+
#
331+
# plot_det_coefficient_diagrams(ref, pre, method, Period(2016, 2019))
332+
# plot_det_coefficient_diagrams(ref, pre, method, Period(2020))
333+
#
334+
# plot_mad_diagrams(ref, pre, method, Period(2016, 2019))
335+
# plot_mad_diagrams(ref, pre, method, Period(2020))
336+
#
337+
# plot_mapd_diagrams(ref, pre, method, Period(2016, 2019))
338+
# plot_mapd_diagrams(ref, pre, method, Period(2020))
339+
340+
# plot_rmse_diagrams(ref, pre, method, Period(2016, 2019))
341+
# plot_rmse_diagrams(ref, pre, method, Period(2020))
342+
343+
# plot_rmsle_diagrams(ref, pre, method, Period(2016, 2019))
344+
# plot_rmsle_diagrams(ref, pre, method, Period(2020))
345+
#
290346
plot_wrmsse_diagrams(ref, pre, method, Period(2016, 2019))
291347
plot_wrmsse_diagrams(ref, pre, method, Period(2020))
292348

293-
plot_density_diagrams(ref, pre, method, Period(2016, 2019))
294-
plot_density_diagrams(ref, pre, method, Period(2020))
349+
# plot_density_diagrams(ref, pre, method, Period(2016, 2019))
350+
# plot_density_diagrams(ref, pre, method, Period(2020))
295351

296352

297353
def generate_figures(args):

0 commit comments

Comments
 (0)