zhang qiao commited on
Commit
8cf4695
1 Parent(s): c92b736

Upload folder using huggingface_hub

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. __pycache__/app.cpython-310.pyc +0 -0
  2. __pycache__/demo.cpython-310.pyc +0 -0
  3. __pycache__/demo.cpython-39.pyc +0 -0
  4. __pycache__/demo2.cpython-310.pyc +0 -0
  5. __pycache__/gr_demo.cpython-311.pyc +0 -0
  6. best_models.csv +6 -4
  7. conda_installs.txt +3 -0
  8. data/.gitignore +1 -0
  9. data/demand_forecasting_demo_data.csv +400 -1019
  10. data/demand_forecasting_demo_data_5.csv +269 -0
  11. data/demand_forecasting_demo_data_old.csv +1019 -0
  12. data/demand_forecasting_demo_models.csv +6 -4
  13. data/demand_forecasting_demo_models_old.csv +5 -0
  14. data/demand_forecasting_demo_result.csv +48 -60
  15. data/demand_forecasting_demo_result_old.csv +61 -0
  16. data/energy_consumption.csv +240 -0
  17. data/multivariate/Predicting_price_blow_mold.xlsx +0 -0
  18. data/multivariate/Variable description.xlsx +0 -0
  19. data/multivariate/blow_mold_preprocessed.csv +277 -0
  20. data/multivariate/demo_future.csv +5 -0
  21. data/multivariate/demo_historical.csv +277 -0
  22. data/multivariate/resource.md +1 -0
  23. demo.py +22 -6
  24. demo2.py +275 -0
  25. forecast_result.csv +12 -60
  26. gr_app/GradioApp.py +105 -21
  27. gr_app/__init__.py +0 -1
  28. gr_app/__pycache__/GradioApp.cpython-310.pyc +0 -0
  29. gr_app/__pycache__/GradioApp.cpython-311.pyc +0 -0
  30. gr_app/__pycache__/GradioApp.cpython-39.pyc +0 -0
  31. gr_app/__pycache__/__init__.cpython-310.pyc +0 -0
  32. gr_app/__pycache__/__init__.cpython-311.pyc +0 -0
  33. gr_app/__pycache__/__init__.cpython-39.pyc +0 -0
  34. gr_app/__pycache__/args.cpython-310.pyc +0 -0
  35. gr_app/__pycache__/args.cpython-311.pyc +0 -0
  36. gr_app/__pycache__/args.cpython-39.pyc +0 -0
  37. gr_app/__pycache__/helpers.cpython-310.pyc +0 -0
  38. gr_app/args.py +4 -0
  39. gr_app/helpers.py +1 -1
  40. gr_app2/__init__.py +1 -0
  41. gr_app2/__pycache__/GradioApp.cpython-310.pyc +0 -0
  42. gr_app2/__pycache__/__init__.cpython-310.pyc +0 -0
  43. gr_app2/__pycache__/args.cpython-310.pyc +0 -0
  44. gr_app2/__pycache__/gr_app.cpython-310.pyc +0 -0
  45. gr_app2/args.py +79 -0
  46. gr_app2/gr_app.py +500 -0
  47. notebooks/E01-quick_look_multivariate_data.ipynb +0 -0
  48. notebooks/E02-ts_analytics.ipynb +0 -0
  49. notebooks/E03-multivariate_forecasting.ipynb +361 -0
  50. notebooks/E04-forecaster.ipynb +0 -0
__pycache__/app.cpython-310.pyc ADDED
Binary file (1.9 kB). View file
 
__pycache__/demo.cpython-310.pyc CHANGED
Binary files a/__pycache__/demo.cpython-310.pyc and b/__pycache__/demo.cpython-310.pyc differ
 
__pycache__/demo.cpython-39.pyc ADDED
Binary file (1.92 kB). View file
 
__pycache__/demo2.cpython-310.pyc ADDED
Binary file (4.61 kB). View file
 
__pycache__/gr_demo.cpython-311.pyc ADDED
Binary file (3.6 kB). View file
 
best_models.csv CHANGED
@@ -1,5 +1,7 @@
1
  sku,best_model,characteristic
2
- sku-0,fft_plus,continuous
3
- sku-1,holt_winters_plus,continuous
4
- sku-2,prophet_plus,fuzzy
5
- sku-3,prophet_plus,fuzzy_transient
 
 
 
1
  sku,best_model,characteristic
2
+ Item_A,prophet,continuous
3
+ Item_B,prophet,continuous
4
+ Item_C,fft_i,continuous
5
+ Item_D,fft_i,continuous
6
+ Item_E,prophet,continuous
7
+ Item_F,ceif,fuzzy
conda_installs.txt CHANGED
@@ -3,6 +3,9 @@ conda install -c anaconda urllib3 -y
3
 
4
  conda install -c conda-forge prophet -y
5
 
 
 
 
6
  conda install -c anaconda pandas -y
7
  conda install scikit-learn -y
8
  conda install -c intel pyyaml -y
 
3
 
4
  conda install -c conda-forge prophet -y
5
 
6
+ conda install -c conda-forge xgboost -y
7
+ conda install -c conda-forge sktime -y
8
+
9
  conda install -c anaconda pandas -y
10
  conda install scikit-learn -y
11
  conda install -c intel pyyaml -y
data/.gitignore ADDED
@@ -0,0 +1 @@
 
 
1
+ raw
data/demand_forecasting_demo_data.csv CHANGED
@@ -1,1019 +1,400 @@
1
- datetime,y,sku
2
- 2018-05-06,2,sku-0
3
- 2018-05-13,1,sku-0
4
- 2018-05-20,7,sku-0
5
- 2018-05-27,9,sku-0
6
- 2018-06-03,2,sku-0
7
- 2018-06-10,3,sku-0
8
- 2018-06-17,9,sku-0
9
- 2018-06-24,9,sku-0
10
- 2018-07-01,9,sku-0
11
- 2018-07-08,9,sku-0
12
- 2018-07-15,9,sku-0
13
- 2018-07-22,9,sku-0
14
- 2018-07-29,9,sku-0
15
- 2018-08-05,9,sku-0
16
- 2018-08-12,9,sku-0
17
- 2018-08-19,9,sku-0
18
- 2018-08-26,9,sku-0
19
- 2018-09-02,9,sku-0
20
- 2018-09-09,9,sku-0
21
- 2018-09-16,6,sku-0
22
- 2018-09-23,6,sku-0
23
- 2018-09-30,2,sku-0
24
- 2018-10-07,9,sku-0
25
- 2018-10-14,9,sku-0
26
- 2018-10-21,2,sku-0
27
- 2018-10-28,10,sku-0
28
- 2018-11-04,3,sku-0
29
- 2018-11-11,9,sku-0
30
- 2018-11-18,16,sku-0
31
- 2018-11-25,1,sku-0
32
- 2018-12-02,10,sku-0
33
- 2018-12-09,9,sku-0
34
- 2018-12-16,4,sku-0
35
- 2018-12-23,2,sku-0
36
- 2018-12-30,1,sku-0
37
- 2019-01-06,9,sku-0
38
- 2019-01-13,6,sku-0
39
- 2019-01-20,15,sku-0
40
- 2019-01-27,2,sku-0
41
- 2019-02-03,9,sku-0
42
- 2019-02-10,9,sku-0
43
- 2019-02-17,9,sku-0
44
- 2019-02-24,10,sku-0
45
- 2019-03-03,9,sku-0
46
- 2019-03-10,2,sku-0
47
- 2019-03-17,14,sku-0
48
- 2019-03-24,1,sku-0
49
- 2019-03-31,2,sku-0
50
- 2019-04-07,9,sku-0
51
- 2019-04-14,3,sku-0
52
- 2019-04-21,3,sku-0
53
- 2019-04-28,1,sku-0
54
- 2019-05-05,2,sku-0
55
- 2019-05-12,9,sku-0
56
- 2019-05-19,13,sku-0
57
- 2019-05-26,6,sku-0
58
- 2019-06-02,2,sku-0
59
- 2019-06-09,9,sku-0
60
- 2019-06-16,9,sku-0
61
- 2019-06-23,9,sku-0
62
- 2019-06-30,12,sku-0
63
- 2019-07-07,2,sku-0
64
- 2019-07-14,1,sku-0
65
- 2019-07-21,15,sku-0
66
- 2019-07-28,9,sku-0
67
- 2019-08-04,5,sku-0
68
- 2019-08-11,9,sku-0
69
- 2019-08-18,12,sku-0
70
- 2019-08-25,6,sku-0
71
- 2019-09-01,4,sku-0
72
- 2019-09-08,9,sku-0
73
- 2019-09-15,1,sku-0
74
- 2019-09-22,20,sku-0
75
- 2019-09-29,9,sku-0
76
- 2019-10-06,9,sku-0
77
- 2019-10-13,4,sku-0
78
- 2019-10-20,4,sku-0
79
- 2019-10-27,9,sku-0
80
- 2019-11-03,17,sku-0
81
- 2019-11-10,1,sku-0
82
- 2019-11-17,11,sku-0
83
- 2019-11-24,5,sku-0
84
- 2019-12-01,7,sku-0
85
- 2019-12-08,4,sku-0
86
- 2019-12-15,9,sku-0
87
- 2019-12-22,9,sku-0
88
- 2019-12-29,13,sku-0
89
- 2020-01-05,9,sku-0
90
- 2020-01-12,15,sku-0
91
- 2020-01-19,3,sku-0
92
- 2020-01-26,3,sku-0
93
- 2020-02-02,4,sku-0
94
- 2020-02-09,8,sku-0
95
- 2020-02-16,30,sku-0
96
- 2020-02-23,9,sku-0
97
- 2020-03-01,9,sku-0
98
- 2020-03-08,9,sku-0
99
- 2020-03-15,9,sku-0
100
- 2020-03-22,8,sku-0
101
- 2020-03-29,9,sku-0
102
- 2020-04-05,9,sku-0
103
- 2020-04-12,9,sku-0
104
- 2020-04-19,9,sku-0
105
- 2020-04-26,9,sku-0
106
- 2020-05-03,9,sku-0
107
- 2020-05-10,9,sku-0
108
- 2020-05-17,9,sku-0
109
- 2020-05-24,9,sku-0
110
- 2020-05-31,9,sku-0
111
- 2020-06-07,9,sku-0
112
- 2020-06-14,20,sku-0
113
- 2020-06-21,9,sku-0
114
- 2020-06-28,9,sku-0
115
- 2020-07-05,9,sku-0
116
- 2020-07-12,9,sku-0
117
- 2020-07-19,4,sku-0
118
- 2020-07-26,13,sku-0
119
- 2020-08-02,9,sku-0
120
- 2020-08-09,9,sku-0
121
- 2020-08-16,9,sku-0
122
- 2020-08-23,21,sku-0
123
- 2020-08-30,4,sku-0
124
- 2020-09-06,9,sku-0
125
- 2020-09-13,2,sku-0
126
- 2020-09-20,15,sku-0
127
- 2020-09-27,4,sku-0
128
- 2020-10-04,9,sku-0
129
- 2020-10-11,4,sku-0
130
- 2020-10-18,4,sku-0
131
- 2020-10-25,17,sku-0
132
- 2020-11-01,16,sku-0
133
- 2020-11-08,9,sku-0
134
- 2020-11-15,9,sku-0
135
- 2020-11-22,22,sku-0
136
- 2020-11-29,1,sku-0
137
- 2020-12-06,6,sku-0
138
- 2020-12-13,6,sku-0
139
- 2020-12-20,25,sku-0
140
- 2020-12-27,10,sku-0
141
- 2021-01-03,9,sku-0
142
- 2021-01-10,25,sku-0
143
- 2021-01-17,40,sku-0
144
- 2021-01-24,40,sku-0
145
- 2021-01-31,6,sku-0
146
- 2021-02-07,20,sku-0
147
- 2021-02-14,35,sku-0
148
- 2021-02-21,9,sku-0
149
- 2021-02-28,20,sku-0
150
- 2021-03-07,9,sku-0
151
- 2021-03-14,9,sku-0
152
- 2021-03-21,50,sku-0
153
- 2021-03-28,35,sku-0
154
- 2021-04-04,9,sku-0
155
- 2021-04-11,20,sku-0
156
- 2021-04-18,20,sku-0
157
- 2021-04-25,10,sku-0
158
- 2021-05-02,20,sku-0
159
- 2021-05-09,9,sku-0
160
- 2021-05-16,9,sku-0
161
- 2021-05-23,9,sku-0
162
- 2021-05-30,9,sku-0
163
- 2021-06-06,9,sku-0
164
- 2021-06-13,9,sku-0
165
- 2021-06-20,9,sku-0
166
- 2021-06-27,9,sku-0
167
- 2021-07-04,9,sku-0
168
- 2021-07-11,5,sku-0
169
- 2021-07-18,5,sku-0
170
- 2021-07-25,9,sku-0
171
- 2021-08-01,9,sku-0
172
- 2021-08-08,9,sku-0
173
- 2021-08-15,9,sku-0
174
- 2021-08-22,20,sku-0
175
- 2021-08-29,20,sku-0
176
- 2021-09-05,2,sku-0
177
- 2021-09-12,9,sku-0
178
- 2021-09-19,9,sku-0
179
- 2021-09-26,10,sku-0
180
- 2021-10-03,9,sku-0
181
- 2021-10-10,9,sku-0
182
- 2021-10-17,1,sku-0
183
- 2021-10-24,5,sku-0
184
- 2021-10-31,10,sku-0
185
- 2021-11-07,25,sku-0
186
- 2021-11-14,22,sku-0
187
- 2021-11-21,23,sku-0
188
- 2021-11-28,7,sku-0
189
- 2021-12-05,9,sku-0
190
- 2021-12-12,12,sku-0
191
- 2021-12-19,18,sku-0
192
- 2021-12-26,9,sku-0
193
- 2022-01-02,35,sku-0
194
- 2022-01-09,9,sku-0
195
- 2022-01-16,20,sku-0
196
- 2022-01-23,20,sku-0
197
- 2022-01-30,10,sku-0
198
- 2022-02-06,10,sku-0
199
- 2022-02-13,22,sku-0
200
- 2022-02-20,49,sku-0
201
- 2022-02-27,10,sku-0
202
- 2022-03-06,9,sku-0
203
- 2022-03-13,9,sku-0
204
- 2022-03-20,9,sku-0
205
- 2022-03-27,9,sku-0
206
- 2022-04-03,9,sku-0
207
- 2022-04-10,10,sku-0
208
- 2022-04-17,9,sku-0
209
- 2022-04-24,20,sku-0
210
- 2022-05-01,9,sku-0
211
- 2022-05-08,9,sku-0
212
- 2022-05-15,9,sku-0
213
- 2022-05-22,50,sku-0
214
- 2022-05-29,9,sku-0
215
- 2022-06-05,9,sku-0
216
- 2022-06-12,30,sku-0
217
- 2022-06-19,10,sku-0
218
- 2022-06-26,10,sku-0
219
- 2022-07-03,5,sku-0
220
- 2022-07-10,30,sku-0
221
- 2022-07-17,20,sku-0
222
- 2022-07-24,50,sku-0
223
- 2022-07-31,9,sku-0
224
- 2022-08-07,100,sku-0
225
- 2022-08-14,34,sku-0
226
- 2022-08-21,9,sku-0
227
- 2022-08-28,10,sku-0
228
- 2022-09-04,42,sku-0
229
- 2022-09-11,30,sku-0
230
- 2022-09-18,29,sku-0
231
- 2022-09-25,8,sku-0
232
- 2022-10-02,10,sku-0
233
- 2022-10-09,9,sku-0
234
- 2022-10-16,9,sku-0
235
- 2022-10-23,9,sku-0
236
- 2022-10-30,9,sku-0
237
- 2022-11-06,9,sku-0
238
- 2022-11-13,9,sku-0
239
- 2022-11-20,20,sku-0
240
- 2022-11-27,10,sku-0
241
- 2022-12-04,9,sku-0
242
- 2022-12-11,9,sku-0
243
- 2022-12-18,35,sku-0
244
- 2022-12-25,60,sku-0
245
- 2023-01-01,15,sku-0
246
- 2023-01-08,5,sku-0
247
- 2023-01-15,70,sku-0
248
- 2023-01-22,20,sku-0
249
- 2023-01-29,1,sku-0
250
- 2023-02-05,9,sku-0
251
- 2023-02-12,9,sku-0
252
- 2023-02-19,100,sku-0
253
- 2023-02-26,40,sku-0
254
- 2023-03-05,40,sku-0
255
- 2023-03-12,9,sku-0
256
- 2023-03-19,5,sku-0
257
- 2023-03-26,9,sku-0
258
- 2023-04-02,30,sku-0
259
- 2023-04-09,50,sku-0
260
- 2023-04-16,9,sku-0
261
- 2023-04-23,20,sku-0
262
- 2018-05-06,5,sku-1
263
- 2018-05-13,20,sku-1
264
- 2018-05-20,31,sku-1
265
- 2018-05-27,10,sku-1
266
- 2018-06-03,60,sku-1
267
- 2018-06-10,31,sku-1
268
- 2018-06-17,31,sku-1
269
- 2018-06-24,5,sku-1
270
- 2018-07-01,31,sku-1
271
- 2018-07-08,30,sku-1
272
- 2018-07-15,31,sku-1
273
- 2018-07-22,31,sku-1
274
- 2018-07-29,31,sku-1
275
- 2018-08-05,10,sku-1
276
- 2018-08-12,31,sku-1
277
- 2018-08-19,31,sku-1
278
- 2018-08-26,15,sku-1
279
- 2018-09-02,31,sku-1
280
- 2018-09-09,31,sku-1
281
- 2018-09-16,25,sku-1
282
- 2018-09-23,5,sku-1
283
- 2018-09-30,45,sku-1
284
- 2018-10-07,20,sku-1
285
- 2018-10-14,25,sku-1
286
- 2018-10-21,31,sku-1
287
- 2018-10-28,40,sku-1
288
- 2018-11-04,20,sku-1
289
- 2018-11-11,31,sku-1
290
- 2018-11-18,31,sku-1
291
- 2018-11-25,31,sku-1
292
- 2018-12-02,40,sku-1
293
- 2018-12-09,10,sku-1
294
- 2018-12-16,45,sku-1
295
- 2018-12-23,31,sku-1
296
- 2018-12-30,15,sku-1
297
- 2019-01-06,31,sku-1
298
- 2019-01-13,35,sku-1
299
- 2019-01-20,20,sku-1
300
- 2019-01-27,15,sku-1
301
- 2019-02-03,25,sku-1
302
- 2019-02-10,35,sku-1
303
- 2019-02-17,31,sku-1
304
- 2019-02-24,50,sku-1
305
- 2019-03-03,60,sku-1
306
- 2019-03-10,100,sku-1
307
- 2019-03-17,31,sku-1
308
- 2019-03-24,31,sku-1
309
- 2019-03-31,55,sku-1
310
- 2019-04-07,35,sku-1
311
- 2019-04-14,80,sku-1
312
- 2019-04-21,10,sku-1
313
- 2019-04-28,10,sku-1
314
- 2019-05-05,5,sku-1
315
- 2019-05-12,30,sku-1
316
- 2019-05-19,60,sku-1
317
- 2019-05-26,35,sku-1
318
- 2019-06-02,15,sku-1
319
- 2019-06-09,31,sku-1
320
- 2019-06-16,31,sku-1
321
- 2019-06-23,31,sku-1
322
- 2019-06-30,85,sku-1
323
- 2019-07-07,20,sku-1
324
- 2019-07-14,25,sku-1
325
- 2019-07-21,15,sku-1
326
- 2019-07-28,31,sku-1
327
- 2019-08-04,15,sku-1
328
- 2019-08-11,20,sku-1
329
- 2019-08-18,50,sku-1
330
- 2019-08-25,31,sku-1
331
- 2019-09-01,40,sku-1
332
- 2019-09-08,10,sku-1
333
- 2019-09-15,31,sku-1
334
- 2019-09-22,31,sku-1
335
- 2019-09-29,31,sku-1
336
- 2019-10-06,75,sku-1
337
- 2019-10-13,31,sku-1
338
- 2019-10-20,10,sku-1
339
- 2019-10-27,31,sku-1
340
- 2019-11-03,45,sku-1
341
- 2019-11-10,20,sku-1
342
- 2019-11-17,30,sku-1
343
- 2019-11-24,30,sku-1
344
- 2019-12-01,60,sku-1
345
- 2019-12-08,10,sku-1
346
- 2019-12-15,14,sku-1
347
- 2019-12-22,14,sku-1
348
- 2019-12-29,40,sku-1
349
- 2020-01-05,31,sku-1
350
- 2020-01-12,10,sku-1
351
- 2020-01-19,15,sku-1
352
- 2020-01-26,31,sku-1
353
- 2020-02-02,20,sku-1
354
- 2020-02-09,22,sku-1
355
- 2020-02-16,50,sku-1
356
- 2020-02-23,100,sku-1
357
- 2020-03-01,31,sku-1
358
- 2020-03-08,20,sku-1
359
- 2020-03-15,35,sku-1
360
- 2020-03-22,114,sku-1
361
- 2020-03-29,15,sku-1
362
- 2020-04-05,25,sku-1
363
- 2020-04-12,31,sku-1
364
- 2020-04-19,31,sku-1
365
- 2020-04-26,31,sku-1
366
- 2020-05-03,31,sku-1
367
- 2020-05-10,31,sku-1
368
- 2020-05-17,15,sku-1
369
- 2020-05-24,31,sku-1
370
- 2020-05-31,15,sku-1
371
- 2020-06-07,60,sku-1
372
- 2020-06-14,32,sku-1
373
- 2020-06-21,75,sku-1
374
- 2020-06-28,10,sku-1
375
- 2020-07-05,45,sku-1
376
- 2020-07-12,90,sku-1
377
- 2020-07-19,15,sku-1
378
- 2020-07-26,135,sku-1
379
- 2020-08-02,31,sku-1
380
- 2020-08-09,31,sku-1
381
- 2020-08-16,31,sku-1
382
- 2020-08-23,250,sku-1
383
- 2020-08-30,31,sku-1
384
- 2020-09-06,31,sku-1
385
- 2020-09-13,5,sku-1
386
- 2020-09-20,31,sku-1
387
- 2020-09-27,60,sku-1
388
- 2020-10-04,15,sku-1
389
- 2020-10-11,10,sku-1
390
- 2020-10-18,35,sku-1
391
- 2020-10-25,31,sku-1
392
- 2020-11-01,15,sku-1
393
- 2020-11-08,25,sku-1
394
- 2020-11-15,80,sku-1
395
- 2020-11-22,45,sku-1
396
- 2020-11-29,25,sku-1
397
- 2020-12-06,25,sku-1
398
- 2020-12-13,10,sku-1
399
- 2020-12-20,10,sku-1
400
- 2020-12-27,15,sku-1
401
- 2021-01-03,31,sku-1
402
- 2021-01-10,31,sku-1
403
- 2021-01-17,31,sku-1
404
- 2021-01-24,15,sku-1
405
- 2021-01-31,35,sku-1
406
- 2021-02-07,31,sku-1
407
- 2021-02-14,31,sku-1
408
- 2021-02-21,31,sku-1
409
- 2021-02-28,5,sku-1
410
- 2021-03-07,45,sku-1
411
- 2021-03-14,35,sku-1
412
- 2021-03-21,57,sku-1
413
- 2021-03-28,250,sku-1
414
- 2021-04-04,31,sku-1
415
- 2021-04-11,31,sku-1
416
- 2021-04-18,31,sku-1
417
- 2021-04-25,40,sku-1
418
- 2021-05-02,145,sku-1
419
- 2021-05-09,40,sku-1
420
- 2021-05-16,31,sku-1
421
- 2021-05-23,20,sku-1
422
- 2021-05-30,31,sku-1
423
- 2021-06-06,40,sku-1
424
- 2021-06-13,30,sku-1
425
- 2021-06-20,10,sku-1
426
- 2021-06-27,60,sku-1
427
- 2021-07-04,31,sku-1
428
- 2021-07-11,100,sku-1
429
- 2021-07-18,30,sku-1
430
- 2021-07-25,31,sku-1
431
- 2021-08-01,31,sku-1
432
- 2021-08-08,31,sku-1
433
- 2021-08-15,31,sku-1
434
- 2021-08-22,50,sku-1
435
- 2021-08-29,120,sku-1
436
- 2021-09-05,100,sku-1
437
- 2021-09-12,100,sku-1
438
- 2021-09-19,31,sku-1
439
- 2021-09-26,80,sku-1
440
- 2021-10-03,31,sku-1
441
- 2021-10-10,31,sku-1
442
- 2021-10-17,31,sku-1
443
- 2021-10-24,31,sku-1
444
- 2021-10-31,20,sku-1
445
- 2021-11-07,31,sku-1
446
- 2021-11-14,31,sku-1
447
- 2021-11-21,31,sku-1
448
- 2021-11-28,28,sku-1
449
- 2021-12-05,150,sku-1
450
- 2021-12-12,39,sku-1
451
- 2021-12-19,31,sku-1
452
- 2021-12-26,31,sku-1
453
- 2022-01-02,15,sku-1
454
- 2022-01-09,31,sku-1
455
- 2022-01-16,31,sku-1
456
- 2022-01-23,95,sku-1
457
- 2022-01-30,115,sku-1
458
- 2022-02-06,31,sku-1
459
- 2022-02-13,75,sku-1
460
- 2022-02-20,122,sku-1
461
- 2022-02-27,31,sku-1
462
- 2022-03-06,31,sku-1
463
- 2022-03-13,31,sku-1
464
- 2022-03-20,31,sku-1
465
- 2022-03-27,31,sku-1
466
- 2022-04-03,31,sku-1
467
- 2022-04-10,50,sku-1
468
- 2022-04-17,40,sku-1
469
- 2022-04-24,80,sku-1
470
- 2022-05-01,20,sku-1
471
- 2022-05-08,31,sku-1
472
- 2022-05-15,20,sku-1
473
- 2022-05-22,31,sku-1
474
- 2022-05-29,31,sku-1
475
- 2022-06-05,125,sku-1
476
- 2022-06-12,250,sku-1
477
- 2022-06-19,100,sku-1
478
- 2022-06-26,31,sku-1
479
- 2022-07-03,31,sku-1
480
- 2022-07-10,31,sku-1
481
- 2022-07-17,32,sku-1
482
- 2022-07-24,31,sku-1
483
- 2022-07-31,31,sku-1
484
- 2022-08-07,90,sku-1
485
- 2022-08-14,57,sku-1
486
- 2022-08-21,31,sku-1
487
- 2022-08-28,71,sku-1
488
- 2022-09-04,138,sku-1
489
- 2022-09-11,100,sku-1
490
- 2022-09-18,30,sku-1
491
- 2022-09-25,46,sku-1
492
- 2022-10-02,50,sku-1
493
- 2022-10-09,200,sku-1
494
- 2022-10-16,31,sku-1
495
- 2022-10-23,31,sku-1
496
- 2022-10-30,31,sku-1
497
- 2022-11-06,31,sku-1
498
- 2022-11-13,31,sku-1
499
- 2022-11-20,31,sku-1
500
- 2022-11-27,31,sku-1
501
- 2022-12-04,31,sku-1
502
- 2022-12-11,90,sku-1
503
- 2022-12-18,31,sku-1
504
- 2022-12-25,60,sku-1
505
- 2023-01-01,50,sku-1
506
- 2023-01-08,10,sku-1
507
- 2023-01-15,31,sku-1
508
- 2023-01-22,50,sku-1
509
- 2023-01-29,31,sku-1
510
- 2023-02-05,150,sku-1
511
- 2023-02-12,200,sku-1
512
- 2023-02-19,80,sku-1
513
- 2023-02-26,150,sku-1
514
- 2023-03-05,31,sku-1
515
- 2023-03-12,31,sku-1
516
- 2023-03-19,90,sku-1
517
- 2023-03-26,55,sku-1
518
- 2023-04-02,20,sku-1
519
- 2023-04-09,250,sku-1
520
- 2018-05-06,11,sku-2
521
- 2018-05-13,6,sku-2
522
- 2018-05-20,4,sku-2
523
- 2018-05-27,8,sku-2
524
- 2018-06-03,1,sku-2
525
- 2018-06-10,3,sku-2
526
- 2018-06-17,0,sku-2
527
- 2018-06-24,8,sku-2
528
- 2018-07-01,3,sku-2
529
- 2018-07-08,0,sku-2
530
- 2018-07-15,2,sku-2
531
- 2018-07-22,2,sku-2
532
- 2018-07-29,0,sku-2
533
- 2018-08-05,10,sku-2
534
- 2018-08-12,3,sku-2
535
- 2018-08-19,9,sku-2
536
- 2018-08-26,5,sku-2
537
- 2018-09-02,0,sku-2
538
- 2018-09-09,0,sku-2
539
- 2018-09-16,2,sku-2
540
- 2018-09-23,10,sku-2
541
- 2018-09-30,2,sku-2
542
- 2018-10-07,10,sku-2
543
- 2018-10-14,0,sku-2
544
- 2018-10-21,0,sku-2
545
- 2018-10-28,10,sku-2
546
- 2018-11-04,0,sku-2
547
- 2018-11-11,0,sku-2
548
- 2018-11-18,7,sku-2
549
- 2018-11-25,7,sku-2
550
- 2018-12-02,13,sku-2
551
- 2018-12-09,1,sku-2
552
- 2018-12-16,1,sku-2
553
- 2018-12-23,4,sku-2
554
- 2018-12-30,10,sku-2
555
- 2019-01-06,0,sku-2
556
- 2019-01-13,6,sku-2
557
- 2019-01-20,3,sku-2
558
- 2019-01-27,2,sku-2
559
- 2019-02-03,3,sku-2
560
- 2019-02-10,5,sku-2
561
- 2019-02-17,0,sku-2
562
- 2019-02-24,4,sku-2
563
- 2019-03-03,5,sku-2
564
- 2019-03-10,0,sku-2
565
- 2019-03-17,1,sku-2
566
- 2019-03-24,3,sku-2
567
- 2019-03-31,8,sku-2
568
- 2019-04-07,6,sku-2
569
- 2019-04-14,7,sku-2
570
- 2019-04-21,3,sku-2
571
- 2019-04-28,3,sku-2
572
- 2019-05-05,2,sku-2
573
- 2019-05-12,6,sku-2
574
- 2019-05-19,6,sku-2
575
- 2019-05-26,5,sku-2
576
- 2019-06-02,0,sku-2
577
- 2019-06-09,0,sku-2
578
- 2019-06-16,0,sku-2
579
- 2019-06-23,10,sku-2
580
- 2019-06-30,4,sku-2
581
- 2019-07-07,4,sku-2
582
- 2019-07-14,4,sku-2
583
- 2019-07-21,1,sku-2
584
- 2019-07-28,0,sku-2
585
- 2019-08-04,13,sku-2
586
- 2019-08-11,8,sku-2
587
- 2019-08-18,5,sku-2
588
- 2019-08-25,4,sku-2
589
- 2019-09-01,8,sku-2
590
- 2019-09-08,6,sku-2
591
- 2019-09-15,3,sku-2
592
- 2019-09-22,1,sku-2
593
- 2019-09-29,0,sku-2
594
- 2019-10-06,7,sku-2
595
- 2019-10-13,7,sku-2
596
- 2019-10-20,20,sku-2
597
- 2019-10-27,0,sku-2
598
- 2019-11-03,4,sku-2
599
- 2019-11-10,3,sku-2
600
- 2019-11-17,3,sku-2
601
- 2019-11-24,10,sku-2
602
- 2019-12-01,12,sku-2
603
- 2019-12-08,1,sku-2
604
- 2019-12-15,5,sku-2
605
- 2019-12-22,5,sku-2
606
- 2019-12-29,4,sku-2
607
- 2020-01-05,0,sku-2
608
- 2020-01-12,10,sku-2
609
- 2020-01-19,1,sku-2
610
- 2020-01-26,4,sku-2
611
- 2020-02-02,6,sku-2
612
- 2020-02-09,5,sku-2
613
- 2020-02-16,20,sku-2
614
- 2020-02-23,0,sku-2
615
- 2020-03-01,0,sku-2
616
- 2020-03-08,0,sku-2
617
- 2020-03-15,0,sku-2
618
- 2020-03-22,5,sku-2
619
- 2020-03-29,0,sku-2
620
- 2020-04-05,0,sku-2
621
- 2020-04-12,0,sku-2
622
- 2020-04-19,0,sku-2
623
- 2020-04-26,0,sku-2
624
- 2020-05-03,0,sku-2
625
- 2020-05-10,0,sku-2
626
- 2020-05-17,0,sku-2
627
- 2020-05-24,0,sku-2
628
- 2020-05-31,0,sku-2
629
- 2020-06-07,0,sku-2
630
- 2020-06-14,20,sku-2
631
- 2020-06-21,25,sku-2
632
- 2020-06-28,0,sku-2
633
- 2020-07-05,0,sku-2
634
- 2020-07-12,0,sku-2
635
- 2020-07-19,0,sku-2
636
- 2020-07-26,30,sku-2
637
- 2020-08-02,0,sku-2
638
- 2020-08-09,0,sku-2
639
- 2020-08-16,0,sku-2
640
- 2020-08-23,55,sku-2
641
- 2020-08-30,10,sku-2
642
- 2020-09-06,15,sku-2
643
- 2020-09-13,10,sku-2
644
- 2020-09-20,20,sku-2
645
- 2020-09-27,0,sku-2
646
- 2020-10-04,0,sku-2
647
- 2020-10-11,20,sku-2
648
- 2020-10-18,10,sku-2
649
- 2020-10-25,50,sku-2
650
- 2020-11-01,0,sku-2
651
- 2020-11-08,0,sku-2
652
- 2020-11-15,20,sku-2
653
- 2020-11-22,20,sku-2
654
- 2020-11-29,20,sku-2
655
- 2020-12-06,0,sku-2
656
- 2020-12-13,0,sku-2
657
- 2020-12-20,20,sku-2
658
- 2020-12-27,0,sku-2
659
- 2021-01-03,0,sku-2
660
- 2021-01-10,0,sku-2
661
- 2021-01-17,100,sku-2
662
- 2021-01-24,0,sku-2
663
- 2021-01-31,100,sku-2
664
- 2021-02-07,0,sku-2
665
- 2021-02-14,0,sku-2
666
- 2021-02-21,0,sku-2
667
- 2021-02-28,0,sku-2
668
- 2021-03-07,0,sku-2
669
- 2021-03-14,20,sku-2
670
- 2021-03-21,3,sku-2
671
- 2021-03-28,55,sku-2
672
- 2021-04-04,0,sku-2
673
- 2021-04-11,100,sku-2
674
- 2021-04-18,0,sku-2
675
- 2021-04-25,10,sku-2
676
- 2021-05-02,40,sku-2
677
- 2021-05-09,0,sku-2
678
- 2021-05-16,0,sku-2
679
- 2021-05-23,0,sku-2
680
- 2021-05-30,30,sku-2
681
- 2021-06-06,10,sku-2
682
- 2021-06-13,5,sku-2
683
- 2021-06-20,10,sku-2
684
- 2021-06-27,30,sku-2
685
- 2021-07-04,0,sku-2
686
- 2021-07-11,10,sku-2
687
- 2021-07-18,30,sku-2
688
- 2021-07-25,0,sku-2
689
- 2021-08-01,0,sku-2
690
- 2021-08-08,0,sku-2
691
- 2021-08-15,0,sku-2
692
- 2021-08-22,35,sku-2
693
- 2021-08-29,10,sku-2
694
- 2021-09-05,0,sku-2
695
- 2021-09-12,50,sku-2
696
- 2021-09-19,0,sku-2
697
- 2021-09-26,10,sku-2
698
- 2021-10-03,0,sku-2
699
- 2021-10-10,15,sku-2
700
- 2021-10-17,20,sku-2
701
- 2021-10-24,20,sku-2
702
- 2021-10-31,45,sku-2
703
- 2021-11-07,55,sku-2
704
- 2021-11-14,27,sku-2
705
- 2021-11-21,16,sku-2
706
- 2021-11-28,18,sku-2
707
- 2021-12-05,0,sku-2
708
- 2021-12-12,0,sku-2
709
- 2021-12-19,15,sku-2
710
- 2021-12-26,0,sku-2
711
- 2022-01-02,22,sku-2
712
- 2022-01-09,0,sku-2
713
- 2022-01-16,100,sku-2
714
- 2022-01-23,34,sku-2
715
- 2022-01-30,5,sku-2
716
- 2022-02-06,70,sku-2
717
- 2022-02-13,40,sku-2
718
- 2022-02-20,100,sku-2
719
- 2022-02-27,0,sku-2
720
- 2022-03-06,50,sku-2
721
- 2022-03-13,50,sku-2
722
- 2022-03-20,0,sku-2
723
- 2022-03-27,10,sku-2
724
- 2022-04-03,0,sku-2
725
- 2022-04-10,50,sku-2
726
- 2022-04-17,20,sku-2
727
- 2022-04-24,80,sku-2
728
- 2022-05-01,30,sku-2
729
- 2022-05-08,0,sku-2
730
- 2022-05-15,30,sku-2
731
- 2022-05-22,0,sku-2
732
- 2022-05-29,20,sku-2
733
- 2022-06-05,50,sku-2
734
- 2022-06-12,0,sku-2
735
- 2022-06-19,44,sku-2
736
- 2022-06-26,50,sku-2
737
- 2022-07-03,0,sku-2
738
- 2022-07-10,30,sku-2
739
- 2022-07-17,30,sku-2
740
- 2022-07-24,6,sku-2
741
- 2022-07-31,35,sku-2
742
- 2022-08-07,50,sku-2
743
- 2022-08-14,60,sku-2
744
- 2022-08-21,0,sku-2
745
- 2022-08-28,30,sku-2
746
- 2022-09-04,70,sku-2
747
- 2022-09-11,100,sku-2
748
- 2022-09-18,0,sku-2
749
- 2022-09-25,0,sku-2
750
- 2022-10-02,4,sku-2
751
- 2022-10-09,0,sku-2
752
- 2022-10-16,0,sku-2
753
- 2022-10-23,0,sku-2
754
- 2022-10-30,50,sku-2
755
- 2022-11-06,30,sku-2
756
- 2022-11-13,0,sku-2
757
- 2022-11-20,70,sku-2
758
- 2022-11-27,100,sku-2
759
- 2022-12-04,50,sku-2
760
- 2018-05-06,1,sku-3
761
- 2018-05-13,4,sku-3
762
- 2018-05-20,5,sku-3
763
- 2018-05-27,5,sku-3
764
- 2018-06-03,1,sku-3
765
- 2018-06-10,1,sku-3
766
- 2018-06-17,0,sku-3
767
- 2018-06-24,2,sku-3
768
- 2018-07-01,0,sku-3
769
- 2018-07-08,0,sku-3
770
- 2018-07-15,19,sku-3
771
- 2018-07-22,9,sku-3
772
- 2018-07-29,1,sku-3
773
- 2018-08-05,2,sku-3
774
- 2018-08-12,0,sku-3
775
- 2018-08-19,0,sku-3
776
- 2018-08-26,7,sku-3
777
- 2018-09-02,14,sku-3
778
- 2018-09-09,7,sku-3
779
- 2018-09-16,6,sku-3
780
- 2018-09-23,5,sku-3
781
- 2018-09-30,3,sku-3
782
- 2018-10-07,12,sku-3
783
- 2018-10-14,8,sku-3
784
- 2018-10-21,4,sku-3
785
- 2018-10-28,7,sku-3
786
- 2018-11-04,7,sku-3
787
- 2018-11-11,0,sku-3
788
- 2018-11-18,11,sku-3
789
- 2018-11-25,2,sku-3
790
- 2018-12-02,0,sku-3
791
- 2018-12-09,1,sku-3
792
- 2018-12-16,1,sku-3
793
- 2018-12-23,0,sku-3
794
- 2018-12-30,6,sku-3
795
- 2019-01-06,0,sku-3
796
- 2019-01-13,3,sku-3
797
- 2019-01-20,6,sku-3
798
- 2019-01-27,0,sku-3
799
- 2019-02-03,1,sku-3
800
- 2019-02-10,0,sku-3
801
- 2019-02-17,0,sku-3
802
- 2019-02-24,2,sku-3
803
- 2019-03-03,5,sku-3
804
- 2019-03-10,9,sku-3
805
- 2019-03-17,12,sku-3
806
- 2019-03-24,11,sku-3
807
- 2019-03-31,0,sku-3
808
- 2019-04-07,12,sku-3
809
- 2019-04-14,17,sku-3
810
- 2019-04-21,11,sku-3
811
- 2019-04-28,2,sku-3
812
- 2019-05-05,1,sku-3
813
- 2019-05-12,0,sku-3
814
- 2019-05-19,7,sku-3
815
- 2019-05-26,26,sku-3
816
- 2019-06-02,1,sku-3
817
- 2019-06-09,0,sku-3
818
- 2019-06-16,0,sku-3
819
- 2019-06-23,7,sku-3
820
- 2019-06-30,11,sku-3
821
- 2019-07-07,7,sku-3
822
- 2019-07-14,10,sku-3
823
- 2019-07-21,0,sku-3
824
- 2019-07-28,0,sku-3
825
- 2019-08-04,16,sku-3
826
- 2019-08-11,5,sku-3
827
- 2019-08-18,15,sku-3
828
- 2019-08-25,4,sku-3
829
- 2019-09-01,1,sku-3
830
- 2019-09-08,0,sku-3
831
- 2019-09-15,5,sku-3
832
- 2019-09-22,3,sku-3
833
- 2019-09-29,0,sku-3
834
- 2019-10-06,10,sku-3
835
- 2019-10-13,0,sku-3
836
- 2019-10-20,0,sku-3
837
- 2019-10-27,0,sku-3
838
- 2019-11-03,0,sku-3
839
- 2019-11-10,0,sku-3
840
- 2019-11-17,2,sku-3
841
- 2019-11-24,0,sku-3
842
- 2019-12-01,19,sku-3
843
- 2019-12-08,1,sku-3
844
- 2019-12-15,5,sku-3
845
- 2019-12-22,5,sku-3
846
- 2019-12-29,0,sku-3
847
- 2020-01-05,0,sku-3
848
- 2020-01-12,0,sku-3
849
- 2020-01-19,0,sku-3
850
- 2020-01-26,0,sku-3
851
- 2020-02-02,3,sku-3
852
- 2020-02-09,12,sku-3
853
- 2020-02-16,0,sku-3
854
- 2020-02-23,5,sku-3
855
- 2020-03-01,10,sku-3
856
- 2020-03-08,5,sku-3
857
- 2020-03-15,11,sku-3
858
- 2020-03-22,12,sku-3
859
- 2020-03-29,0,sku-3
860
- 2020-04-05,6,sku-3
861
- 2020-04-12,0,sku-3
862
- 2020-04-19,0,sku-3
863
- 2020-04-26,0,sku-3
864
- 2020-05-03,0,sku-3
865
- 2020-05-10,0,sku-3
866
- 2020-05-17,0,sku-3
867
- 2020-05-24,0,sku-3
868
- 2020-05-31,0,sku-3
869
- 2020-06-07,11,sku-3
870
- 2020-06-14,6,sku-3
871
- 2020-06-21,8,sku-3
872
- 2020-06-28,0,sku-3
873
- 2020-07-05,0,sku-3
874
- 2020-07-12,41,sku-3
875
- 2020-07-19,0,sku-3
876
- 2020-07-26,4,sku-3
877
- 2020-08-02,0,sku-3
878
- 2020-08-09,0,sku-3
879
- 2020-08-16,0,sku-3
880
- 2020-08-23,47,sku-3
881
- 2020-08-30,3,sku-3
882
- 2020-09-06,31,sku-3
883
- 2020-09-13,0,sku-3
884
- 2020-09-20,2,sku-3
885
- 2020-09-27,0,sku-3
886
- 2020-10-04,0,sku-3
887
- 2020-10-11,6,sku-3
888
- 2020-10-18,9,sku-3
889
- 2020-10-25,8,sku-3
890
- 2020-11-01,4,sku-3
891
- 2020-11-08,2,sku-3
892
- 2020-11-15,30,sku-3
893
- 2020-11-22,60,sku-3
894
- 2020-11-29,68,sku-3
895
- 2020-12-06,0,sku-3
896
- 2020-12-13,0,sku-3
897
- 2020-12-20,0,sku-3
898
- 2020-12-27,0,sku-3
899
- 2021-01-03,0,sku-3
900
- 2021-01-10,0,sku-3
901
- 2021-01-17,0,sku-3
902
- 2021-01-24,0,sku-3
903
- 2021-01-31,0,sku-3
904
- 2021-02-07,6,sku-3
905
- 2021-02-14,6,sku-3
906
- 2021-02-21,15,sku-3
907
- 2021-02-28,30,sku-3
908
- 2021-03-07,0,sku-3
909
- 2021-03-14,5,sku-3
910
- 2021-03-21,20,sku-3
911
- 2021-03-28,0,sku-3
912
- 2021-04-04,0,sku-3
913
- 2021-04-11,0,sku-3
914
- 2021-04-18,0,sku-3
915
- 2021-04-25,10,sku-3
916
- 2021-05-02,10,sku-3
917
- 2021-05-09,0,sku-3
918
- 2021-05-16,0,sku-3
919
- 2021-05-23,0,sku-3
920
- 2021-05-30,0,sku-3
921
- 2021-06-06,0,sku-3
922
- 2021-06-13,0,sku-3
923
- 2021-06-20,0,sku-3
924
- 2021-06-27,0,sku-3
925
- 2021-07-04,0,sku-3
926
- 2021-07-11,0,sku-3
927
- 2021-07-18,2,sku-3
928
- 2021-07-25,0,sku-3
929
- 2021-08-01,0,sku-3
930
- 2021-08-08,0,sku-3
931
- 2021-08-15,0,sku-3
932
- 2021-08-22,0,sku-3
933
- 2021-08-29,0,sku-3
934
- 2021-09-05,0,sku-3
935
- 2021-09-12,5,sku-3
936
- 2021-09-19,0,sku-3
937
- 2021-09-26,0,sku-3
938
- 2021-10-03,0,sku-3
939
- 2021-10-10,0,sku-3
940
- 2021-10-17,10,sku-3
941
- 2021-10-24,3,sku-3
942
- 2021-10-31,2,sku-3
943
- 2021-11-07,0,sku-3
944
- 2021-11-14,0,sku-3
945
- 2021-11-21,15,sku-3
946
- 2021-11-28,7,sku-3
947
- 2021-12-05,17,sku-3
948
- 2021-12-12,0,sku-3
949
- 2021-12-19,0,sku-3
950
- 2021-12-26,0,sku-3
951
- 2022-01-02,5,sku-3
952
- 2022-01-09,10,sku-3
953
- 2022-01-16,0,sku-3
954
- 2022-01-23,5,sku-3
955
- 2022-01-30,10,sku-3
956
- 2022-02-06,5,sku-3
957
- 2022-02-13,25,sku-3
958
- 2022-02-20,0,sku-3
959
- 2022-02-27,0,sku-3
960
- 2022-03-06,0,sku-3
961
- 2022-03-13,2,sku-3
962
- 2022-03-20,45,sku-3
963
- 2022-03-27,25,sku-3
964
- 2022-04-03,0,sku-3
965
- 2022-04-10,0,sku-3
966
- 2022-04-17,10,sku-3
967
- 2022-04-24,3,sku-3
968
- 2022-05-01,9,sku-3
969
- 2022-05-08,0,sku-3
970
- 2022-05-15,3,sku-3
971
- 2022-05-22,5,sku-3
972
- 2022-05-29,30,sku-3
973
- 2022-06-05,0,sku-3
974
- 2022-06-12,45,sku-3
975
- 2022-06-19,32,sku-3
976
- 2022-06-26,10,sku-3
977
- 2022-07-03,0,sku-3
978
- 2022-07-10,10,sku-3
979
- 2022-07-17,30,sku-3
980
- 2022-07-24,25,sku-3
981
- 2022-07-31,7,sku-3
982
- 2022-08-07,20,sku-3
983
- 2022-08-14,32,sku-3
984
- 2022-08-21,25,sku-3
985
- 2022-08-28,0,sku-3
986
- 2022-09-04,3,sku-3
987
- 2022-09-11,0,sku-3
988
- 2022-09-18,0,sku-3
989
- 2022-09-25,25,sku-3
990
- 2022-10-02,0,sku-3
991
- 2022-10-09,0,sku-3
992
- 2022-10-16,0,sku-3
993
- 2022-10-23,0,sku-3
994
- 2022-10-30,0,sku-3
995
- 2022-11-06,0,sku-3
996
- 2022-11-13,0,sku-3
997
- 2022-11-20,0,sku-3
998
- 2022-11-27,0,sku-3
999
- 2022-12-04,0,sku-3
1000
- 2022-12-11,0,sku-3
1001
- 2022-12-18,0,sku-3
1002
- 2022-12-25,0,sku-3
1003
- 2023-01-01,0,sku-3
1004
- 2023-01-08,0,sku-3
1005
- 2023-01-15,0,sku-3
1006
- 2023-01-22,0,sku-3
1007
- 2023-01-29,0,sku-3
1008
- 2023-02-05,0,sku-3
1009
- 2023-02-12,0,sku-3
1010
- 2023-02-19,0,sku-3
1011
- 2023-02-26,0,sku-3
1012
- 2023-03-05,0,sku-3
1013
- 2023-03-12,0,sku-3
1014
- 2023-03-19,0,sku-3
1015
- 2023-03-26,0,sku-3
1016
- 2023-04-02,0,sku-3
1017
- 2023-04-09,0,sku-3
1018
- 2023-04-16,10,sku-3
1019
- 2023-04-23,12,sku-3
 
1
+ datetime,sku,y
2
+ 2018-01-01,Item_A,376
3
+ 2018-02-01,Item_A,506
4
+ 2018-03-01,Item_A,388
5
+ 2018-04-01,Item_A,386
6
+ 2018-05-01,Item_A,444
7
+ 2018-06-01,Item_A,37
8
+ 2018-07-01,Item_A,1436
9
+ 2018-08-01,Item_A,445
10
+ 2018-09-01,Item_A,611
11
+ 2018-10-01,Item_A,447
12
+ 2018-11-01,Item_A,670
13
+ 2018-12-01,Item_A,530
14
+ 2019-01-01,Item_A,709
15
+ 2019-02-01,Item_A,608
16
+ 2019-03-01,Item_A,605
17
+ 2019-04-01,Item_A,650
18
+ 2019-05-01,Item_A,285
19
+ 2019-06-01,Item_A,594
20
+ 2019-07-01,Item_A,644
21
+ 2019-08-01,Item_A,738
22
+ 2019-09-01,Item_A,669
23
+ 2019-10-01,Item_A,641
24
+ 2019-11-01,Item_A,747
25
+ 2019-12-01,Item_A,368
26
+ 2020-01-01,Item_A,523
27
+ 2020-02-01,Item_A,480
28
+ 2020-03-01,Item_A,690
29
+ 2020-04-01,Item_A,942
30
+ 2020-05-01,Item_A,991
31
+ 2020-06-01,Item_A,810
32
+ 2020-07-01,Item_A,922
33
+ 2020-08-01,Item_A,862
34
+ 2020-09-01,Item_A,683
35
+ 2020-10-01,Item_A,820
36
+ 2020-11-01,Item_A,830
37
+ 2020-12-01,Item_A,731
38
+ 2021-01-01,Item_A,820
39
+ 2021-02-01,Item_A,723
40
+ 2021-03-01,Item_A,1128
41
+ 2021-04-01,Item_A,743
42
+ 2021-05-01,Item_A,954
43
+ 2021-06-01,Item_A,1030
44
+ 2021-07-01,Item_A,1300
45
+ 2021-08-01,Item_A,907
46
+ 2021-09-01,Item_A,980
47
+ 2021-10-01,Item_A,1257
48
+ 2021-11-01,Item_A,1134
49
+ 2021-12-01,Item_A,686
50
+ 2022-01-01,Item_A,1225
51
+ 2022-02-01,Item_A,1184
52
+ 2022-03-01,Item_A,1249
53
+ 2022-04-01,Item_A,976
54
+ 2022-05-01,Item_A,1515
55
+ 2022-06-01,Item_A,1310
56
+ 2022-07-01,Item_A,1620
57
+ 2022-08-01,Item_A,1299
58
+ 2022-09-01,Item_A,1401
59
+ 2022-10-01,Item_A,954
60
+ 2022-11-01,Item_A,1050
61
+ 2022-12-01,Item_A,1060
62
+ 2018-01-01,Item_B,61
63
+ 2018-02-01,Item_B,63
64
+ 2018-03-01,Item_B,104
65
+ 2018-04-01,Item_B,35
66
+ 2018-05-01,Item_B,63
67
+ 2018-06-01,Item_B,63
68
+ 2018-07-01,Item_B,109
69
+ 2018-08-01,Item_B,53
70
+ 2018-09-01,Item_B,77
71
+ 2018-10-01,Item_B,58
72
+ 2018-11-01,Item_B,58
73
+ 2018-12-01,Item_B,44
74
+ 2019-01-01,Item_B,66
75
+ 2019-02-01,Item_B,52
76
+ 2019-03-01,Item_B,66
77
+ 2019-04-01,Item_B,66
78
+ 2019-05-01,Item_B,67
79
+ 2019-06-01,Item_B,55
80
+ 2019-07-01,Item_B,76
81
+ 2019-08-01,Item_B,73
82
+ 2019-09-01,Item_B,83
83
+ 2019-10-01,Item_B,84
84
+ 2019-11-01,Item_B,51
85
+ 2019-12-01,Item_B,70
86
+ 2020-01-01,Item_B,65
87
+ 2020-02-01,Item_B,49
88
+ 2020-03-01,Item_B,78
89
+ 2020-04-01,Item_B,36
90
+ 2020-05-01,Item_B,58
91
+ 2020-06-01,Item_B,60
92
+ 2020-07-01,Item_B,79
93
+ 2020-08-01,Item_B,74
94
+ 2020-09-01,Item_B,47
95
+ 2020-10-01,Item_B,79
96
+ 2020-11-01,Item_B,46
97
+ 2020-12-01,Item_B,51
98
+ 2021-01-01,Item_B,82
99
+ 2021-02-01,Item_B,59
100
+ 2021-03-01,Item_B,98
101
+ 2021-04-01,Item_B,38
102
+ 2021-05-01,Item_B,63
103
+ 2021-06-01,Item_B,64
104
+ 2021-07-01,Item_B,61
105
+ 2021-08-01,Item_B,66
106
+ 2021-09-01,Item_B,51
107
+ 2021-10-01,Item_B,71
108
+ 2021-11-01,Item_B,92
109
+ 2021-12-01,Item_B,96
110
+ 2022-01-01,Item_B,76
111
+ 2022-02-01,Item_B,53
112
+ 2022-03-01,Item_B,59
113
+ 2022-04-01,Item_B,40
114
+ 2022-05-01,Item_B,49
115
+ 2022-06-01,Item_B,91
116
+ 2022-07-01,Item_B,83
117
+ 2022-08-01,Item_B,79
118
+ 2022-09-01,Item_B,72
119
+ 2022-10-01,Item_B,52
120
+ 2022-11-01,Item_B,50
121
+ 2022-12-01,Item_B,48
122
+ 2019-07-01,Item_C,264
123
+ 2019-08-01,Item_C,164
124
+ 2019-09-01,Item_C,217
125
+ 2019-10-01,Item_C,195
126
+ 2019-11-01,Item_C,229
127
+ 2019-12-01,Item_C,203
128
+ 2020-01-01,Item_C,272
129
+ 2020-02-01,Item_C,311
130
+ 2020-03-01,Item_C,363
131
+ 2020-04-01,Item_C,228
132
+ 2020-05-01,Item_C,232
133
+ 2020-06-01,Item_C,171
134
+ 2020-07-01,Item_C,247
135
+ 2020-08-01,Item_C,195
136
+ 2020-09-01,Item_C,234
137
+ 2020-10-01,Item_C,221
138
+ 2020-11-01,Item_C,272
139
+ 2020-12-01,Item_C,256
140
+ 2021-01-01,Item_C,227
141
+ 2021-02-01,Item_C,151
142
+ 2021-03-01,Item_C,151
143
+ 2021-04-01,Item_C,204
144
+ 2021-05-01,Item_C,187
145
+ 2021-06-01,Item_C,90
146
+ 2021-07-01,Item_C,170
147
+ 2021-08-01,Item_C,169
148
+ 2021-09-01,Item_C,208
149
+ 2021-10-01,Item_C,87
150
+ 2021-11-01,Item_C,126
151
+ 2021-12-01,Item_C,137
152
+ 2022-01-01,Item_C,164
153
+ 2022-02-01,Item_C,170
154
+ 2022-03-01,Item_C,192
155
+ 2022-04-01,Item_C,184
156
+ 2022-05-01,Item_C,199
157
+ 2022-06-01,Item_C,107
158
+ 2022-07-01,Item_C,254
159
+ 2022-08-01,Item_C,170
160
+ 2022-09-01,Item_C,215
161
+ 2022-10-01,Item_C,143
162
+ 2022-11-01,Item_C,213
163
+ 2022-12-01,Item_C,243
164
+ 2023-01-01,Item_C,199
165
+ 2018-08-01,Item_D,76
166
+ 2018-09-01,Item_D,92
167
+ 2018-10-01,Item_D,104
168
+ 2018-11-01,Item_D,96
169
+ 2018-12-01,Item_D,145
170
+ 2019-01-01,Item_D,61
171
+ 2019-02-01,Item_D,266
172
+ 2019-03-01,Item_D,225
173
+ 2019-04-01,Item_D,215
174
+ 2019-05-01,Item_D,197
175
+ 2019-06-01,Item_D,309
176
+ 2019-07-01,Item_D,196
177
+ 2019-08-01,Item_D,174
178
+ 2019-09-01,Item_D,242
179
+ 2019-10-01,Item_D,177
180
+ 2019-11-01,Item_D,717
181
+ 2019-12-01,Item_D,174
182
+ 2020-01-01,Item_D,141
183
+ 2020-02-01,Item_D,629
184
+ 2020-03-01,Item_D,539
185
+ 2020-04-01,Item_D,394
186
+ 2020-05-01,Item_D,424
187
+ 2020-06-01,Item_D,761
188
+ 2020-07-01,Item_D,408
189
+ 2020-08-01,Item_D,850
190
+ 2020-09-01,Item_D,508
191
+ 2020-10-01,Item_D,649
192
+ 2020-11-01,Item_D,519
193
+ 2020-12-01,Item_D,249
194
+ 2021-01-01,Item_D,575
195
+ 2021-02-01,Item_D,1088
196
+ 2021-03-01,Item_D,1453
197
+ 2021-04-01,Item_D,522
198
+ 2021-05-01,Item_D,594
199
+ 2021-06-01,Item_D,803
200
+ 2021-07-01,Item_D,527
201
+ 2021-08-01,Item_D,219
202
+ 2021-09-01,Item_D,615
203
+ 2021-10-01,Item_D,338
204
+ 2021-11-01,Item_D,435
205
+ 2021-12-01,Item_D,245
206
+ 2022-01-01,Item_D,253
207
+ 2022-02-01,Item_D,531
208
+ 2022-03-01,Item_D,528
209
+ 2022-04-01,Item_D,562
210
+ 2022-05-01,Item_D,549
211
+ 2022-06-01,Item_D,644
212
+ 2022-07-01,Item_D,412
213
+ 2022-08-01,Item_D,731
214
+ 2022-09-01,Item_D,725
215
+ 2022-10-01,Item_D,259
216
+ 2022-11-01,Item_D,747
217
+ 2022-12-01,Item_D,662
218
+ 2018-09-01,Item_E,490
219
+ 2018-10-01,Item_E,708
220
+ 2018-11-01,Item_E,664
221
+ 2018-12-01,Item_E,485
222
+ 2019-01-01,Item_E,747
223
+ 2019-02-01,Item_E,574
224
+ 2019-03-01,Item_E,746
225
+ 2019-04-01,Item_E,585
226
+ 2019-05-01,Item_E,709
227
+ 2019-06-01,Item_E,592
228
+ 2019-07-01,Item_E,641
229
+ 2019-08-01,Item_E,690
230
+ 2019-09-01,Item_E,479
231
+ 2019-10-01,Item_E,631
232
+ 2019-11-01,Item_E,652
233
+ 2019-12-01,Item_E,555
234
+ 2020-01-01,Item_E,982
235
+ 2020-02-01,Item_E,735
236
+ 2020-03-01,Item_E,1125
237
+ 2020-04-01,Item_E,497
238
+ 2020-05-01,Item_E,734
239
+ 2020-06-01,Item_E,796
240
+ 2020-07-01,Item_E,712
241
+ 2020-08-01,Item_E,761
242
+ 2020-09-01,Item_E,463
243
+ 2020-10-01,Item_E,638
244
+ 2020-11-01,Item_E,720
245
+ 2020-12-01,Item_E,537
246
+ 2021-01-01,Item_E,703
247
+ 2021-02-01,Item_E,760
248
+ 2021-03-01,Item_E,760
249
+ 2021-04-01,Item_E,507
250
+ 2021-05-01,Item_E,639
251
+ 2021-06-01,Item_E,678
252
+ 2021-07-01,Item_E,719
253
+ 2021-08-01,Item_E,427
254
+ 2021-09-01,Item_E,444
255
+ 2021-10-01,Item_E,553
256
+ 2021-11-01,Item_E,400
257
+ 2021-12-01,Item_E,411
258
+ 2022-01-01,Item_E,517
259
+ 2022-02-01,Item_E,370
260
+ 2022-03-01,Item_E,543
261
+ 2022-04-01,Item_E,349
262
+ 2022-05-01,Item_E,370
263
+ 2022-06-01,Item_E,447
264
+ 2022-07-01,Item_E,385
265
+ 2022-08-01,Item_E,606
266
+ 2022-09-01,Item_E,483
267
+ 2022-10-01,Item_E,339
268
+ 2022-11-01,Item_E,348
269
+ 2022-12-01,Item_E,333
270
+ 2020-06-07,Item_F,0
271
+ 2020-06-14,Item_F,20
272
+ 2020-06-21,Item_F,25
273
+ 2020-06-28,Item_F,0
274
+ 2020-07-05,Item_F,0
275
+ 2020-07-12,Item_F,0
276
+ 2020-07-19,Item_F,0
277
+ 2020-07-26,Item_F,30
278
+ 2020-08-02,Item_F,0
279
+ 2020-08-09,Item_F,0
280
+ 2020-08-16,Item_F,0
281
+ 2020-08-23,Item_F,55
282
+ 2020-08-30,Item_F,10
283
+ 2020-09-06,Item_F,15
284
+ 2020-09-13,Item_F,10
285
+ 2020-09-20,Item_F,20
286
+ 2020-09-27,Item_F,0
287
+ 2020-10-04,Item_F,0
288
+ 2020-10-11,Item_F,20
289
+ 2020-10-18,Item_F,10
290
+ 2020-10-25,Item_F,50
291
+ 2020-11-01,Item_F,0
292
+ 2020-11-08,Item_F,0
293
+ 2020-11-15,Item_F,20
294
+ 2020-11-22,Item_F,20
295
+ 2020-11-29,Item_F,20
296
+ 2020-12-06,Item_F,0
297
+ 2020-12-13,Item_F,0
298
+ 2020-12-20,Item_F,20
299
+ 2020-12-27,Item_F,0
300
+ 2021-01-03,Item_F,0
301
+ 2021-01-10,Item_F,0
302
+ 2021-01-17,Item_F,100
303
+ 2021-01-24,Item_F,0
304
+ 2021-01-31,Item_F,100
305
+ 2021-02-07,Item_F,0
306
+ 2021-02-14,Item_F,0
307
+ 2021-02-21,Item_F,0
308
+ 2021-02-28,Item_F,0
309
+ 2021-03-07,Item_F,0
310
+ 2021-03-14,Item_F,20
311
+ 2021-03-21,Item_F,3
312
+ 2021-03-28,Item_F,55
313
+ 2021-04-04,Item_F,0
314
+ 2021-04-11,Item_F,100
315
+ 2021-04-18,Item_F,0
316
+ 2021-04-25,Item_F,10
317
+ 2021-05-02,Item_F,40
318
+ 2021-05-09,Item_F,0
319
+ 2021-05-16,Item_F,0
320
+ 2021-05-23,Item_F,0
321
+ 2021-05-30,Item_F,30
322
+ 2021-06-06,Item_F,10
323
+ 2021-06-13,Item_F,5
324
+ 2021-06-20,Item_F,10
325
+ 2021-06-27,Item_F,30
326
+ 2021-07-04,Item_F,0
327
+ 2021-07-11,Item_F,10
328
+ 2021-07-18,Item_F,30
329
+ 2021-07-25,Item_F,0
330
+ 2021-08-01,Item_F,0
331
+ 2021-08-08,Item_F,0
332
+ 2021-08-15,Item_F,0
333
+ 2021-08-22,Item_F,35
334
+ 2021-08-29,Item_F,10
335
+ 2021-09-05,Item_F,0
336
+ 2021-09-12,Item_F,50
337
+ 2021-09-19,Item_F,0
338
+ 2021-09-26,Item_F,10
339
+ 2021-10-03,Item_F,0
340
+ 2021-10-10,Item_F,15
341
+ 2021-10-17,Item_F,20
342
+ 2021-10-24,Item_F,20
343
+ 2021-10-31,Item_F,45
344
+ 2021-11-07,Item_F,55
345
+ 2021-11-14,Item_F,27
346
+ 2021-11-21,Item_F,16
347
+ 2021-11-28,Item_F,18
348
+ 2021-12-05,Item_F,0
349
+ 2021-12-12,Item_F,0
350
+ 2021-12-19,Item_F,15
351
+ 2021-12-26,Item_F,0
352
+ 2022-01-02,Item_F,22
353
+ 2022-01-09,Item_F,0
354
+ 2022-01-16,Item_F,100
355
+ 2022-01-23,Item_F,34
356
+ 2022-01-30,Item_F,5
357
+ 2022-02-06,Item_F,70
358
+ 2022-02-13,Item_F,40
359
+ 2022-02-20,Item_F,100
360
+ 2022-02-27,Item_F,0
361
+ 2022-03-06,Item_F,50
362
+ 2022-03-13,Item_F,50
363
+ 2022-03-20,Item_F,0
364
+ 2022-03-27,Item_F,10
365
+ 2022-04-03,Item_F,0
366
+ 2022-04-10,Item_F,50
367
+ 2022-04-17,Item_F,20
368
+ 2022-04-24,Item_F,80
369
+ 2022-05-01,Item_F,30
370
+ 2022-05-08,Item_F,0
371
+ 2022-05-15,Item_F,30
372
+ 2022-05-22,Item_F,0
373
+ 2022-05-29,Item_F,20
374
+ 2022-06-05,Item_F,50
375
+ 2022-06-12,Item_F,0
376
+ 2022-06-19,Item_F,44
377
+ 2022-06-26,Item_F,50
378
+ 2022-07-03,Item_F,0
379
+ 2022-07-10,Item_F,30
380
+ 2022-07-17,Item_F,30
381
+ 2022-07-24,Item_F,6
382
+ 2022-07-31,Item_F,35
383
+ 2022-08-07,Item_F,50
384
+ 2022-08-14,Item_F,60
385
+ 2022-08-21,Item_F,0
386
+ 2022-08-28,Item_F,30
387
+ 2022-09-04,Item_F,70
388
+ 2022-09-11,Item_F,100
389
+ 2022-09-18,Item_F,0
390
+ 2022-09-25,Item_F,0
391
+ 2022-10-02,Item_F,4
392
+ 2022-10-09,Item_F,0
393
+ 2022-10-16,Item_F,0
394
+ 2022-10-23,Item_F,0
395
+ 2022-10-30,Item_F,50
396
+ 2022-11-06,Item_F,30
397
+ 2022-11-13,Item_F,0
398
+ 2022-11-20,Item_F,70
399
+ 2022-11-27,Item_F,100
400
+ 2022-12-04,Item_F,50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
data/demand_forecasting_demo_data_5.csv ADDED
@@ -0,0 +1,269 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ datetime,sku,y
2
+ 2018-01-01,Item_A,376
3
+ 2018-01-01,Item_B,61
4
+ 2018-01-01,Item_C,264
5
+ 2018-02-01,Item_A,506
6
+ 2018-02-01,Item_B,63
7
+ 2018-02-01,Item_C,164
8
+ 2018-03-01,Item_A,388
9
+ 2018-03-01,Item_B,104
10
+ 2018-03-01,Item_C,217
11
+ 2018-04-01,Item_A,386
12
+ 2018-04-01,Item_B,35
13
+ 2018-04-01,Item_C,195
14
+ 2018-05-01,Item_A,444
15
+ 2018-05-01,Item_B,63
16
+ 2018-05-01,Item_C,229
17
+ 2018-06-01,Item_A,37
18
+ 2018-06-01,Item_B,63
19
+ 2018-06-01,Item_C,203
20
+ 2018-07-01,Item_A,1436
21
+ 2018-07-01,Item_B,109
22
+ 2018-07-01,Item_C,272
23
+ 2018-08-01,Item_A,445
24
+ 2018-08-01,Item_D,76
25
+ 2018-08-01,Item_B,53
26
+ 2018-08-01,Item_C,311
27
+ 2018-09-01,Item_A,611
28
+ 2018-09-01,Item_D,92
29
+ 2018-09-01,Item_B,77
30
+ 2018-09-01,Item_C,363
31
+ 2018-09-01,Item_E,490
32
+ 2018-10-01,Item_A,447
33
+ 2018-10-01,Item_D,104
34
+ 2018-10-01,Item_B,58
35
+ 2018-10-01,Item_C,228
36
+ 2018-10-01,Item_E,708
37
+ 2018-11-01,Item_A,670
38
+ 2018-11-01,Item_D,96
39
+ 2018-11-01,Item_B,58
40
+ 2018-11-01,Item_C,232
41
+ 2018-11-01,Item_E,664
42
+ 2018-12-01,Item_A,530
43
+ 2018-12-01,Item_D,145
44
+ 2018-12-01,Item_B,44
45
+ 2018-12-01,Item_C,171
46
+ 2018-12-01,Item_E,485
47
+ 2019-01-01,Item_A,709
48
+ 2019-01-01,Item_D,61
49
+ 2019-01-01,Item_B,66
50
+ 2019-01-01,Item_C,247
51
+ 2019-01-01,Item_E,747
52
+ 2019-02-01,Item_A,608
53
+ 2019-02-01,Item_D,266
54
+ 2019-02-01,Item_B,52
55
+ 2019-02-01,Item_C,195
56
+ 2019-02-01,Item_E,574
57
+ 2019-03-01,Item_A,605
58
+ 2019-03-01,Item_D,225
59
+ 2019-03-01,Item_B,66
60
+ 2019-03-01,Item_C,234
61
+ 2019-03-01,Item_E,746
62
+ 2019-04-01,Item_A,650
63
+ 2019-04-01,Item_D,215
64
+ 2019-04-01,Item_B,66
65
+ 2019-04-01,Item_C,221
66
+ 2019-04-01,Item_E,585
67
+ 2019-05-01,Item_A,285
68
+ 2019-05-01,Item_D,197
69
+ 2019-05-01,Item_B,67
70
+ 2019-05-01,Item_C,272
71
+ 2019-05-01,Item_E,709
72
+ 2019-06-01,Item_A,594
73
+ 2019-06-01,Item_D,309
74
+ 2019-06-01,Item_B,55
75
+ 2019-06-01,Item_C,256
76
+ 2019-06-01,Item_E,592
77
+ 2019-07-01,Item_A,644
78
+ 2019-07-01,Item_D,196
79
+ 2019-07-01,Item_B,76
80
+ 2019-07-01,Item_C,227
81
+ 2019-07-01,Item_E,641
82
+ 2019-08-01,Item_A,738
83
+ 2019-08-01,Item_D,174
84
+ 2019-08-01,Item_B,73
85
+ 2019-08-01,Item_C,151
86
+ 2019-08-01,Item_E,690
87
+ 2019-09-01,Item_A,669
88
+ 2019-09-01,Item_D,242
89
+ 2019-09-01,Item_B,83
90
+ 2019-09-01,Item_C,151
91
+ 2019-09-01,Item_E,479
92
+ 2019-10-01,Item_A,641
93
+ 2019-10-01,Item_D,177
94
+ 2019-10-01,Item_B,84
95
+ 2019-10-01,Item_C,204
96
+ 2019-10-01,Item_E,631
97
+ 2019-11-01,Item_A,747
98
+ 2019-11-01,Item_D,717
99
+ 2019-11-01,Item_B,51
100
+ 2019-11-01,Item_C,187
101
+ 2019-11-01,Item_E,652
102
+ 2019-12-01,Item_A,368
103
+ 2019-12-01,Item_D,174
104
+ 2019-12-01,Item_B,70
105
+ 2019-12-01,Item_C,90
106
+ 2019-12-01,Item_E,555
107
+ 2020-01-01,Item_A,523
108
+ 2020-01-01,Item_D,141
109
+ 2020-01-01,Item_B,65
110
+ 2020-01-01,Item_C,170
111
+ 2020-01-01,Item_E,982
112
+ 2020-02-01,Item_A,480
113
+ 2020-02-01,Item_D,629
114
+ 2020-02-01,Item_B,49
115
+ 2020-02-01,Item_C,169
116
+ 2020-02-01,Item_E,735
117
+ 2020-03-01,Item_A,690
118
+ 2020-03-01,Item_D,539
119
+ 2020-03-01,Item_B,78
120
+ 2020-03-01,Item_C,208
121
+ 2020-03-01,Item_E,1125
122
+ 2020-04-01,Item_A,942
123
+ 2020-04-01,Item_D,394
124
+ 2020-04-01,Item_B,36
125
+ 2020-04-01,Item_C,87
126
+ 2020-04-01,Item_E,497
127
+ 2020-05-01,Item_A,991
128
+ 2020-05-01,Item_D,424
129
+ 2020-05-01,Item_B,58
130
+ 2020-05-01,Item_C,126
131
+ 2020-05-01,Item_E,734
132
+ 2020-06-01,Item_A,810
133
+ 2020-06-01,Item_D,761
134
+ 2020-06-01,Item_B,60
135
+ 2020-06-01,Item_C,137
136
+ 2020-06-01,Item_E,796
137
+ 2020-07-01,Item_A,922
138
+ 2020-07-01,Item_D,408
139
+ 2020-07-01,Item_B,79
140
+ 2020-07-01,Item_C,164
141
+ 2020-07-01,Item_E,712
142
+ 2020-08-01,Item_A,862
143
+ 2020-08-01,Item_D,850
144
+ 2020-08-01,Item_B,74
145
+ 2020-08-01,Item_C,170
146
+ 2020-08-01,Item_E,761
147
+ 2020-09-01,Item_A,683
148
+ 2020-09-01,Item_D,508
149
+ 2020-09-01,Item_B,47
150
+ 2020-09-01,Item_C,192
151
+ 2020-09-01,Item_E,463
152
+ 2020-10-01,Item_A,820
153
+ 2020-10-01,Item_D,649
154
+ 2020-10-01,Item_B,79
155
+ 2020-10-01,Item_C,184
156
+ 2020-10-01,Item_E,638
157
+ 2020-11-01,Item_A,830
158
+ 2020-11-01,Item_D,519
159
+ 2020-11-01,Item_B,46
160
+ 2020-11-01,Item_C,199
161
+ 2020-11-01,Item_E,720
162
+ 2020-12-01,Item_A,731
163
+ 2020-12-01,Item_D,249
164
+ 2020-12-01,Item_B,51
165
+ 2020-12-01,Item_C,107
166
+ 2020-12-01,Item_E,537
167
+ 2021-01-01,Item_A,820
168
+ 2021-01-01,Item_D,575
169
+ 2021-01-01,Item_B,82
170
+ 2021-01-01,Item_C,254
171
+ 2021-01-01,Item_E,703
172
+ 2021-02-01,Item_A,723
173
+ 2021-02-01,Item_D,1088
174
+ 2021-02-01,Item_B,59
175
+ 2021-02-01,Item_C,170
176
+ 2021-02-01,Item_E,760
177
+ 2021-03-01,Item_A,1128
178
+ 2021-03-01,Item_D,1453
179
+ 2021-03-01,Item_B,98
180
+ 2021-03-01,Item_C,215
181
+ 2021-03-01,Item_E,760
182
+ 2021-04-01,Item_A,743
183
+ 2021-04-01,Item_D,522
184
+ 2021-04-01,Item_B,38
185
+ 2021-04-01,Item_C,143
186
+ 2021-04-01,Item_E,507
187
+ 2021-05-01,Item_A,954
188
+ 2021-05-01,Item_D,594
189
+ 2021-05-01,Item_B,63
190
+ 2021-05-01,Item_C,213
191
+ 2021-05-01,Item_E,639
192
+ 2021-06-01,Item_A,1030
193
+ 2021-06-01,Item_D,803
194
+ 2021-06-01,Item_B,64
195
+ 2021-06-01,Item_C,243
196
+ 2021-06-01,Item_E,678
197
+ 2021-07-01,Item_A,1300
198
+ 2021-07-01,Item_D,527
199
+ 2021-07-01,Item_B,61
200
+ 2021-07-01,Item_C,199
201
+ 2021-07-01,Item_E,719
202
+ 2021-08-01,Item_A,907
203
+ 2021-08-01,Item_D,219
204
+ 2021-08-01,Item_B,66
205
+ 2021-08-01,Item_E,427
206
+ 2021-09-01,Item_A,980
207
+ 2021-09-01,Item_D,615
208
+ 2021-09-01,Item_B,51
209
+ 2021-09-01,Item_E,444
210
+ 2021-10-01,Item_A,1257
211
+ 2021-10-01,Item_D,338
212
+ 2021-10-01,Item_B,71
213
+ 2021-10-01,Item_E,553
214
+ 2021-11-01,Item_A,1134
215
+ 2021-11-01,Item_D,435
216
+ 2021-11-01,Item_B,92
217
+ 2021-11-01,Item_E,400
218
+ 2021-12-01,Item_A,686
219
+ 2021-12-01,Item_D,245
220
+ 2021-12-01,Item_B,96
221
+ 2021-12-01,Item_E,411
222
+ 2022-01-01,Item_A,1225
223
+ 2022-01-01,Item_D,253
224
+ 2022-01-01,Item_B,76
225
+ 2022-01-01,Item_E,517
226
+ 2022-02-01,Item_A,1184
227
+ 2022-02-01,Item_D,531
228
+ 2022-02-01,Item_B,53
229
+ 2022-02-01,Item_E,370
230
+ 2022-03-01,Item_A,1249
231
+ 2022-03-01,Item_D,528
232
+ 2022-03-01,Item_B,59
233
+ 2022-03-01,Item_E,543
234
+ 2022-04-01,Item_A,976
235
+ 2022-04-01,Item_D,562
236
+ 2022-04-01,Item_B,40
237
+ 2022-04-01,Item_E,349
238
+ 2022-05-01,Item_A,1515
239
+ 2022-05-01,Item_D,549
240
+ 2022-05-01,Item_B,49
241
+ 2022-05-01,Item_E,370
242
+ 2022-06-01,Item_A,1310
243
+ 2022-06-01,Item_D,644
244
+ 2022-06-01,Item_B,91
245
+ 2022-06-01,Item_E,447
246
+ 2022-07-01,Item_A,1620
247
+ 2022-07-01,Item_D,412
248
+ 2022-07-01,Item_B,83
249
+ 2022-07-01,Item_E,385
250
+ 2022-08-01,Item_A,1299
251
+ 2022-08-01,Item_D,731
252
+ 2022-08-01,Item_B,79
253
+ 2022-08-01,Item_E,606
254
+ 2022-09-01,Item_A,1401
255
+ 2022-09-01,Item_D,725
256
+ 2022-09-01,Item_B,72
257
+ 2022-09-01,Item_E,483
258
+ 2022-10-01,Item_A,954
259
+ 2022-10-01,Item_D,259
260
+ 2022-10-01,Item_B,52
261
+ 2022-10-01,Item_E,339
262
+ 2022-11-01,Item_A,1050
263
+ 2022-11-01,Item_D,747
264
+ 2022-11-01,Item_B,50
265
+ 2022-11-01,Item_E,348
266
+ 2022-12-01,Item_A,1060
267
+ 2022-12-01,Item_D,662
268
+ 2022-12-01,Item_B,48
269
+ 2022-12-01,Item_E,333
data/demand_forecasting_demo_data_old.csv ADDED
@@ -0,0 +1,1019 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ datetime,y,sku
2
+ 2018-05-06,2,sku-0
3
+ 2018-05-13,1,sku-0
4
+ 2018-05-20,7,sku-0
5
+ 2018-05-27,9,sku-0
6
+ 2018-06-03,2,sku-0
7
+ 2018-06-10,3,sku-0
8
+ 2018-06-17,9,sku-0
9
+ 2018-06-24,9,sku-0
10
+ 2018-07-01,9,sku-0
11
+ 2018-07-08,9,sku-0
12
+ 2018-07-15,9,sku-0
13
+ 2018-07-22,9,sku-0
14
+ 2018-07-29,9,sku-0
15
+ 2018-08-05,9,sku-0
16
+ 2018-08-12,9,sku-0
17
+ 2018-08-19,9,sku-0
18
+ 2018-08-26,9,sku-0
19
+ 2018-09-02,9,sku-0
20
+ 2018-09-09,9,sku-0
21
+ 2018-09-16,6,sku-0
22
+ 2018-09-23,6,sku-0
23
+ 2018-09-30,2,sku-0
24
+ 2018-10-07,9,sku-0
25
+ 2018-10-14,9,sku-0
26
+ 2018-10-21,2,sku-0
27
+ 2018-10-28,10,sku-0
28
+ 2018-11-04,3,sku-0
29
+ 2018-11-11,9,sku-0
30
+ 2018-11-18,16,sku-0
31
+ 2018-11-25,1,sku-0
32
+ 2018-12-02,10,sku-0
33
+ 2018-12-09,9,sku-0
34
+ 2018-12-16,4,sku-0
35
+ 2018-12-23,2,sku-0
36
+ 2018-12-30,1,sku-0
37
+ 2019-01-06,9,sku-0
38
+ 2019-01-13,6,sku-0
39
+ 2019-01-20,15,sku-0
40
+ 2019-01-27,2,sku-0
41
+ 2019-02-03,9,sku-0
42
+ 2019-02-10,9,sku-0
43
+ 2019-02-17,9,sku-0
44
+ 2019-02-24,10,sku-0
45
+ 2019-03-03,9,sku-0
46
+ 2019-03-10,2,sku-0
47
+ 2019-03-17,14,sku-0
48
+ 2019-03-24,1,sku-0
49
+ 2019-03-31,2,sku-0
50
+ 2019-04-07,9,sku-0
51
+ 2019-04-14,3,sku-0
52
+ 2019-04-21,3,sku-0
53
+ 2019-04-28,1,sku-0
54
+ 2019-05-05,2,sku-0
55
+ 2019-05-12,9,sku-0
56
+ 2019-05-19,13,sku-0
57
+ 2019-05-26,6,sku-0
58
+ 2019-06-02,2,sku-0
59
+ 2019-06-09,9,sku-0
60
+ 2019-06-16,9,sku-0
61
+ 2019-06-23,9,sku-0
62
+ 2019-06-30,12,sku-0
63
+ 2019-07-07,2,sku-0
64
+ 2019-07-14,1,sku-0
65
+ 2019-07-21,15,sku-0
66
+ 2019-07-28,9,sku-0
67
+ 2019-08-04,5,sku-0
68
+ 2019-08-11,9,sku-0
69
+ 2019-08-18,12,sku-0
70
+ 2019-08-25,6,sku-0
71
+ 2019-09-01,4,sku-0
72
+ 2019-09-08,9,sku-0
73
+ 2019-09-15,1,sku-0
74
+ 2019-09-22,20,sku-0
75
+ 2019-09-29,9,sku-0
76
+ 2019-10-06,9,sku-0
77
+ 2019-10-13,4,sku-0
78
+ 2019-10-20,4,sku-0
79
+ 2019-10-27,9,sku-0
80
+ 2019-11-03,17,sku-0
81
+ 2019-11-10,1,sku-0
82
+ 2019-11-17,11,sku-0
83
+ 2019-11-24,5,sku-0
84
+ 2019-12-01,7,sku-0
85
+ 2019-12-08,4,sku-0
86
+ 2019-12-15,9,sku-0
87
+ 2019-12-22,9,sku-0
88
+ 2019-12-29,13,sku-0
89
+ 2020-01-05,9,sku-0
90
+ 2020-01-12,15,sku-0
91
+ 2020-01-19,3,sku-0
92
+ 2020-01-26,3,sku-0
93
+ 2020-02-02,4,sku-0
94
+ 2020-02-09,8,sku-0
95
+ 2020-02-16,30,sku-0
96
+ 2020-02-23,9,sku-0
97
+ 2020-03-01,9,sku-0
98
+ 2020-03-08,9,sku-0
99
+ 2020-03-15,9,sku-0
100
+ 2020-03-22,8,sku-0
101
+ 2020-03-29,9,sku-0
102
+ 2020-04-05,9,sku-0
103
+ 2020-04-12,9,sku-0
104
+ 2020-04-19,9,sku-0
105
+ 2020-04-26,9,sku-0
106
+ 2020-05-03,9,sku-0
107
+ 2020-05-10,9,sku-0
108
+ 2020-05-17,9,sku-0
109
+ 2020-05-24,9,sku-0
110
+ 2020-05-31,9,sku-0
111
+ 2020-06-07,9,sku-0
112
+ 2020-06-14,20,sku-0
113
+ 2020-06-21,9,sku-0
114
+ 2020-06-28,9,sku-0
115
+ 2020-07-05,9,sku-0
116
+ 2020-07-12,9,sku-0
117
+ 2020-07-19,4,sku-0
118
+ 2020-07-26,13,sku-0
119
+ 2020-08-02,9,sku-0
120
+ 2020-08-09,9,sku-0
121
+ 2020-08-16,9,sku-0
122
+ 2020-08-23,21,sku-0
123
+ 2020-08-30,4,sku-0
124
+ 2020-09-06,9,sku-0
125
+ 2020-09-13,2,sku-0
126
+ 2020-09-20,15,sku-0
127
+ 2020-09-27,4,sku-0
128
+ 2020-10-04,9,sku-0
129
+ 2020-10-11,4,sku-0
130
+ 2020-10-18,4,sku-0
131
+ 2020-10-25,17,sku-0
132
+ 2020-11-01,16,sku-0
133
+ 2020-11-08,9,sku-0
134
+ 2020-11-15,9,sku-0
135
+ 2020-11-22,22,sku-0
136
+ 2020-11-29,1,sku-0
137
+ 2020-12-06,6,sku-0
138
+ 2020-12-13,6,sku-0
139
+ 2020-12-20,25,sku-0
140
+ 2020-12-27,10,sku-0
141
+ 2021-01-03,9,sku-0
142
+ 2021-01-10,25,sku-0
143
+ 2021-01-17,40,sku-0
144
+ 2021-01-24,40,sku-0
145
+ 2021-01-31,6,sku-0
146
+ 2021-02-07,20,sku-0
147
+ 2021-02-14,35,sku-0
148
+ 2021-02-21,9,sku-0
149
+ 2021-02-28,20,sku-0
150
+ 2021-03-07,9,sku-0
151
+ 2021-03-14,9,sku-0
152
+ 2021-03-21,50,sku-0
153
+ 2021-03-28,35,sku-0
154
+ 2021-04-04,9,sku-0
155
+ 2021-04-11,20,sku-0
156
+ 2021-04-18,20,sku-0
157
+ 2021-04-25,10,sku-0
158
+ 2021-05-02,20,sku-0
159
+ 2021-05-09,9,sku-0
160
+ 2021-05-16,9,sku-0
161
+ 2021-05-23,9,sku-0
162
+ 2021-05-30,9,sku-0
163
+ 2021-06-06,9,sku-0
164
+ 2021-06-13,9,sku-0
165
+ 2021-06-20,9,sku-0
166
+ 2021-06-27,9,sku-0
167
+ 2021-07-04,9,sku-0
168
+ 2021-07-11,5,sku-0
169
+ 2021-07-18,5,sku-0
170
+ 2021-07-25,9,sku-0
171
+ 2021-08-01,9,sku-0
172
+ 2021-08-08,9,sku-0
173
+ 2021-08-15,9,sku-0
174
+ 2021-08-22,20,sku-0
175
+ 2021-08-29,20,sku-0
176
+ 2021-09-05,2,sku-0
177
+ 2021-09-12,9,sku-0
178
+ 2021-09-19,9,sku-0
179
+ 2021-09-26,10,sku-0
180
+ 2021-10-03,9,sku-0
181
+ 2021-10-10,9,sku-0
182
+ 2021-10-17,1,sku-0
183
+ 2021-10-24,5,sku-0
184
+ 2021-10-31,10,sku-0
185
+ 2021-11-07,25,sku-0
186
+ 2021-11-14,22,sku-0
187
+ 2021-11-21,23,sku-0
188
+ 2021-11-28,7,sku-0
189
+ 2021-12-05,9,sku-0
190
+ 2021-12-12,12,sku-0
191
+ 2021-12-19,18,sku-0
192
+ 2021-12-26,9,sku-0
193
+ 2022-01-02,35,sku-0
194
+ 2022-01-09,9,sku-0
195
+ 2022-01-16,20,sku-0
196
+ 2022-01-23,20,sku-0
197
+ 2022-01-30,10,sku-0
198
+ 2022-02-06,10,sku-0
199
+ 2022-02-13,22,sku-0
200
+ 2022-02-20,49,sku-0
201
+ 2022-02-27,10,sku-0
202
+ 2022-03-06,9,sku-0
203
+ 2022-03-13,9,sku-0
204
+ 2022-03-20,9,sku-0
205
+ 2022-03-27,9,sku-0
206
+ 2022-04-03,9,sku-0
207
+ 2022-04-10,10,sku-0
208
+ 2022-04-17,9,sku-0
209
+ 2022-04-24,20,sku-0
210
+ 2022-05-01,9,sku-0
211
+ 2022-05-08,9,sku-0
212
+ 2022-05-15,9,sku-0
213
+ 2022-05-22,50,sku-0
214
+ 2022-05-29,9,sku-0
215
+ 2022-06-05,9,sku-0
216
+ 2022-06-12,30,sku-0
217
+ 2022-06-19,10,sku-0
218
+ 2022-06-26,10,sku-0
219
+ 2022-07-03,5,sku-0
220
+ 2022-07-10,30,sku-0
221
+ 2022-07-17,20,sku-0
222
+ 2022-07-24,50,sku-0
223
+ 2022-07-31,9,sku-0
224
+ 2022-08-07,100,sku-0
225
+ 2022-08-14,34,sku-0
226
+ 2022-08-21,9,sku-0
227
+ 2022-08-28,10,sku-0
228
+ 2022-09-04,42,sku-0
229
+ 2022-09-11,30,sku-0
230
+ 2022-09-18,29,sku-0
231
+ 2022-09-25,8,sku-0
232
+ 2022-10-02,10,sku-0
233
+ 2022-10-09,9,sku-0
234
+ 2022-10-16,9,sku-0
235
+ 2022-10-23,9,sku-0
236
+ 2022-10-30,9,sku-0
237
+ 2022-11-06,9,sku-0
238
+ 2022-11-13,9,sku-0
239
+ 2022-11-20,20,sku-0
240
+ 2022-11-27,10,sku-0
241
+ 2022-12-04,9,sku-0
242
+ 2022-12-11,9,sku-0
243
+ 2022-12-18,35,sku-0
244
+ 2022-12-25,60,sku-0
245
+ 2023-01-01,15,sku-0
246
+ 2023-01-08,5,sku-0
247
+ 2023-01-15,70,sku-0
248
+ 2023-01-22,20,sku-0
249
+ 2023-01-29,1,sku-0
250
+ 2023-02-05,9,sku-0
251
+ 2023-02-12,9,sku-0
252
+ 2023-02-19,100,sku-0
253
+ 2023-02-26,40,sku-0
254
+ 2023-03-05,40,sku-0
255
+ 2023-03-12,9,sku-0
256
+ 2023-03-19,5,sku-0
257
+ 2023-03-26,9,sku-0
258
+ 2023-04-02,30,sku-0
259
+ 2023-04-09,50,sku-0
260
+ 2023-04-16,9,sku-0
261
+ 2023-04-23,20,sku-0
262
+ 2018-05-06,5,sku-1
263
+ 2018-05-13,20,sku-1
264
+ 2018-05-20,31,sku-1
265
+ 2018-05-27,10,sku-1
266
+ 2018-06-03,60,sku-1
267
+ 2018-06-10,31,sku-1
268
+ 2018-06-17,31,sku-1
269
+ 2018-06-24,5,sku-1
270
+ 2018-07-01,31,sku-1
271
+ 2018-07-08,30,sku-1
272
+ 2018-07-15,31,sku-1
273
+ 2018-07-22,31,sku-1
274
+ 2018-07-29,31,sku-1
275
+ 2018-08-05,10,sku-1
276
+ 2018-08-12,31,sku-1
277
+ 2018-08-19,31,sku-1
278
+ 2018-08-26,15,sku-1
279
+ 2018-09-02,31,sku-1
280
+ 2018-09-09,31,sku-1
281
+ 2018-09-16,25,sku-1
282
+ 2018-09-23,5,sku-1
283
+ 2018-09-30,45,sku-1
284
+ 2018-10-07,20,sku-1
285
+ 2018-10-14,25,sku-1
286
+ 2018-10-21,31,sku-1
287
+ 2018-10-28,40,sku-1
288
+ 2018-11-04,20,sku-1
289
+ 2018-11-11,31,sku-1
290
+ 2018-11-18,31,sku-1
291
+ 2018-11-25,31,sku-1
292
+ 2018-12-02,40,sku-1
293
+ 2018-12-09,10,sku-1
294
+ 2018-12-16,45,sku-1
295
+ 2018-12-23,31,sku-1
296
+ 2018-12-30,15,sku-1
297
+ 2019-01-06,31,sku-1
298
+ 2019-01-13,35,sku-1
299
+ 2019-01-20,20,sku-1
300
+ 2019-01-27,15,sku-1
301
+ 2019-02-03,25,sku-1
302
+ 2019-02-10,35,sku-1
303
+ 2019-02-17,31,sku-1
304
+ 2019-02-24,50,sku-1
305
+ 2019-03-03,60,sku-1
306
+ 2019-03-10,100,sku-1
307
+ 2019-03-17,31,sku-1
308
+ 2019-03-24,31,sku-1
309
+ 2019-03-31,55,sku-1
310
+ 2019-04-07,35,sku-1
311
+ 2019-04-14,80,sku-1
312
+ 2019-04-21,10,sku-1
313
+ 2019-04-28,10,sku-1
314
+ 2019-05-05,5,sku-1
315
+ 2019-05-12,30,sku-1
316
+ 2019-05-19,60,sku-1
317
+ 2019-05-26,35,sku-1
318
+ 2019-06-02,15,sku-1
319
+ 2019-06-09,31,sku-1
320
+ 2019-06-16,31,sku-1
321
+ 2019-06-23,31,sku-1
322
+ 2019-06-30,85,sku-1
323
+ 2019-07-07,20,sku-1
324
+ 2019-07-14,25,sku-1
325
+ 2019-07-21,15,sku-1
326
+ 2019-07-28,31,sku-1
327
+ 2019-08-04,15,sku-1
328
+ 2019-08-11,20,sku-1
329
+ 2019-08-18,50,sku-1
330
+ 2019-08-25,31,sku-1
331
+ 2019-09-01,40,sku-1
332
+ 2019-09-08,10,sku-1
333
+ 2019-09-15,31,sku-1
334
+ 2019-09-22,31,sku-1
335
+ 2019-09-29,31,sku-1
336
+ 2019-10-06,75,sku-1
337
+ 2019-10-13,31,sku-1
338
+ 2019-10-20,10,sku-1
339
+ 2019-10-27,31,sku-1
340
+ 2019-11-03,45,sku-1
341
+ 2019-11-10,20,sku-1
342
+ 2019-11-17,30,sku-1
343
+ 2019-11-24,30,sku-1
344
+ 2019-12-01,60,sku-1
345
+ 2019-12-08,10,sku-1
346
+ 2019-12-15,14,sku-1
347
+ 2019-12-22,14,sku-1
348
+ 2019-12-29,40,sku-1
349
+ 2020-01-05,31,sku-1
350
+ 2020-01-12,10,sku-1
351
+ 2020-01-19,15,sku-1
352
+ 2020-01-26,31,sku-1
353
+ 2020-02-02,20,sku-1
354
+ 2020-02-09,22,sku-1
355
+ 2020-02-16,50,sku-1
356
+ 2020-02-23,100,sku-1
357
+ 2020-03-01,31,sku-1
358
+ 2020-03-08,20,sku-1
359
+ 2020-03-15,35,sku-1
360
+ 2020-03-22,114,sku-1
361
+ 2020-03-29,15,sku-1
362
+ 2020-04-05,25,sku-1
363
+ 2020-04-12,31,sku-1
364
+ 2020-04-19,31,sku-1
365
+ 2020-04-26,31,sku-1
366
+ 2020-05-03,31,sku-1
367
+ 2020-05-10,31,sku-1
368
+ 2020-05-17,15,sku-1
369
+ 2020-05-24,31,sku-1
370
+ 2020-05-31,15,sku-1
371
+ 2020-06-07,60,sku-1
372
+ 2020-06-14,32,sku-1
373
+ 2020-06-21,75,sku-1
374
+ 2020-06-28,10,sku-1
375
+ 2020-07-05,45,sku-1
376
+ 2020-07-12,90,sku-1
377
+ 2020-07-19,15,sku-1
378
+ 2020-07-26,135,sku-1
379
+ 2020-08-02,31,sku-1
380
+ 2020-08-09,31,sku-1
381
+ 2020-08-16,31,sku-1
382
+ 2020-08-23,250,sku-1
383
+ 2020-08-30,31,sku-1
384
+ 2020-09-06,31,sku-1
385
+ 2020-09-13,5,sku-1
386
+ 2020-09-20,31,sku-1
387
+ 2020-09-27,60,sku-1
388
+ 2020-10-04,15,sku-1
389
+ 2020-10-11,10,sku-1
390
+ 2020-10-18,35,sku-1
391
+ 2020-10-25,31,sku-1
392
+ 2020-11-01,15,sku-1
393
+ 2020-11-08,25,sku-1
394
+ 2020-11-15,80,sku-1
395
+ 2020-11-22,45,sku-1
396
+ 2020-11-29,25,sku-1
397
+ 2020-12-06,25,sku-1
398
+ 2020-12-13,10,sku-1
399
+ 2020-12-20,10,sku-1
400
+ 2020-12-27,15,sku-1
401
+ 2021-01-03,31,sku-1
402
+ 2021-01-10,31,sku-1
403
+ 2021-01-17,31,sku-1
404
+ 2021-01-24,15,sku-1
405
+ 2021-01-31,35,sku-1
406
+ 2021-02-07,31,sku-1
407
+ 2021-02-14,31,sku-1
408
+ 2021-02-21,31,sku-1
409
+ 2021-02-28,5,sku-1
410
+ 2021-03-07,45,sku-1
411
+ 2021-03-14,35,sku-1
412
+ 2021-03-21,57,sku-1
413
+ 2021-03-28,250,sku-1
414
+ 2021-04-04,31,sku-1
415
+ 2021-04-11,31,sku-1
416
+ 2021-04-18,31,sku-1
417
+ 2021-04-25,40,sku-1
418
+ 2021-05-02,145,sku-1
419
+ 2021-05-09,40,sku-1
420
+ 2021-05-16,31,sku-1
421
+ 2021-05-23,20,sku-1
422
+ 2021-05-30,31,sku-1
423
+ 2021-06-06,40,sku-1
424
+ 2021-06-13,30,sku-1
425
+ 2021-06-20,10,sku-1
426
+ 2021-06-27,60,sku-1
427
+ 2021-07-04,31,sku-1
428
+ 2021-07-11,100,sku-1
429
+ 2021-07-18,30,sku-1
430
+ 2021-07-25,31,sku-1
431
+ 2021-08-01,31,sku-1
432
+ 2021-08-08,31,sku-1
433
+ 2021-08-15,31,sku-1
434
+ 2021-08-22,50,sku-1
435
+ 2021-08-29,120,sku-1
436
+ 2021-09-05,100,sku-1
437
+ 2021-09-12,100,sku-1
438
+ 2021-09-19,31,sku-1
439
+ 2021-09-26,80,sku-1
440
+ 2021-10-03,31,sku-1
441
+ 2021-10-10,31,sku-1
442
+ 2021-10-17,31,sku-1
443
+ 2021-10-24,31,sku-1
444
+ 2021-10-31,20,sku-1
445
+ 2021-11-07,31,sku-1
446
+ 2021-11-14,31,sku-1
447
+ 2021-11-21,31,sku-1
448
+ 2021-11-28,28,sku-1
449
+ 2021-12-05,150,sku-1
450
+ 2021-12-12,39,sku-1
451
+ 2021-12-19,31,sku-1
452
+ 2021-12-26,31,sku-1
453
+ 2022-01-02,15,sku-1
454
+ 2022-01-09,31,sku-1
455
+ 2022-01-16,31,sku-1
456
+ 2022-01-23,95,sku-1
457
+ 2022-01-30,115,sku-1
458
+ 2022-02-06,31,sku-1
459
+ 2022-02-13,75,sku-1
460
+ 2022-02-20,122,sku-1
461
+ 2022-02-27,31,sku-1
462
+ 2022-03-06,31,sku-1
463
+ 2022-03-13,31,sku-1
464
+ 2022-03-20,31,sku-1
465
+ 2022-03-27,31,sku-1
466
+ 2022-04-03,31,sku-1
467
+ 2022-04-10,50,sku-1
468
+ 2022-04-17,40,sku-1
469
+ 2022-04-24,80,sku-1
470
+ 2022-05-01,20,sku-1
471
+ 2022-05-08,31,sku-1
472
+ 2022-05-15,20,sku-1
473
+ 2022-05-22,31,sku-1
474
+ 2022-05-29,31,sku-1
475
+ 2022-06-05,125,sku-1
476
+ 2022-06-12,250,sku-1
477
+ 2022-06-19,100,sku-1
478
+ 2022-06-26,31,sku-1
479
+ 2022-07-03,31,sku-1
480
+ 2022-07-10,31,sku-1
481
+ 2022-07-17,32,sku-1
482
+ 2022-07-24,31,sku-1
483
+ 2022-07-31,31,sku-1
484
+ 2022-08-07,90,sku-1
485
+ 2022-08-14,57,sku-1
486
+ 2022-08-21,31,sku-1
487
+ 2022-08-28,71,sku-1
488
+ 2022-09-04,138,sku-1
489
+ 2022-09-11,100,sku-1
490
+ 2022-09-18,30,sku-1
491
+ 2022-09-25,46,sku-1
492
+ 2022-10-02,50,sku-1
493
+ 2022-10-09,200,sku-1
494
+ 2022-10-16,31,sku-1
495
+ 2022-10-23,31,sku-1
496
+ 2022-10-30,31,sku-1
497
+ 2022-11-06,31,sku-1
498
+ 2022-11-13,31,sku-1
499
+ 2022-11-20,31,sku-1
500
+ 2022-11-27,31,sku-1
501
+ 2022-12-04,31,sku-1
502
+ 2022-12-11,90,sku-1
503
+ 2022-12-18,31,sku-1
504
+ 2022-12-25,60,sku-1
505
+ 2023-01-01,50,sku-1
506
+ 2023-01-08,10,sku-1
507
+ 2023-01-15,31,sku-1
508
+ 2023-01-22,50,sku-1
509
+ 2023-01-29,31,sku-1
510
+ 2023-02-05,150,sku-1
511
+ 2023-02-12,200,sku-1
512
+ 2023-02-19,80,sku-1
513
+ 2023-02-26,150,sku-1
514
+ 2023-03-05,31,sku-1
515
+ 2023-03-12,31,sku-1
516
+ 2023-03-19,90,sku-1
517
+ 2023-03-26,55,sku-1
518
+ 2023-04-02,20,sku-1
519
+ 2023-04-09,250,sku-1
520
+ 2018-05-06,11,sku-2
521
+ 2018-05-13,6,sku-2
522
+ 2018-05-20,4,sku-2
523
+ 2018-05-27,8,sku-2
524
+ 2018-06-03,1,sku-2
525
+ 2018-06-10,3,sku-2
526
+ 2018-06-17,0,sku-2
527
+ 2018-06-24,8,sku-2
528
+ 2018-07-01,3,sku-2
529
+ 2018-07-08,0,sku-2
530
+ 2018-07-15,2,sku-2
531
+ 2018-07-22,2,sku-2
532
+ 2018-07-29,0,sku-2
533
+ 2018-08-05,10,sku-2
534
+ 2018-08-12,3,sku-2
535
+ 2018-08-19,9,sku-2
536
+ 2018-08-26,5,sku-2
537
+ 2018-09-02,0,sku-2
538
+ 2018-09-09,0,sku-2
539
+ 2018-09-16,2,sku-2
540
+ 2018-09-23,10,sku-2
541
+ 2018-09-30,2,sku-2
542
+ 2018-10-07,10,sku-2
543
+ 2018-10-14,0,sku-2
544
+ 2018-10-21,0,sku-2
545
+ 2018-10-28,10,sku-2
546
+ 2018-11-04,0,sku-2
547
+ 2018-11-11,0,sku-2
548
+ 2018-11-18,7,sku-2
549
+ 2018-11-25,7,sku-2
550
+ 2018-12-02,13,sku-2
551
+ 2018-12-09,1,sku-2
552
+ 2018-12-16,1,sku-2
553
+ 2018-12-23,4,sku-2
554
+ 2018-12-30,10,sku-2
555
+ 2019-01-06,0,sku-2
556
+ 2019-01-13,6,sku-2
557
+ 2019-01-20,3,sku-2
558
+ 2019-01-27,2,sku-2
559
+ 2019-02-03,3,sku-2
560
+ 2019-02-10,5,sku-2
561
+ 2019-02-17,0,sku-2
562
+ 2019-02-24,4,sku-2
563
+ 2019-03-03,5,sku-2
564
+ 2019-03-10,0,sku-2
565
+ 2019-03-17,1,sku-2
566
+ 2019-03-24,3,sku-2
567
+ 2019-03-31,8,sku-2
568
+ 2019-04-07,6,sku-2
569
+ 2019-04-14,7,sku-2
570
+ 2019-04-21,3,sku-2
571
+ 2019-04-28,3,sku-2
572
+ 2019-05-05,2,sku-2
573
+ 2019-05-12,6,sku-2
574
+ 2019-05-19,6,sku-2
575
+ 2019-05-26,5,sku-2
576
+ 2019-06-02,0,sku-2
577
+ 2019-06-09,0,sku-2
578
+ 2019-06-16,0,sku-2
579
+ 2019-06-23,10,sku-2
580
+ 2019-06-30,4,sku-2
581
+ 2019-07-07,4,sku-2
582
+ 2019-07-14,4,sku-2
583
+ 2019-07-21,1,sku-2
584
+ 2019-07-28,0,sku-2
585
+ 2019-08-04,13,sku-2
586
+ 2019-08-11,8,sku-2
587
+ 2019-08-18,5,sku-2
588
+ 2019-08-25,4,sku-2
589
+ 2019-09-01,8,sku-2
590
+ 2019-09-08,6,sku-2
591
+ 2019-09-15,3,sku-2
592
+ 2019-09-22,1,sku-2
593
+ 2019-09-29,0,sku-2
594
+ 2019-10-06,7,sku-2
595
+ 2019-10-13,7,sku-2
596
+ 2019-10-20,20,sku-2
597
+ 2019-10-27,0,sku-2
598
+ 2019-11-03,4,sku-2
599
+ 2019-11-10,3,sku-2
600
+ 2019-11-17,3,sku-2
601
+ 2019-11-24,10,sku-2
602
+ 2019-12-01,12,sku-2
603
+ 2019-12-08,1,sku-2
604
+ 2019-12-15,5,sku-2
605
+ 2019-12-22,5,sku-2
606
+ 2019-12-29,4,sku-2
607
+ 2020-01-05,0,sku-2
608
+ 2020-01-12,10,sku-2
609
+ 2020-01-19,1,sku-2
610
+ 2020-01-26,4,sku-2
611
+ 2020-02-02,6,sku-2
612
+ 2020-02-09,5,sku-2
613
+ 2020-02-16,20,sku-2
614
+ 2020-02-23,0,sku-2
615
+ 2020-03-01,0,sku-2
616
+ 2020-03-08,0,sku-2
617
+ 2020-03-15,0,sku-2
618
+ 2020-03-22,5,sku-2
619
+ 2020-03-29,0,sku-2
620
+ 2020-04-05,0,sku-2
621
+ 2020-04-12,0,sku-2
622
+ 2020-04-19,0,sku-2
623
+ 2020-04-26,0,sku-2
624
+ 2020-05-03,0,sku-2
625
+ 2020-05-10,0,sku-2
626
+ 2020-05-17,0,sku-2
627
+ 2020-05-24,0,sku-2
628
+ 2020-05-31,0,sku-2
629
+ 2020-06-07,0,sku-2
630
+ 2020-06-14,20,sku-2
631
+ 2020-06-21,25,sku-2
632
+ 2020-06-28,0,sku-2
633
+ 2020-07-05,0,sku-2
634
+ 2020-07-12,0,sku-2
635
+ 2020-07-19,0,sku-2
636
+ 2020-07-26,30,sku-2
637
+ 2020-08-02,0,sku-2
638
+ 2020-08-09,0,sku-2
639
+ 2020-08-16,0,sku-2
640
+ 2020-08-23,55,sku-2
641
+ 2020-08-30,10,sku-2
642
+ 2020-09-06,15,sku-2
643
+ 2020-09-13,10,sku-2
644
+ 2020-09-20,20,sku-2
645
+ 2020-09-27,0,sku-2
646
+ 2020-10-04,0,sku-2
647
+ 2020-10-11,20,sku-2
648
+ 2020-10-18,10,sku-2
649
+ 2020-10-25,50,sku-2
650
+ 2020-11-01,0,sku-2
651
+ 2020-11-08,0,sku-2
652
+ 2020-11-15,20,sku-2
653
+ 2020-11-22,20,sku-2
654
+ 2020-11-29,20,sku-2
655
+ 2020-12-06,0,sku-2
656
+ 2020-12-13,0,sku-2
657
+ 2020-12-20,20,sku-2
658
+ 2020-12-27,0,sku-2
659
+ 2021-01-03,0,sku-2
660
+ 2021-01-10,0,sku-2
661
+ 2021-01-17,100,sku-2
662
+ 2021-01-24,0,sku-2
663
+ 2021-01-31,100,sku-2
664
+ 2021-02-07,0,sku-2
665
+ 2021-02-14,0,sku-2
666
+ 2021-02-21,0,sku-2
667
+ 2021-02-28,0,sku-2
668
+ 2021-03-07,0,sku-2
669
+ 2021-03-14,20,sku-2
670
+ 2021-03-21,3,sku-2
671
+ 2021-03-28,55,sku-2
672
+ 2021-04-04,0,sku-2
673
+ 2021-04-11,100,sku-2
674
+ 2021-04-18,0,sku-2
675
+ 2021-04-25,10,sku-2
676
+ 2021-05-02,40,sku-2
677
+ 2021-05-09,0,sku-2
678
+ 2021-05-16,0,sku-2
679
+ 2021-05-23,0,sku-2
680
+ 2021-05-30,30,sku-2
681
+ 2021-06-06,10,sku-2
682
+ 2021-06-13,5,sku-2
683
+ 2021-06-20,10,sku-2
684
+ 2021-06-27,30,sku-2
685
+ 2021-07-04,0,sku-2
686
+ 2021-07-11,10,sku-2
687
+ 2021-07-18,30,sku-2
688
+ 2021-07-25,0,sku-2
689
+ 2021-08-01,0,sku-2
690
+ 2021-08-08,0,sku-2
691
+ 2021-08-15,0,sku-2
692
+ 2021-08-22,35,sku-2
693
+ 2021-08-29,10,sku-2
694
+ 2021-09-05,0,sku-2
695
+ 2021-09-12,50,sku-2
696
+ 2021-09-19,0,sku-2
697
+ 2021-09-26,10,sku-2
698
+ 2021-10-03,0,sku-2
699
+ 2021-10-10,15,sku-2
700
+ 2021-10-17,20,sku-2
701
+ 2021-10-24,20,sku-2
702
+ 2021-10-31,45,sku-2
703
+ 2021-11-07,55,sku-2
704
+ 2021-11-14,27,sku-2
705
+ 2021-11-21,16,sku-2
706
+ 2021-11-28,18,sku-2
707
+ 2021-12-05,0,sku-2
708
+ 2021-12-12,0,sku-2
709
+ 2021-12-19,15,sku-2
710
+ 2021-12-26,0,sku-2
711
+ 2022-01-02,22,sku-2
712
+ 2022-01-09,0,sku-2
713
+ 2022-01-16,100,sku-2
714
+ 2022-01-23,34,sku-2
715
+ 2022-01-30,5,sku-2
716
+ 2022-02-06,70,sku-2
717
+ 2022-02-13,40,sku-2
718
+ 2022-02-20,100,sku-2
719
+ 2022-02-27,0,sku-2
720
+ 2022-03-06,50,sku-2
721
+ 2022-03-13,50,sku-2
722
+ 2022-03-20,0,sku-2
723
+ 2022-03-27,10,sku-2
724
+ 2022-04-03,0,sku-2
725
+ 2022-04-10,50,sku-2
726
+ 2022-04-17,20,sku-2
727
+ 2022-04-24,80,sku-2
728
+ 2022-05-01,30,sku-2
729
+ 2022-05-08,0,sku-2
730
+ 2022-05-15,30,sku-2
731
+ 2022-05-22,0,sku-2
732
+ 2022-05-29,20,sku-2
733
+ 2022-06-05,50,sku-2
734
+ 2022-06-12,0,sku-2
735
+ 2022-06-19,44,sku-2
736
+ 2022-06-26,50,sku-2
737
+ 2022-07-03,0,sku-2
738
+ 2022-07-10,30,sku-2
739
+ 2022-07-17,30,sku-2
740
+ 2022-07-24,6,sku-2
741
+ 2022-07-31,35,sku-2
742
+ 2022-08-07,50,sku-2
743
+ 2022-08-14,60,sku-2
744
+ 2022-08-21,0,sku-2
745
+ 2022-08-28,30,sku-2
746
+ 2022-09-04,70,sku-2
747
+ 2022-09-11,100,sku-2
748
+ 2022-09-18,0,sku-2
749
+ 2022-09-25,0,sku-2
750
+ 2022-10-02,4,sku-2
751
+ 2022-10-09,0,sku-2
752
+ 2022-10-16,0,sku-2
753
+ 2022-10-23,0,sku-2
754
+ 2022-10-30,50,sku-2
755
+ 2022-11-06,30,sku-2
756
+ 2022-11-13,0,sku-2
757
+ 2022-11-20,70,sku-2
758
+ 2022-11-27,100,sku-2
759
+ 2022-12-04,50,sku-2
760
+ 2018-05-06,1,sku-3
761
+ 2018-05-13,4,sku-3
762
+ 2018-05-20,5,sku-3
763
+ 2018-05-27,5,sku-3
764
+ 2018-06-03,1,sku-3
765
+ 2018-06-10,1,sku-3
766
+ 2018-06-17,0,sku-3
767
+ 2018-06-24,2,sku-3
768
+ 2018-07-01,0,sku-3
769
+ 2018-07-08,0,sku-3
770
+ 2018-07-15,19,sku-3
771
+ 2018-07-22,9,sku-3
772
+ 2018-07-29,1,sku-3
773
+ 2018-08-05,2,sku-3
774
+ 2018-08-12,0,sku-3
775
+ 2018-08-19,0,sku-3
776
+ 2018-08-26,7,sku-3
777
+ 2018-09-02,14,sku-3
778
+ 2018-09-09,7,sku-3
779
+ 2018-09-16,6,sku-3
780
+ 2018-09-23,5,sku-3
781
+ 2018-09-30,3,sku-3
782
+ 2018-10-07,12,sku-3
783
+ 2018-10-14,8,sku-3
784
+ 2018-10-21,4,sku-3
785
+ 2018-10-28,7,sku-3
786
+ 2018-11-04,7,sku-3
787
+ 2018-11-11,0,sku-3
788
+ 2018-11-18,11,sku-3
789
+ 2018-11-25,2,sku-3
790
+ 2018-12-02,0,sku-3
791
+ 2018-12-09,1,sku-3
792
+ 2018-12-16,1,sku-3
793
+ 2018-12-23,0,sku-3
794
+ 2018-12-30,6,sku-3
795
+ 2019-01-06,0,sku-3
796
+ 2019-01-13,3,sku-3
797
+ 2019-01-20,6,sku-3
798
+ 2019-01-27,0,sku-3
799
+ 2019-02-03,1,sku-3
800
+ 2019-02-10,0,sku-3
801
+ 2019-02-17,0,sku-3
802
+ 2019-02-24,2,sku-3
803
+ 2019-03-03,5,sku-3
804
+ 2019-03-10,9,sku-3
805
+ 2019-03-17,12,sku-3
806
+ 2019-03-24,11,sku-3
807
+ 2019-03-31,0,sku-3
808
+ 2019-04-07,12,sku-3
809
+ 2019-04-14,17,sku-3
810
+ 2019-04-21,11,sku-3
811
+ 2019-04-28,2,sku-3
812
+ 2019-05-05,1,sku-3
813
+ 2019-05-12,0,sku-3
814
+ 2019-05-19,7,sku-3
815
+ 2019-05-26,26,sku-3
816
+ 2019-06-02,1,sku-3
817
+ 2019-06-09,0,sku-3
818
+ 2019-06-16,0,sku-3
819
+ 2019-06-23,7,sku-3
820
+ 2019-06-30,11,sku-3
821
+ 2019-07-07,7,sku-3
822
+ 2019-07-14,10,sku-3
823
+ 2019-07-21,0,sku-3
824
+ 2019-07-28,0,sku-3
825
+ 2019-08-04,16,sku-3
826
+ 2019-08-11,5,sku-3
827
+ 2019-08-18,15,sku-3
828
+ 2019-08-25,4,sku-3
829
+ 2019-09-01,1,sku-3
830
+ 2019-09-08,0,sku-3
831
+ 2019-09-15,5,sku-3
832
+ 2019-09-22,3,sku-3
833
+ 2019-09-29,0,sku-3
834
+ 2019-10-06,10,sku-3
835
+ 2019-10-13,0,sku-3
836
+ 2019-10-20,0,sku-3
837
+ 2019-10-27,0,sku-3
838
+ 2019-11-03,0,sku-3
839
+ 2019-11-10,0,sku-3
840
+ 2019-11-17,2,sku-3
841
+ 2019-11-24,0,sku-3
842
+ 2019-12-01,19,sku-3
843
+ 2019-12-08,1,sku-3
844
+ 2019-12-15,5,sku-3
845
+ 2019-12-22,5,sku-3
846
+ 2019-12-29,0,sku-3
847
+ 2020-01-05,0,sku-3
848
+ 2020-01-12,0,sku-3
849
+ 2020-01-19,0,sku-3
850
+ 2020-01-26,0,sku-3
851
+ 2020-02-02,3,sku-3
852
+ 2020-02-09,12,sku-3
853
+ 2020-02-16,0,sku-3
854
+ 2020-02-23,5,sku-3
855
+ 2020-03-01,10,sku-3
856
+ 2020-03-08,5,sku-3
857
+ 2020-03-15,11,sku-3
858
+ 2020-03-22,12,sku-3
859
+ 2020-03-29,0,sku-3
860
+ 2020-04-05,6,sku-3
861
+ 2020-04-12,0,sku-3
862
+ 2020-04-19,0,sku-3
863
+ 2020-04-26,0,sku-3
864
+ 2020-05-03,0,sku-3
865
+ 2020-05-10,0,sku-3
866
+ 2020-05-17,0,sku-3
867
+ 2020-05-24,0,sku-3
868
+ 2020-05-31,0,sku-3
869
+ 2020-06-07,11,sku-3
870
+ 2020-06-14,6,sku-3
871
+ 2020-06-21,8,sku-3
872
+ 2020-06-28,0,sku-3
873
+ 2020-07-05,0,sku-3
874
+ 2020-07-12,41,sku-3
875
+ 2020-07-19,0,sku-3
876
+ 2020-07-26,4,sku-3
877
+ 2020-08-02,0,sku-3
878
+ 2020-08-09,0,sku-3
879
+ 2020-08-16,0,sku-3
880
+ 2020-08-23,47,sku-3
881
+ 2020-08-30,3,sku-3
882
+ 2020-09-06,31,sku-3
883
+ 2020-09-13,0,sku-3
884
+ 2020-09-20,2,sku-3
885
+ 2020-09-27,0,sku-3
886
+ 2020-10-04,0,sku-3
887
+ 2020-10-11,6,sku-3
888
+ 2020-10-18,9,sku-3
889
+ 2020-10-25,8,sku-3
890
+ 2020-11-01,4,sku-3
891
+ 2020-11-08,2,sku-3
892
+ 2020-11-15,30,sku-3
893
+ 2020-11-22,60,sku-3
894
+ 2020-11-29,68,sku-3
895
+ 2020-12-06,0,sku-3
896
+ 2020-12-13,0,sku-3
897
+ 2020-12-20,0,sku-3
898
+ 2020-12-27,0,sku-3
899
+ 2021-01-03,0,sku-3
900
+ 2021-01-10,0,sku-3
901
+ 2021-01-17,0,sku-3
902
+ 2021-01-24,0,sku-3
903
+ 2021-01-31,0,sku-3
904
+ 2021-02-07,6,sku-3
905
+ 2021-02-14,6,sku-3
906
+ 2021-02-21,15,sku-3
907
+ 2021-02-28,30,sku-3
908
+ 2021-03-07,0,sku-3
909
+ 2021-03-14,5,sku-3
910
+ 2021-03-21,20,sku-3
911
+ 2021-03-28,0,sku-3
912
+ 2021-04-04,0,sku-3
913
+ 2021-04-11,0,sku-3
914
+ 2021-04-18,0,sku-3
915
+ 2021-04-25,10,sku-3
916
+ 2021-05-02,10,sku-3
917
+ 2021-05-09,0,sku-3
918
+ 2021-05-16,0,sku-3
919
+ 2021-05-23,0,sku-3
920
+ 2021-05-30,0,sku-3
921
+ 2021-06-06,0,sku-3
922
+ 2021-06-13,0,sku-3
923
+ 2021-06-20,0,sku-3
924
+ 2021-06-27,0,sku-3
925
+ 2021-07-04,0,sku-3
926
+ 2021-07-11,0,sku-3
927
+ 2021-07-18,2,sku-3
928
+ 2021-07-25,0,sku-3
929
+ 2021-08-01,0,sku-3
930
+ 2021-08-08,0,sku-3
931
+ 2021-08-15,0,sku-3
932
+ 2021-08-22,0,sku-3
933
+ 2021-08-29,0,sku-3
934
+ 2021-09-05,0,sku-3
935
+ 2021-09-12,5,sku-3
936
+ 2021-09-19,0,sku-3
937
+ 2021-09-26,0,sku-3
938
+ 2021-10-03,0,sku-3
939
+ 2021-10-10,0,sku-3
940
+ 2021-10-17,10,sku-3
941
+ 2021-10-24,3,sku-3
942
+ 2021-10-31,2,sku-3
943
+ 2021-11-07,0,sku-3
944
+ 2021-11-14,0,sku-3
945
+ 2021-11-21,15,sku-3
946
+ 2021-11-28,7,sku-3
947
+ 2021-12-05,17,sku-3
948
+ 2021-12-12,0,sku-3
949
+ 2021-12-19,0,sku-3
950
+ 2021-12-26,0,sku-3
951
+ 2022-01-02,5,sku-3
952
+ 2022-01-09,10,sku-3
953
+ 2022-01-16,0,sku-3
954
+ 2022-01-23,5,sku-3
955
+ 2022-01-30,10,sku-3
956
+ 2022-02-06,5,sku-3
957
+ 2022-02-13,25,sku-3
958
+ 2022-02-20,0,sku-3
959
+ 2022-02-27,0,sku-3
960
+ 2022-03-06,0,sku-3
961
+ 2022-03-13,2,sku-3
962
+ 2022-03-20,45,sku-3
963
+ 2022-03-27,25,sku-3
964
+ 2022-04-03,0,sku-3
965
+ 2022-04-10,0,sku-3
966
+ 2022-04-17,10,sku-3
967
+ 2022-04-24,3,sku-3
968
+ 2022-05-01,9,sku-3
969
+ 2022-05-08,0,sku-3
970
+ 2022-05-15,3,sku-3
971
+ 2022-05-22,5,sku-3
972
+ 2022-05-29,30,sku-3
973
+ 2022-06-05,0,sku-3
974
+ 2022-06-12,45,sku-3
975
+ 2022-06-19,32,sku-3
976
+ 2022-06-26,10,sku-3
977
+ 2022-07-03,0,sku-3
978
+ 2022-07-10,10,sku-3
979
+ 2022-07-17,30,sku-3
980
+ 2022-07-24,25,sku-3
981
+ 2022-07-31,7,sku-3
982
+ 2022-08-07,20,sku-3
983
+ 2022-08-14,32,sku-3
984
+ 2022-08-21,25,sku-3
985
+ 2022-08-28,0,sku-3
986
+ 2022-09-04,3,sku-3
987
+ 2022-09-11,0,sku-3
988
+ 2022-09-18,0,sku-3
989
+ 2022-09-25,25,sku-3
990
+ 2022-10-02,0,sku-3
991
+ 2022-10-09,0,sku-3
992
+ 2022-10-16,0,sku-3
993
+ 2022-10-23,0,sku-3
994
+ 2022-10-30,0,sku-3
995
+ 2022-11-06,0,sku-3
996
+ 2022-11-13,0,sku-3
997
+ 2022-11-20,0,sku-3
998
+ 2022-11-27,0,sku-3
999
+ 2022-12-04,0,sku-3
1000
+ 2022-12-11,0,sku-3
1001
+ 2022-12-18,0,sku-3
1002
+ 2022-12-25,0,sku-3
1003
+ 2023-01-01,0,sku-3
1004
+ 2023-01-08,0,sku-3
1005
+ 2023-01-15,0,sku-3
1006
+ 2023-01-22,0,sku-3
1007
+ 2023-01-29,0,sku-3
1008
+ 2023-02-05,0,sku-3
1009
+ 2023-02-12,0,sku-3
1010
+ 2023-02-19,0,sku-3
1011
+ 2023-02-26,0,sku-3
1012
+ 2023-03-05,0,sku-3
1013
+ 2023-03-12,0,sku-3
1014
+ 2023-03-19,0,sku-3
1015
+ 2023-03-26,0,sku-3
1016
+ 2023-04-02,0,sku-3
1017
+ 2023-04-09,0,sku-3
1018
+ 2023-04-16,10,sku-3
1019
+ 2023-04-23,12,sku-3
data/demand_forecasting_demo_models.csv CHANGED
@@ -1,5 +1,7 @@
1
  sku,best_model,characteristic
2
- sku-0,fft_plus,continuous
3
- sku-1,holt_winters_plus,continuous
4
- sku-2,prophet_plus,fuzzy
5
- sku-3,prophet_plus,fuzzy_transient
 
 
 
1
  sku,best_model,characteristic
2
+ Item_A,prophet,continuous
3
+ Item_B,prophet,continuous
4
+ Item_C,fft_i,continuous
5
+ Item_D,fft_i,continuous
6
+ Item_E,prophet,continuous
7
+ Item_F,ceif,fuzzy
data/demand_forecasting_demo_models_old.csv ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ sku,best_model,characteristic
2
+ sku-0,fft_plus,continuous
3
+ sku-1,prophet,continuous
4
+ sku-2,prophet_plus,fuzzy
5
+ sku-3,prophet_plus,fuzzy_transient
data/demand_forecasting_demo_result.csv CHANGED
@@ -1,61 +1,49 @@
1
  datetime,y,sku
2
- 2023-04-23,20,sku-0
3
- 2023-04-30,19,sku-0
4
- 2023-05-07,25,sku-0
5
- 2023-05-14,27,sku-0
6
- 2023-05-21,20,sku-0
7
- 2023-05-28,21,sku-0
8
- 2023-06-04,27,sku-0
9
- 2023-06-11,27,sku-0
10
- 2023-06-18,27,sku-0
11
- 2023-06-25,27,sku-0
12
- 2023-07-02,27,sku-0
13
- 2023-07-09,27,sku-0
14
- 2023-07-16,27,sku-0
15
- 2023-07-23,27,sku-0
16
- 2023-07-30,27,sku-0
17
- 2023-04-09,77,sku-1
18
- 2023-04-16,78,sku-1
19
- 2023-04-23,78,sku-1
20
- 2023-04-30,79,sku-1
21
- 2023-05-07,80,sku-1
22
- 2023-05-14,80,sku-1
23
- 2023-05-21,81,sku-1
24
- 2023-05-28,82,sku-1
25
- 2023-06-04,82,sku-1
26
- 2023-06-11,83,sku-1
27
- 2023-06-18,84,sku-1
28
- 2023-06-25,84,sku-1
29
- 2023-07-02,85,sku-1
30
- 2023-07-09,86,sku-1
31
- 2023-07-16,86,sku-1
32
- 2022-12-04,0,sku-2
33
- 2022-12-11,46,sku-2
34
- 2022-12-18,0,sku-2
35
- 2022-12-25,46,sku-2
36
- 2023-01-01,0,sku-2
37
- 2023-01-08,53,sku-2
38
- 2023-01-15,0,sku-2
39
- 2023-01-22,46,sku-2
40
- 2023-01-29,0,sku-2
41
- 2023-02-05,46,sku-2
42
- 2023-02-12,48,sku-2
43
- 2023-02-19,0,sku-2
44
- 2023-02-26,50,sku-2
45
- 2023-03-05,0,sku-2
46
- 2023-03-12,49,sku-2
47
- 2023-04-23,0,sku-3
48
- 2023-04-30,0,sku-3
49
- 2023-05-07,17,sku-3
50
- 2023-05-14,0,sku-3
51
- 2023-05-21,0,sku-3
52
- 2023-05-28,20,sku-3
53
- 2023-06-04,0,sku-3
54
- 2023-06-11,18,sku-3
55
- 2023-06-18,0,sku-3
56
- 2023-06-25,0,sku-3
57
- 2023-07-02,19,sku-3
58
- 2023-07-09,0,sku-3
59
- 2023-07-16,0,sku-3
60
- 2023-07-23,19,sku-3
61
- 2023-07-30,0,sku-3
 
1
  datetime,y,sku
2
+ 2022-12-01,1261.8815632506464,Item_A
3
+ 2023-01-01,1238.1241261262223,Item_A
4
+ 2023-02-01,1434.0416206444534,Item_A
5
+ 2023-03-01,1295.679891326803,Item_A
6
+ 2023-04-01,1252.8822925063257,Item_A
7
+ 2023-05-01,1267.2617621793959,Item_A
8
+ 2023-06-01,1782.3253296442874,Item_A
9
+ 2023-07-01,1412.4832995961542,Item_A
10
+ 2022-12-01,67.9822688135848,Item_B
11
+ 2023-01-01,54.08920320091594,Item_B
12
+ 2023-02-01,75.93797178898882,Item_B
13
+ 2023-03-01,52.75888135193364,Item_B
14
+ 2023-04-01,57.653112888668446,Item_B
15
+ 2023-05-01,60.939201454247645,Item_B
16
+ 2023-06-01,79.22506380814336,Item_B
17
+ 2023-07-01,61.2272960818053,Item_B
18
+ 2021-07-01,189.0,Item_C
19
+ 2021-08-01,89.0,Item_C
20
+ 2021-09-01,142.0,Item_C
21
+ 2021-10-01,120.0,Item_C
22
+ 2021-11-01,154.0,Item_C
23
+ 2021-12-01,128.0,Item_C
24
+ 2022-01-01,197.0,Item_C
25
+ 2022-02-01,236.0,Item_C
26
+ 2022-12-01,574.0,Item_D
27
+ 2023-01-01,590.0,Item_D
28
+ 2023-02-01,602.0,Item_D
29
+ 2023-03-01,594.0,Item_D
30
+ 2023-04-01,643.0,Item_D
31
+ 2023-05-01,559.0,Item_D
32
+ 2023-06-01,764.0,Item_D
33
+ 2023-07-01,723.0,Item_D
34
+ 2022-12-01,562.757441077348,Item_E
35
+ 2023-01-01,392.3652130259864,Item_E
36
+ 2023-02-01,435.8262111803688,Item_E
37
+ 2023-03-01,354.1857738937134,Item_E
38
+ 2023-04-01,414.76357933259385,Item_E
39
+ 2023-05-01,346.3290035765649,Item_E
40
+ 2023-06-01,358.72311297279185,Item_E
41
+ 2023-07-01,417.5938915290112,Item_E
42
+ 2022-12-04,0.0,Item_F
43
+ 2022-12-11,0.0,Item_F
44
+ 2022-12-18,46.0,Item_F
45
+ 2022-12-25,0.0,Item_F
46
+ 2023-01-01,51.0,Item_F
47
+ 2023-01-08,56.0,Item_F
48
+ 2023-01-15,81.0,Item_F
49
+ 2023-01-22,36.0,Item_F
 
 
 
 
 
 
 
 
 
 
 
 
data/demand_forecasting_demo_result_old.csv ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ datetime,y,sku
2
+ 2023-04-23,20,sku-0
3
+ 2023-04-30,19,sku-0
4
+ 2023-05-07,25,sku-0
5
+ 2023-05-14,27,sku-0
6
+ 2023-05-21,20,sku-0
7
+ 2023-05-28,21,sku-0
8
+ 2023-06-04,27,sku-0
9
+ 2023-06-11,27,sku-0
10
+ 2023-06-18,27,sku-0
11
+ 2023-06-25,27,sku-0
12
+ 2023-07-02,27,sku-0
13
+ 2023-07-09,27,sku-0
14
+ 2023-07-16,27,sku-0
15
+ 2023-07-23,27,sku-0
16
+ 2023-07-30,27,sku-0
17
+ 2023-04-09,77,sku-1
18
+ 2023-04-16,78,sku-1
19
+ 2023-04-23,78,sku-1
20
+ 2023-04-30,79,sku-1
21
+ 2023-05-07,80,sku-1
22
+ 2023-05-14,80,sku-1
23
+ 2023-05-21,81,sku-1
24
+ 2023-05-28,82,sku-1
25
+ 2023-06-04,82,sku-1
26
+ 2023-06-11,83,sku-1
27
+ 2023-06-18,84,sku-1
28
+ 2023-06-25,84,sku-1
29
+ 2023-07-02,85,sku-1
30
+ 2023-07-09,86,sku-1
31
+ 2023-07-16,86,sku-1
32
+ 2022-12-04,0,sku-2
33
+ 2022-12-11,46,sku-2
34
+ 2022-12-18,0,sku-2
35
+ 2022-12-25,46,sku-2
36
+ 2023-01-01,0,sku-2
37
+ 2023-01-08,53,sku-2
38
+ 2023-01-15,0,sku-2
39
+ 2023-01-22,46,sku-2
40
+ 2023-01-29,0,sku-2
41
+ 2023-02-05,46,sku-2
42
+ 2023-02-12,48,sku-2
43
+ 2023-02-19,0,sku-2
44
+ 2023-02-26,50,sku-2
45
+ 2023-03-05,0,sku-2
46
+ 2023-03-12,49,sku-2
47
+ 2023-04-23,0,sku-3
48
+ 2023-04-30,0,sku-3
49
+ 2023-05-07,17,sku-3
50
+ 2023-05-14,0,sku-3
51
+ 2023-05-21,0,sku-3
52
+ 2023-05-28,20,sku-3
53
+ 2023-06-04,0,sku-3
54
+ 2023-06-11,18,sku-3
55
+ 2023-06-18,0,sku-3
56
+ 2023-06-25,0,sku-3
57
+ 2023-07-02,19,sku-3
58
+ 2023-07-09,0,sku-3
59
+ 2023-07-16,0,sku-3
60
+ 2023-07-23,19,sku-3
61
+ 2023-07-30,0,sku-3
data/energy_consumption.csv ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ datetime,y,sku
2
+ 2018-12-30,2869429.0,engy_use
3
+ 2019-01-06,3028769.0,engy_use
4
+ 2019-01-13,2868238.0,engy_use
5
+ 2019-01-20,3302854.0,engy_use
6
+ 2019-01-27,3179729.0,engy_use
7
+ 2019-02-03,3022086.0,engy_use
8
+ 2019-02-10,3085911.0,engy_use
9
+ 2019-02-17,2653468.0,engy_use
10
+ 2019-02-24,2951708.0,engy_use
11
+ 2019-03-03,2833433.0,engy_use
12
+ 2019-03-10,2552725.0,engy_use
13
+ 2019-03-17,2543969.0,engy_use
14
+ 2019-03-24,2642057.0,engy_use
15
+ 2019-03-31,2310077.0,engy_use
16
+ 2019-04-07,2225992.0,engy_use
17
+ 2019-04-14,2263912.0,engy_use
18
+ 2019-04-21,2186848.0,engy_use
19
+ 2019-04-28,2174220.0,engy_use
20
+ 2019-05-05,2232093.0,engy_use
21
+ 2019-05-12,2306528.0,engy_use
22
+ 2019-05-19,2229918.0,engy_use
23
+ 2019-05-26,2425495.0,engy_use
24
+ 2019-06-02,2422264.0,engy_use
25
+ 2019-06-09,2375191.0,engy_use
26
+ 2019-06-16,2682140.0,engy_use
27
+ 2019-06-23,2716160.0,engy_use
28
+ 2019-06-30,2466409.0,engy_use
29
+ 2019-07-07,2647122.0,engy_use
30
+ 2019-07-14,2399085.0,engy_use
31
+ 2019-07-21,2607288.0,engy_use
32
+ 2019-07-28,2369764.0,engy_use
33
+ 2019-08-04,2543052.0,engy_use
34
+ 2019-08-11,2430988.0,engy_use
35
+ 2019-08-18,2705490.0,engy_use
36
+ 2019-08-25,2685717.0,engy_use
37
+ 2019-09-01,2638891.0,engy_use
38
+ 2019-09-08,2313720.0,engy_use
39
+ 2019-09-15,2225013.0,engy_use
40
+ 2019-09-22,2222675.0,engy_use
41
+ 2019-09-29,2234837.0,engy_use
42
+ 2019-10-06,2188523.0,engy_use
43
+ 2019-10-13,2208243.0,engy_use
44
+ 2019-10-20,2287442.0,engy_use
45
+ 2019-10-27,2367996.0,engy_use
46
+ 2019-11-03,2393787.0,engy_use
47
+ 2019-11-10,2612738.0,engy_use
48
+ 2019-11-17,2875894.0,engy_use
49
+ 2019-11-24,2469200.0,engy_use
50
+ 2019-12-01,2632273.0,engy_use
51
+ 2019-12-08,2785396.0,engy_use
52
+ 2019-12-15,2741600.0,engy_use
53
+ 2019-12-22,2334315.0,engy_use
54
+ 2019-12-29,2612217.0,engy_use
55
+ 2020-01-05,3235220.0,engy_use
56
+ 2020-01-12,2906857.0,engy_use
57
+ 2020-01-19,2735721.0,engy_use
58
+ 2020-01-26,2958905.0,engy_use
59
+ 2020-02-02,2871526.0,engy_use
60
+ 2020-02-09,3025414.0,engy_use
61
+ 2020-02-16,3382229.0,engy_use
62
+ 2020-02-23,3110671.0,engy_use
63
+ 2020-03-01,2837661.0,engy_use
64
+ 2020-03-08,2418866.0,engy_use
65
+ 2020-03-15,2409004.0,engy_use
66
+ 2020-03-22,2517772.0,engy_use
67
+ 2020-03-29,2266680.0,engy_use
68
+ 2020-04-05,2205535.0,engy_use
69
+ 2020-04-12,2154851.0,engy_use
70
+ 2020-04-19,2224803.0,engy_use
71
+ 2020-04-26,2181505.0,engy_use
72
+ 2020-05-03,2371019.0,engy_use
73
+ 2020-05-10,2305032.0,engy_use
74
+ 2020-05-17,2230851.0,engy_use
75
+ 2020-05-24,2438662.0,engy_use
76
+ 2020-05-31,2317062.0,engy_use
77
+ 2020-06-07,2638604.0,engy_use
78
+ 2020-06-14,2673375.0,engy_use
79
+ 2020-06-21,2590104.0,engy_use
80
+ 2020-06-28,2256414.0,engy_use
81
+ 2020-07-05,2509818.0,engy_use
82
+ 2020-07-12,2622349.0,engy_use
83
+ 2020-07-19,2713873.0,engy_use
84
+ 2020-07-26,2797346.0,engy_use
85
+ 2020-08-02,2602298.0,engy_use
86
+ 2020-08-09,2630506.0,engy_use
87
+ 2020-08-16,2616939.0,engy_use
88
+ 2020-08-23,2401785.0,engy_use
89
+ 2020-08-30,2723068.0,engy_use
90
+ 2020-09-06,2459672.0,engy_use
91
+ 2020-09-13,2334714.0,engy_use
92
+ 2020-09-20,2264433.0,engy_use
93
+ 2020-09-27,2211245.0,engy_use
94
+ 2020-10-04,2171565.0,engy_use
95
+ 2020-10-11,2195525.0,engy_use
96
+ 2020-10-18,2191381.0,engy_use
97
+ 2020-10-25,2225017.0,engy_use
98
+ 2020-11-01,2182841.0,engy_use
99
+ 2020-11-08,2288004.0,engy_use
100
+ 2020-11-15,2326099.0,engy_use
101
+ 2020-11-22,2224256.0,engy_use
102
+ 2020-11-29,2511069.0,engy_use
103
+ 2020-12-06,2371616.0,engy_use
104
+ 2020-12-13,2499715.0,engy_use
105
+ 2020-12-20,2130328.0,engy_use
106
+ 2020-12-27,2382527.0,engy_use
107
+ 2021-01-03,2717863.0,engy_use
108
+ 2021-01-10,2863882.0,engy_use
109
+ 2021-01-17,3156518.0,engy_use
110
+ 2021-01-24,2695143.0,engy_use
111
+ 2021-01-31,2545056.0,engy_use
112
+ 2021-02-07,3046802.0,engy_use
113
+ 2021-02-14,2597083.0,engy_use
114
+ 2021-02-21,2539052.0,engy_use
115
+ 2021-02-28,2570958.0,engy_use
116
+ 2021-03-07,2208268.0,engy_use
117
+ 2021-03-14,2236770.0,engy_use
118
+ 2021-03-21,2198588.0,engy_use
119
+ 2021-03-28,2209436.0,engy_use
120
+ 2021-04-04,2407410.0,engy_use
121
+ 2021-04-11,2186686.0,engy_use
122
+ 2021-04-18,2125394.0,engy_use
123
+ 2021-04-25,2149144.0,engy_use
124
+ 2021-05-02,2112167.0,engy_use
125
+ 2021-05-09,2151053.0,engy_use
126
+ 2021-05-16,2112664.0,engy_use
127
+ 2021-05-23,2355286.0,engy_use
128
+ 2021-05-30,2460984.0,engy_use
129
+ 2021-06-06,2418848.0,engy_use
130
+ 2021-06-13,2540146.0,engy_use
131
+ 2021-06-20,2609368.0,engy_use
132
+ 2021-06-27,2421973.0,engy_use
133
+ 2021-07-04,2516318.0,engy_use
134
+ 2021-07-11,2737948.0,engy_use
135
+ 2021-07-18,2885668.0,engy_use
136
+ 2021-07-25,2835504.0,engy_use
137
+ 2021-08-01,2831009.0,engy_use
138
+ 2021-08-08,2933907.0,engy_use
139
+ 2021-08-15,2721183.0,engy_use
140
+ 2021-08-22,2745802.0,engy_use
141
+ 2021-08-29,2564416.0,engy_use
142
+ 2021-09-05,2708931.0,engy_use
143
+ 2021-09-12,2466304.0,engy_use
144
+ 2021-09-19,2539083.0,engy_use
145
+ 2021-09-26,2163427.0,engy_use
146
+ 2021-10-03,2171201.0,engy_use
147
+ 2021-10-10,2121174.0,engy_use
148
+ 2021-10-17,2215295.0,engy_use
149
+ 2021-10-24,2155735.0,engy_use
150
+ 2021-10-31,2166702.0,engy_use
151
+ 2021-11-07,2277194.0,engy_use
152
+ 2021-11-14,2358407.0,engy_use
153
+ 2021-11-21,2353946.0,engy_use
154
+ 2021-11-28,2435669.0,engy_use
155
+ 2021-12-05,2728598.0,engy_use
156
+ 2021-12-12,2856632.0,engy_use
157
+ 2021-12-19,2636854.0,engy_use
158
+ 2021-12-26,2378348.0,engy_use
159
+ 2022-01-02,2834022.0,engy_use
160
+ 2022-01-09,2663156.0,engy_use
161
+ 2022-01-16,2388379.0,engy_use
162
+ 2022-01-23,2576092.0,engy_use
163
+ 2022-01-30,2724873.0,engy_use
164
+ 2022-02-06,2495664.0,engy_use
165
+ 2022-02-13,2460495.0,engy_use
166
+ 2022-02-20,2267947.0,engy_use
167
+ 2022-02-27,2481337.0,engy_use
168
+ 2022-03-06,2419057.0,engy_use
169
+ 2022-03-13,2723821.0,engy_use
170
+ 2022-03-20,2312468.0,engy_use
171
+ 2022-03-27,2193809.0,engy_use
172
+ 2022-04-03,2241817.0,engy_use
173
+ 2022-04-10,2099969.0,engy_use
174
+ 2022-04-17,2152580.0,engy_use
175
+ 2022-04-24,2194599.0,engy_use
176
+ 2022-05-01,2110625.0,engy_use
177
+ 2022-05-08,2147139.0,engy_use
178
+ 2022-05-15,2354321.0,engy_use
179
+ 2022-05-22,2167972.0,engy_use
180
+ 2022-05-29,2273674.0,engy_use
181
+ 2022-06-05,2326770.0,engy_use
182
+ 2022-06-12,2728335.0,engy_use
183
+ 2022-06-19,2486995.0,engy_use
184
+ 2022-06-26,2452241.0,engy_use
185
+ 2022-07-03,2478512.0,engy_use
186
+ 2022-07-10,2681355.0,engy_use
187
+ 2022-07-17,2855314.0,engy_use
188
+ 2022-07-24,2551217.0,engy_use
189
+ 2022-07-31,2524910.0,engy_use
190
+ 2022-08-07,2446518.0,engy_use
191
+ 2022-08-14,2715332.0,engy_use
192
+ 2022-08-21,2481947.0,engy_use
193
+ 2022-08-28,2280037.0,engy_use
194
+ 2022-09-04,2148406.0,engy_use
195
+ 2022-09-11,2265387.0,engy_use
196
+ 2022-09-18,2561937.0,engy_use
197
+ 2022-09-25,2366428.0,engy_use
198
+ 2022-10-02,2270751.0,engy_use
199
+ 2022-10-09,2281653.0,engy_use
200
+ 2022-10-16,2162440.0,engy_use
201
+ 2022-10-23,2226689.0,engy_use
202
+ 2022-10-30,2290433.0,engy_use
203
+ 2022-11-06,2424514.0,engy_use
204
+ 2022-11-13,2465073.0,engy_use
205
+ 2022-11-20,2402741.0,engy_use
206
+ 2022-11-27,2447270.0,engy_use
207
+ 2022-12-04,2687268.0,engy_use
208
+ 2022-12-11,2828097.0,engy_use
209
+ 2022-12-18,2483275.0,engy_use
210
+ 2022-12-25,2958141.0,engy_use
211
+ 2023-01-01,2842532.0,engy_use
212
+ 2023-01-08,2804232.0,engy_use
213
+ 2023-01-15,3027816.0,engy_use
214
+ 2023-01-22,2574386.0,engy_use
215
+ 2023-01-29,2885204.0,engy_use
216
+ 2023-02-05,2789924.0,engy_use
217
+ 2023-02-12,2530032.0,engy_use
218
+ 2023-02-19,2269327.0,engy_use
219
+ 2023-02-26,2434005.0,engy_use
220
+ 2023-03-05,2601847.0,engy_use
221
+ 2023-03-12,2624164.0,engy_use
222
+ 2023-03-19,2587593.0,engy_use
223
+ 2023-03-26,2307395.0,engy_use
224
+ 2023-04-02,2412266.0,engy_use
225
+ 2023-04-09,2303668.0,engy_use
226
+ 2023-04-16,2362015.0,engy_use
227
+ 2023-04-23,2126357.0,engy_use
228
+ 2023-04-30,2204680.0,engy_use
229
+ 2023-05-07,2238005.0,engy_use
230
+ 2023-05-14,2363166.0,engy_use
231
+ 2023-05-21,2448118.0,engy_use
232
+ 2023-05-28,2622242.0,engy_use
233
+ 2023-06-04,2376050.0,engy_use
234
+ 2023-06-11,2578147.0,engy_use
235
+ 2023-06-18,2710648.0,engy_use
236
+ 2023-06-25,2707591.0,engy_use
237
+ 2023-07-02,2707980.0,engy_use
238
+ 2023-07-09,2799780.0,engy_use
239
+ 2023-07-16,2616533.0,engy_use
240
+ 2023-07-23,2588782.0,engy_use
data/multivariate/Predicting_price_blow_mold.xlsx ADDED
Binary file (166 kB). View file
 
data/multivariate/Variable description.xlsx ADDED
Binary file (8.69 kB). View file
 
data/multivariate/blow_mold_preprocessed.csv ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ datetime,y,gas_regm,m_coil_brent_eu,ppi_plastic_resins,global_proce_of_rubber,ppi_nonpackaging_plastic
2
+ 2000-01-31,41.0,1.289,25.51,139.4,29.207387288305,106.3
3
+ 2000-02-29,41.0,1.377,27.78,141.7,33.3910988232947,105.6
4
+ 2000-03-31,45.0,1.516,27.49,146.3,30.9419130507091,106.1
5
+ 2000-04-30,47.0,1.465,22.76,151.4,31.9301483398313,106.9
6
+ 2000-05-31,47.0,1.487,27.74,155.6,31.2017020258803,106.3
7
+ 2000-06-30,47.0,1.633,29.8,155.9,30.3866550681669,105.6
8
+ 2000-07-31,47.0,1.551,28.68,153.8,29.4021076293167,105.6
9
+ 2000-08-31,46.0,1.465,30.2,153.5,30.3085171496012,105.6
10
+ 2000-09-30,45.0,1.55,33.14,148.7,29.8124884983428,102.9
11
+ 2000-10-31,43.0,1.532,30.96,146.2,30.1277751472933,102.8
12
+ 2000-11-30,42.0,1.517,32.55,143.7,28.7437287406289,141.8
13
+ 2000-12-31,41.0,1.443,25.66,141.8,28.1258451618706,135.4
14
+ 2001-01-31,41.0,1.447,25.62,142.1,27.6103437361532,136.0
15
+ 2001-02-28,46.0,1.45,27.5,143.8,27.3004069271481,130.3
16
+ 2001-03-31,49.0,1.409,24.5,146.2,26.0187851525231,131.9
17
+ 2001-04-30,49.0,1.552,25.66,146.8,26.2534988467767,133.5
18
+ 2001-05-31,46.0,1.702,28.31,144.3,27.51473477331,133.6
19
+ 2001-06-30,44.0,1.616,27.85,141.5,28.1185662296469,132.6
20
+ 2001-07-31,41.0,1.421,24.61,138.8,27.4841214793241,129.9
21
+ 2001-08-31,38.0,1.421,25.68,134.1,26.6036904584991,127.3
22
+ 2001-09-30,37.0,1.522,25.62,128.7,26.292151018594,128.1
23
+ 2001-10-31,36.0,1.315,20.54,131.1,24.3699386646521,126.8
24
+ 2001-11-30,35.0,1.171,18.8,129.3,23.3473647814519,126.9
25
+ 2001-12-31,34.0,1.086,18.71,126.0,22.1199072290676,126.9
26
+ 2002-01-31,33.0,1.107,19.42,123.5,25.7274386290273,124.2
27
+ 2002-02-28,32.0,1.114,20.28,122.9,28.3348137073603,123.1
28
+ 2002-03-31,35.0,1.249,23.7,125.4,30.4060736454083,123.5
29
+ 2002-04-30,37.0,1.397,25.73,129.1,30.5710009457509,132.5
30
+ 2002-05-31,37.0,1.392,25.35,131.7,31.9800767861452,132.2
31
+ 2002-06-30,40.0,1.382,24.08,134.2,38.1194117462331,133.2
32
+ 2002-07-31,42.0,1.397,25.74,140.8,37.7212614451261,130.1
33
+ 2002-08-31,42.0,1.396,26.65,141.7,39.1259414196287,130.7
34
+ 2002-09-30,42.0,1.4,28.4,142.0,40.4003165097905,132.5
35
+ 2002-10-31,41.5,1.445,27.54,143.5,37.4785970122049,133.5
36
+ 2002-11-30,41.0,1.419,24.34,142.0,38.1078708057541,131.3
37
+ 2002-12-31,40.0,1.386,28.33,139.6,38.4589515238658,131.3
38
+ 2003-01-31,42.0,1.458,31.18,142.2,40.8439797087274,131.2
39
+ 2003-02-28,45.0,1.613,32.77,148.3,44.3216971632299,134.9
40
+ 2003-03-31,51.0,1.693,30.61,158.0,48.0160494131156,154.4
41
+ 2003-04-30,51.0,1.589,25.0,162.5,44.6582837198907,153.6
42
+ 2003-05-31,49.0,1.497,25.86,160.3,44.7716819472496,148.3
43
+ 2003-06-30,47.0,1.493,27.65,156.0,46.0828796324256,143.9
44
+ 2003-07-31,46.0,1.513,28.35,150.5,45.0388176923323,143.5
45
+ 2003-08-31,46.0,1.62,29.89,149.0,47.2060620748377,146.4
46
+ 2003-09-30,49.0,1.679,27.11,150.9,50.1580977467978,143.9
47
+ 2003-10-31,50.0,1.564,29.61,152.7,58.8783317878305,143.0
48
+ 2003-11-30,50.0,1.512,28.75,152.5,57.317134018561,144.9
49
+ 2003-12-31,50.0,1.479,29.81,150.1,56.4615173935601,144.9
50
+ 2004-01-31,50.0,1.572,31.28,153.0,56.9385099372127,145.1
51
+ 2004-02-29,52.0,1.648,30.86,158.4,58.6985034776252,151.1
52
+ 2004-03-31,53.0,1.736,33.63,159.2,60.3278569549401,151.3
53
+ 2004-04-30,51.0,1.798,33.59,163.1,62.9846154244917,148.6
54
+ 2004-05-31,54.0,1.983,37.57,164.3,60.96288702815,148.4
55
+ 2004-06-30,50.0,1.969,35.18,167.9,62.0396301965008,153.3
56
+ 2004-07-31,50.0,1.911,38.22,169.3,56.439917731206,155.2
57
+ 2004-08-31,54.0,1.878,42.74,172.7,55.5759312370429,158.2
58
+ 2004-09-30,54.0,1.87,43.2,178.7,56.4156181110577,164.3
59
+ 2004-10-31,59.0,2.0,49.78,184.2,57.687298232154,170.1
60
+ 2004-11-30,65.0,1.979,43.11,190.2,55.6841995445927,172.5
61
+ 2004-12-31,65.0,1.841,39.6,195.0,53.664361118707,180.7
62
+ 2005-01-31,65.0,1.831,44.51,201.5,53.6713810089721,181.0
63
+ 2005-02-28,65.0,1.91,45.48,202.2,57.09267223323,184.5
64
+ 2005-03-31,65.0,2.079,53.1,203.8,59.7969470723052,180.0
65
+ 2005-04-30,63.0,2.243,51.88,203.3,59.5394692790162,180.4
66
+ 2005-05-31,59.0,2.161,48.65,200.3,61.6602861264073,183.0
67
+ 2005-06-30,55.0,2.156,54.35,195.0,66.0132317175254,181.4
68
+ 2005-07-31,55.0,2.29,57.52,193.4,76.7382004284509,177.2
69
+ 2005-08-31,61.0,2.486,63.98,191.6,72.5594021150625,174.3
70
+ 2005-09-30,70.5,2.903,62.91,197.5,76.9355427981404,182.2
71
+ 2005-10-31,79.0,2.717,58.54,217.4,77.175593591121,197.3
72
+ 2005-11-30,87.0,2.257,55.24,222.9,72.5295062187588,209.1
73
+ 2005-12-31,83.0,2.185,56.86,218.5,76.219808531953,209.1
74
+ 2006-01-31,79.0,2.316,62.99,216.8,85.0675702237423,207.8
75
+ 2006-02-28,75.0,2.28,60.21,211.5,93.3664304959585,212.2
76
+ 2006-03-31,71.0,2.425,62.06,210.2,93.9381054725787,211.5
77
+ 2006-04-30,67.0,2.742,70.26,204.0,97.2718057629218,209.5
78
+ 2006-05-31,70.0,2.907,69.78,206.1,110.979065175253,198.6
79
+ 2006-06-30,73.0,2.885,68.56,209.8,122.556484197039,196.2
80
+ 2006-07-31,73.0,2.981,73.67,210.3,112.63143934534,199.2
81
+ 2006-08-31,78.0,2.952,73.23,214.0,98.6358399427319,202.5
82
+ 2006-09-30,76.0,2.555,61.96,213.8,82.4405112899275,202.6
83
+ 2006-10-31,70.0,2.245,57.81,210.3,82.5755091796405,204.7
84
+ 2006-11-30,64.0,2.229,58.76,205.3,73.6779209940118,204.6
85
+ 2006-12-31,61.0,2.313,62.47,196.2,78.1671886168233,204.6
86
+ 2007-01-31,61.0,2.24,53.68,194.0,94.2393268508427,204.5
87
+ 2007-02-28,64.0,2.278,57.56,191.4,103.362484237646,192.8
88
+ 2007-03-31,67.0,2.563,62.05,193.3,101.723364405822,192.8
89
+ 2007-04-30,67.0,2.845,67.49,199.0,105.244894811804,192.8
90
+ 2007-05-31,71.0,3.146,67.21,201.4,107.442120464773,192.9
91
+ 2007-06-30,71.0,3.056,71.05,204.7,100.30343205675,192.9
92
+ 2007-07-31,76.0,2.965,76.93,206.8,94.1669188918148,0.0
93
+ 2007-08-31,76.0,2.786,70.76,207.0,95.8627378373185,0.0
94
+ 2007-09-30,76.0,2.803,77.17,206.2,98.1121463109289,0.0
95
+ 2007-10-31,80.0,2.803,82.34,207.9,105.766033621884,0.0
96
+ 2007-11-30,85.0,3.08,92.41,215.6,112.615239598575,0.0
97
+ 2007-12-31,85.0,3.018,90.93,217.1,112.390984280604,0.0
98
+ 2008-01-31,85.0,3.043,92.18,218.7,119.006285148296,0.0
99
+ 2008-02-29,85.0,3.028,94.99,218.7,126.552421732544,0.0
100
+ 2008-03-31,85.0,3.244,103.64,220.5,126.643140314431,0.0
101
+ 2008-04-30,88.0,3.458,109.07,222.6,128.593589825004,0.0
102
+ 2008-05-31,91.0,3.766,122.8,228.5,138.277798441455,0.0
103
+ 2008-06-30,96.0,4.054,132.32,231.9,146.170315065635,0.0
104
+ 2008-07-31,103.0,4.062,132.72,244.5,144.932795280109,0.0
105
+ 2008-08-31,103.0,3.779,113.24,249.4,132.746124912575,0.0
106
+ 2008-09-30,96.0,3.703,97.23,240.3,128.710080731291,0.0
107
+ 2008-10-31,85.0,3.051,71.58,233.0,87.077467895931,0.0
108
+ 2008-11-30,65.0,2.147,52.45,203.5,74.9017971351072,0.0
109
+ 2008-12-31,55.0,1.687,39.95,191.2,55.3560842389086,0.0
110
+ 2009-01-31,55.0,1.788,43.44,181.5,67.3477472200155,0.0
111
+ 2009-02-28,62.0,1.923,43.32,190.5,66.3674465440756,0.0
112
+ 2009-03-31,62.0,1.959,46.54,189.0,64.9008981964321,0.0
113
+ 2009-04-30,62.0,2.049,50.18,185.0,73.7707013618509,0.0
114
+ 2009-05-31,65.0,2.266,57.3,189.0,76.8046193901897,0.0
115
+ 2009-06-30,68.0,2.631,68.61,188.8,75.9603180428538,0.0
116
+ 2009-07-31,68.0,2.527,64.44,201.2,79.3432605757159,0.0
117
+ 2009-08-31,68.0,2.616,72.51,200.8,93.2047030240823,0.0
118
+ 2009-09-30,72.0,2.554,67.65,202.7,98.5533685046526,0.0
119
+ 2009-10-31,72.0,2.551,72.77,200.4,106.69329944307,0.0
120
+ 2009-11-30,72.0,2.651,76.66,201.2,115.713711163267,0.0
121
+ 2009-12-31,72.0,2.607,74.46,203.6,127.232811096697,0.0
122
+ 2010-01-31,76.0,2.715,76.17,201.0,139.790854789358,0.0
123
+ 2010-02-28,84.0,2.644,73.75,217.1,141.865718355091,0.0
124
+ 2010-03-31,90.0,2.772,78.83,219.5,151.4369231728,0.0
125
+ 2010-04-30,90.0,2.848,84.82,238.8,179.086727788998,0.0
126
+ 2010-05-31,84.0,2.836,75.95,226.0,166.911390841138,0.0
127
+ 2010-06-30,78.0,2.732,74.76,218.8,161.740922574989,0.0
128
+ 2010-07-31,76.0,2.729,75.58,224.8,148.514565693036,0.0
129
+ 2010-08-31,76.0,2.73,77.04,222.7,150.415532340762,0.0
130
+ 2010-09-30,81.0,2.705,77.84,221.6,160.244065973852,0.0
131
+ 2010-10-31,81.0,2.801,82.67,227.7,178.024417122312,0.0
132
+ 2010-11-30,85.0,2.859,85.28,221.3,195.323292160842,0.0
133
+ 2010-12-31,85.0,2.993,91.45,218.4,215.275194818155,0.0
134
+ 2011-01-31,85.0,3.095,96.52,224.1,250.361686346119,0.0
135
+ 2011-02-28,88.0,3.211,103.72,231.6,280.787618727944,0.0
136
+ 2011-03-31,90.0,3.561,114.64,237.2,245.782276192328,0.0
137
+ 2011-04-30,96.0,3.8,123.26,244.3,265.492465821774,0.0
138
+ 2011-05-31,96.0,3.906,114.99,258.4,232.074008219104,0.0
139
+ 2011-06-30,93.0,3.68,113.83,255.4,223.802741515545,0.0
140
+ 2011-07-31,89.0,3.65,116.97,253.2,214.640164744945,0.0
141
+ 2011-08-31,89.0,3.639,110.22,248.9,212.113004249518,0.0
142
+ 2011-09-30,89.0,3.611,112.83,250.9,206.452812729631,0.0
143
+ 2011-10-31,84.0,3.448,109.55,242.5,184.20634848636,0.0
144
+ 2011-11-30,84.0,3.384,110.77,245.8,152.945049162992,0.0
145
+ 2011-12-31,89.0,3.266,107.87,240.0,153.517440215375,0.0
146
+ 2012-01-31,89.0,3.38,110.69,245.3,164.475176292465,0.0
147
+ 2012-02-29,92.0,3.579,119.33,249.3,181.551641984733,0.0
148
+ 2012-03-31,95.0,3.852,125.45,253.4,178.218715903215,0.0
149
+ 2012-04-30,95.0,3.9,119.75,253.5,174.404205713456,0.0
150
+ 2012-05-31,88.0,3.732,110.34,252.1,169.105621995462,0.0
151
+ 2012-06-30,81.0,3.539,95.16,248.7,145.091411931049,0.0
152
+ 2012-07-31,81.0,3.439,102.62,245.0,139.632391811906,0.0
153
+ 2012-08-31,86.0,3.722,113.36,246.4,126.692819537845,0.0
154
+ 2012-09-30,86.0,3.849,112.86,241.9,137.821937567472,0.0
155
+ 2012-10-31,86.0,3.746,111.71,245.5,145.329106397227,0.0
156
+ 2012-11-30,84.0,3.452,109.06,245.5,134.905011164865,0.0
157
+ 2012-12-31,84.0,3.31,109.49,244.7,141.053787047201,0.0
158
+ 2013-01-31,89.0,3.319,112.96,253.6,149.85060298992,0.0
159
+ 2013-02-28,93.0,3.67,116.05,258.4,144.509661024979,0.0
160
+ 2013-03-31,93.0,3.711,108.47,261.9,135.048216926273,0.0
161
+ 2013-04-30,93.0,3.57,102.25,260.2,130.03683999139,0.0
162
+ 2013-05-31,93.0,3.615,102.56,257.5,137.803685852783,0.0
163
+ 2013-06-30,95.0,3.626,102.92,258.7,127.468679409603,0.0
164
+ 2013-07-31,95.0,3.591,107.93,256.8,116.259806974523,225.7
165
+ 2013-08-31,95.0,3.574,111.28,258.1,116.525750469469,226.7
166
+ 2013-09-30,100.0,3.532,111.6,259.8,119.662129441593,229.1
167
+ 2013-10-31,100.0,3.344,109.08,260.2,114.963122896463,231.9
168
+ 2013-11-30,100.0,3.243,107.79,262.7,112.925194753356,231.9
169
+ 2013-12-31,100.0,3.276,110.76,262.6,116.050665895991,231.9
170
+ 2014-01-31,100.0,3.313,108.12,266.1,105.516510565907,231.9
171
+ 2014-02-28,104.0,3.356,108.9,269.4,97.2956790739447,234.0
172
+ 2014-03-31,104.0,3.533,107.48,271.9,103.477502439682,237.0
173
+ 2014-04-30,104.0,3.661,107.76,273.1,99.5787633847708,237.0
174
+ 2014-05-31,104.0,3.673,109.54,271.7,94.0184703032722,238.4
175
+ 2014-06-30,104.0,3.692,111.8,269.4,94.6475604693347,238.4
176
+ 2014-07-31,104.0,3.611,106.77,272.0,91.5742230571997,238.4
177
+ 2014-08-31,104.0,3.487,101.61,274.9,83.9125282793579,238.4
178
+ 2014-09-30,107.0,3.406,97.09,277.1,74.589230384787,238.4
179
+ 2014-10-31,107.0,3.171,87.43,279.7,73.4885312272799,240.9
180
+ 2014-11-30,104.0,2.912,79.44,275.3,74.2009960900291,240.7
181
+ 2014-12-31,100.0,2.543,62.34,265.4,72.715066954437,238.3
182
+ 2015-01-31,72.0,2.116,47.76,254.0,75.0264271868902,234.2
183
+ 2015-02-28,67.0,2.216,58.1,248.4,82.0272377502195,233.0
184
+ 2015-03-31,67.0,2.464,55.89,241.2,78.7169258606513,226.3
185
+ 2015-04-30,67.0,2.469,59.52,240.3,77.1259143677066,224.5
186
+ 2015-05-31,72.0,2.718,64.08,242.9,83.5472779889505,225.5
187
+ 2015-06-30,72.0,2.802,61.48,244.7,82.9794228656618,223.5
188
+ 2015-07-31,72.0,2.794,56.56,242.5,74.3665575019731,221.7
189
+ 2015-08-31,67.0,2.636,46.52,238.9,64.4340664508838,223.5
190
+ 2015-09-30,63.0,2.365,47.62,231.4,59.5136576825031,220.5
191
+ 2015-10-31,63.0,2.29,48.43,228.9,59.0041903737688,218.2
192
+ 2015-11-30,63.0,2.158,44.27,227.4,55.4403933557711,216.3
193
+ 2015-12-31,63.0,2.038,38.01,228.2,56.59327533392,216.3
194
+ 2016-01-31,60.0,1.949,30.7,224.8,55.3269951284122,213.9
195
+ 2016-02-29,58.0,1.764,32.18,223.4,57.0405020270829,211.5
196
+ 2016-03-31,63.0,1.969,38.21,222.6,65.639017567241,210.8
197
+ 2016-04-30,67.0,2.113,41.58,222.7,78.0374201190487,211.5
198
+ 2016-05-31,67.0,2.268,46.74,226.3,75.9184932421137,212.6
199
+ 2016-06-30,67.0,2.366,48.25,229.7,71.6965446941588,214.0
200
+ 2016-07-31,67.0,2.239,44.95,229.6,80.5036695666373,214.0
201
+ 2016-08-31,67.0,2.178,45.84,230.3,74.9789079297113,214.0
202
+ 2016-09-30,72.0,2.219,46.57,231.6,72.7822222683015,215.7
203
+ 2016-10-31,72.0,2.249,49.52,233.7,75.5988182392733,217.2
204
+ 2016-11-30,69.0,2.182,44.73,232.2,85.2692816160443,219.1
205
+ 2016-12-31,67.0,2.254,53.31,227.3,101.010820998846,218.5
206
+ 2017-01-31,67.0,2.349,54.58,229.3,115.897763023011,216.9
207
+ 2017-02-28,72.0,2.304,54.87,235.3,122.989449428927,218.0
208
+ 2017-03-31,75.0,2.325,51.59,240.8,107.351636661824,226.0
209
+ 2017-04-30,75.0,2.417,52.31,245.6,101.249099379342,228.5
210
+ 2017-05-31,72.0,2.391,50.33,245.8,98.6067785788373,229.7
211
+ 2017-06-30,72.0,2.347,46.37,244.5,79.7675530736104,228.5
212
+ 2017-07-31,72.0,2.3,48.48,241.4,79.3528395564121,225.4
213
+ 2017-08-31,75.0,2.38,51.7,240.8,83.1023445805132,225.4
214
+ 2017-09-30,77.0,2.645,56.15,244.3,83.6584082517622,226.1
215
+ 2017-10-31,80.5,2.505,57.51,249.4,73.6116493026981,232.6
216
+ 2017-11-30,82.0,2.564,62.71,251.6,70.2656652434845,235.0
217
+ 2017-12-31,82.0,2.477,64.37,253.2,73.6340049532346,236.9
218
+ 2018-01-31,79.0,2.555,69.08,247.0,76.8242063567335,239.0
219
+ 2018-02-28,83.0,2.587,65.32,247.3,78.4085743171663,236.8
220
+ 2018-03-31,83.0,2.591,66.02,252.0,78.1670180931732,238.1
221
+ 2018-04-30,83.0,2.757,72.11,248.9,77.7415047447978,239.7
222
+ 2018-05-31,83.0,2.901,76.98,254.3,76.1236900344774,236.2
223
+ 2018-06-30,83.0,2.891,74.41,257.4,70.0483530041459,235.7
224
+ 2018-07-31,83.0,2.849,74.25,257.7,66.1977615602277,234.2
225
+ 2018-08-31,83.0,2.836,72.53,262.7,66.5917590376227,234.2
226
+ 2018-09-30,86.0,2.836,78.89,260.3,64.9477007375421,230.7
227
+ 2018-10-31,86.0,2.86,81.03,260.8,64.4318867137904,233.7
228
+ 2018-11-30,83.0,2.647,64.75,254.6,61.0147262177998,233.7
229
+ 2018-12-31,80.0,2.366,57.36,248.7,64.4388411130883,224.9
230
+ 2019-01-31,80.0,2.248,59.41,242.7,71.8944761455489,223.8
231
+ 2019-02-28,80.0,2.309,63.96,241.3,73.9009577214054,223.7
232
+ 2019-03-31,80.0,2.516,66.14,239.7,77.7544645422103,223.7
233
+ 2019-04-30,83.0,2.798,71.23,239.2,77.6248665680858,224.4
234
+ 2019-05-31,83.0,2.859,71.32,241.7,81.5516851840572,221.4
235
+ 2019-06-30,83.0,2.716,64.22,238.2,89.9164386367575,222.7
236
+ 2019-07-31,80.0,2.74,63.92,237.2,79.7238841910249,222.0
237
+ 2019-08-31,77.0,2.621,59.04,237.1,67.7304932369297,220.9
238
+ 2019-09-30,80.0,2.592,62.83,237.6,68.1361348959393,220.9
239
+ 2019-10-31,80.0,2.627,59.71,238.7,65.121509293294,221.1
240
+ 2019-11-30,77.0,2.598,63.21,235.4,69.723710078964,219.7
241
+ 2019-12-31,77.0,2.555,67.31,229.5,74.949424390598,217.7
242
+ 2020-01-31,47.0,2.548,63.65,228.9,75.2125082780706,215.5
243
+ 2020-02-29,47.0,2.442,55.66,232.8,71.6608757971895,218.0
244
+ 2020-03-31,47.0,2.234,32.01,231.9,68.3729457395668,217.4
245
+ 2020-04-30,43.0,1.841,18.38,216.6,60.6993711474302,219.1
246
+ 2020-05-31,43.0,1.87,29.38,210.2,61.37364060725,214.1
247
+ 2020-06-30,47.0,2.082,40.27,212.1,64.7854381831213,211.7
248
+ 2020-07-31,52.0,2.183,43.24,217.3,67.9849372594608,216.5
249
+ 2020-08-31,57.0,2.182,44.74,225.1,79.9616260398618,214.3
250
+ 2020-09-30,62.0,2.183,40.91,226.0,89.3124438678774,220.9
251
+ 2020-10-31,62.0,2.158,40.19,238.2,101.520278489552,224.0
252
+ 2020-11-30,62.0,2.108,42.69,240.0,110.151798107092,222.4
253
+ 2020-12-31,67.0,2.195,49.99,246.3,107.745595720848,228.4
254
+ 2021-01-31,72.0,2.334,54.77,256.7,104.398944035707,229.2
255
+ 2021-02-28,79.0,2.501,62.28,271.7,105.246154792108,233.0
256
+ 2021-03-31,86.0,2.81,65.41,302.3,108.160215326471,242.9
257
+ 2021-04-30,93.0,2.858,64.81,321.8,99.3282073014635,247.4
258
+ 2021-05-31,98.0,2.985,68.53,329.8,105.414992152843,255.9
259
+ 2021-06-30,103.0,3.064,73.16,342.7,97.0688826192269,268.6
260
+ 2021-07-31,108.0,3.136,75.17,353.336,84.9233924775288,275.777
261
+ 2021-08-31,108.0,3.158,70.75,358.454,86.2496117460692,282.857
262
+ 2021-09-30,108.0,3.175,74.49,358.01,81.2240575782592,286.721
263
+ 2021-10-31,103.0,3.291,83.54,359.606,85.5368228883846,285.666
264
+ 2021-11-30,98.0,3.395,81.05,353.75,88.5024565295995,296.322
265
+ 2021-12-31,93.0,3.307,74.17,343.395,88.1867087380963,292.442
266
+ 2022-01-31,93.0,3.315,86.51,328.684,90.21055782856,285.039
267
+ 2022-02-28,93.0,3.517,97.13,328.986,96.8899654160606,284.688
268
+ 2022-03-31,97.0,4.222,117.25,328.095,98.3014720470411,288.808
269
+ 2022-04-30,97.0,4.109,104.58,343.327,97.0667226529915,291.62
270
+ 2022-05-31,100.0,4.444,113.34,349.319,96.0544839308527,291.348
271
+ 2022-06-30,100.0,4.929,122.71,352.112,94.0215629822002,304.147
272
+ 2022-07-31,97.0,4.559,111.93,342.621,82.938383507189,304.969
273
+ 2022-08-31,93.0,3.975,100.45,329.278,73.3045584509684,303.837
274
+ 2022-09-30,90.0,3.7,89.76,326.451,66.9564987905564,308.976
275
+ 2022-10-31,90.0,3.815,93.33,316.901,68.5357286494898,312.788
276
+ 2022-11-30,90.0,3.685,91.42,300.185,65.2658343099326,307.226
277
+ 2022-12-31,90.0,3.21,80.92,291.825,65.2658343099326,307.226
data/multivariate/demo_future.csv ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ datetime,weekday
2
+ 2023-01-31,1
3
+ 2023-02-28,1
4
+ 2023-03-31,4
5
+ 2023-04-30,6
data/multivariate/demo_historical.csv ADDED
@@ -0,0 +1,277 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ datetime,y,gas_regm,weekday
2
+ 2000-01-31,41.0,1.289,0
3
+ 2000-02-29,41.0,1.377,1
4
+ 2000-03-31,45.0,1.516,4
5
+ 2000-04-30,47.0,1.465,6
6
+ 2000-05-31,47.0,1.487,2
7
+ 2000-06-30,47.0,1.633,4
8
+ 2000-07-31,47.0,1.551,0
9
+ 2000-08-31,46.0,1.465,3
10
+ 2000-09-30,45.0,1.55,5
11
+ 2000-10-31,43.0,1.532,1
12
+ 2000-11-30,42.0,1.517,3
13
+ 2000-12-31,41.0,1.443,6
14
+ 2001-01-31,41.0,1.447,2
15
+ 2001-02-28,46.0,1.45,2
16
+ 2001-03-31,49.0,1.409,5
17
+ 2001-04-30,49.0,1.552,0
18
+ 2001-05-31,46.0,1.702,3
19
+ 2001-06-30,44.0,1.616,5
20
+ 2001-07-31,41.0,1.421,1
21
+ 2001-08-31,38.0,1.421,4
22
+ 2001-09-30,37.0,1.522,6
23
+ 2001-10-31,36.0,1.315,2
24
+ 2001-11-30,35.0,1.171,4
25
+ 2001-12-31,34.0,1.086,0
26
+ 2002-01-31,33.0,1.107,3
27
+ 2002-02-28,32.0,1.114,3
28
+ 2002-03-31,35.0,1.249,6
29
+ 2002-04-30,37.0,1.397,1
30
+ 2002-05-31,37.0,1.392,4
31
+ 2002-06-30,40.0,1.382,6
32
+ 2002-07-31,42.0,1.397,2
33
+ 2002-08-31,42.0,1.396,5
34
+ 2002-09-30,42.0,1.4,0
35
+ 2002-10-31,41.5,1.445,3
36
+ 2002-11-30,41.0,1.419,5
37
+ 2002-12-31,40.0,1.386,1
38
+ 2003-01-31,42.0,1.458,4
39
+ 2003-02-28,45.0,1.613,4
40
+ 2003-03-31,51.0,1.693,0
41
+ 2003-04-30,51.0,1.589,2
42
+ 2003-05-31,49.0,1.497,5
43
+ 2003-06-30,47.0,1.493,0
44
+ 2003-07-31,46.0,1.513,3
45
+ 2003-08-31,46.0,1.62,6
46
+ 2003-09-30,49.0,1.679,1
47
+ 2003-10-31,50.0,1.564,4
48
+ 2003-11-30,50.0,1.512,6
49
+ 2003-12-31,50.0,1.479,2
50
+ 2004-01-31,50.0,1.572,5
51
+ 2004-02-29,52.0,1.648,6
52
+ 2004-03-31,53.0,1.736,2
53
+ 2004-04-30,51.0,1.798,4
54
+ 2004-05-31,54.0,1.983,0
55
+ 2004-06-30,50.0,1.969,2
56
+ 2004-07-31,50.0,1.911,5
57
+ 2004-08-31,54.0,1.878,1
58
+ 2004-09-30,54.0,1.87,3
59
+ 2004-10-31,59.0,2.0,6
60
+ 2004-11-30,65.0,1.979,1
61
+ 2004-12-31,65.0,1.841,4
62
+ 2005-01-31,65.0,1.831,0
63
+ 2005-02-28,65.0,1.91,0
64
+ 2005-03-31,65.0,2.079,3
65
+ 2005-04-30,63.0,2.243,5
66
+ 2005-05-31,59.0,2.161,1
67
+ 2005-06-30,55.0,2.156,3
68
+ 2005-07-31,55.0,2.29,6
69
+ 2005-08-31,61.0,2.486,2
70
+ 2005-09-30,70.5,2.903,4
71
+ 2005-10-31,79.0,2.717,0
72
+ 2005-11-30,87.0,2.257,2
73
+ 2005-12-31,83.0,2.185,5
74
+ 2006-01-31,79.0,2.316,1
75
+ 2006-02-28,75.0,2.28,1
76
+ 2006-03-31,71.0,2.425,4
77
+ 2006-04-30,67.0,2.742,6
78
+ 2006-05-31,70.0,2.907,2
79
+ 2006-06-30,73.0,2.885,4
80
+ 2006-07-31,73.0,2.981,0
81
+ 2006-08-31,78.0,2.952,3
82
+ 2006-09-30,76.0,2.555,5
83
+ 2006-10-31,70.0,2.245,1
84
+ 2006-11-30,64.0,2.229,3
85
+ 2006-12-31,61.0,2.313,6
86
+ 2007-01-31,61.0,2.24,2
87
+ 2007-02-28,64.0,2.278,2
88
+ 2007-03-31,67.0,2.563,5
89
+ 2007-04-30,67.0,2.845,0
90
+ 2007-05-31,71.0,3.146,3
91
+ 2007-06-30,71.0,3.056,5
92
+ 2007-07-31,76.0,2.965,1
93
+ 2007-08-31,76.0,2.786,4
94
+ 2007-09-30,76.0,2.803,6
95
+ 2007-10-31,80.0,2.803,2
96
+ 2007-11-30,85.0,3.08,4
97
+ 2007-12-31,85.0,3.018,0
98
+ 2008-01-31,85.0,3.043,3
99
+ 2008-02-29,85.0,3.028,4
100
+ 2008-03-31,85.0,3.244,0
101
+ 2008-04-30,88.0,3.458,2
102
+ 2008-05-31,91.0,3.766,5
103
+ 2008-06-30,96.0,4.054,0
104
+ 2008-07-31,103.0,4.062,3
105
+ 2008-08-31,103.0,3.779,6
106
+ 2008-09-30,96.0,3.703,1
107
+ 2008-10-31,85.0,3.051,4
108
+ 2008-11-30,65.0,2.147,6
109
+ 2008-12-31,55.0,1.687,2
110
+ 2009-01-31,55.0,1.788,5
111
+ 2009-02-28,62.0,1.923,5
112
+ 2009-03-31,62.0,1.959,1
113
+ 2009-04-30,62.0,2.049,3
114
+ 2009-05-31,65.0,2.266,6
115
+ 2009-06-30,68.0,2.631,1
116
+ 2009-07-31,68.0,2.527,4
117
+ 2009-08-31,68.0,2.616,0
118
+ 2009-09-30,72.0,2.554,2
119
+ 2009-10-31,72.0,2.551,5
120
+ 2009-11-30,72.0,2.651,0
121
+ 2009-12-31,72.0,2.607,3
122
+ 2010-01-31,76.0,2.715,6
123
+ 2010-02-28,84.0,2.644,6
124
+ 2010-03-31,90.0,2.772,2
125
+ 2010-04-30,90.0,2.848,4
126
+ 2010-05-31,84.0,2.836,0
127
+ 2010-06-30,78.0,2.732,2
128
+ 2010-07-31,76.0,2.729,5
129
+ 2010-08-31,76.0,2.73,1
130
+ 2010-09-30,81.0,2.705,3
131
+ 2010-10-31,81.0,2.801,6
132
+ 2010-11-30,85.0,2.859,1
133
+ 2010-12-31,85.0,2.993,4
134
+ 2011-01-31,85.0,3.095,0
135
+ 2011-02-28,88.0,3.211,0
136
+ 2011-03-31,90.0,3.561,3
137
+ 2011-04-30,96.0,3.8,5
138
+ 2011-05-31,96.0,3.906,1
139
+ 2011-06-30,93.0,3.68,3
140
+ 2011-07-31,89.0,3.65,6
141
+ 2011-08-31,89.0,3.639,2
142
+ 2011-09-30,89.0,3.611,4
143
+ 2011-10-31,84.0,3.448,0
144
+ 2011-11-30,84.0,3.384,2
145
+ 2011-12-31,89.0,3.266,5
146
+ 2012-01-31,89.0,3.38,1
147
+ 2012-02-29,92.0,3.579,2
148
+ 2012-03-31,95.0,3.852,5
149
+ 2012-04-30,95.0,3.9,0
150
+ 2012-05-31,88.0,3.732,3
151
+ 2012-06-30,81.0,3.539,5
152
+ 2012-07-31,81.0,3.439,1
153
+ 2012-08-31,86.0,3.722,4
154
+ 2012-09-30,86.0,3.849,6
155
+ 2012-10-31,86.0,3.746,2
156
+ 2012-11-30,84.0,3.452,4
157
+ 2012-12-31,84.0,3.31,0
158
+ 2013-01-31,89.0,3.319,3
159
+ 2013-02-28,93.0,3.67,3
160
+ 2013-03-31,93.0,3.711,6
161
+ 2013-04-30,93.0,3.57,1
162
+ 2013-05-31,93.0,3.615,4
163
+ 2013-06-30,95.0,3.626,6
164
+ 2013-07-31,95.0,3.591,2
165
+ 2013-08-31,95.0,3.574,5
166
+ 2013-09-30,100.0,3.532,0
167
+ 2013-10-31,100.0,3.344,3
168
+ 2013-11-30,100.0,3.243,5
169
+ 2013-12-31,100.0,3.276,1
170
+ 2014-01-31,100.0,3.313,4
171
+ 2014-02-28,104.0,3.356,4
172
+ 2014-03-31,104.0,3.533,0
173
+ 2014-04-30,104.0,3.661,2
174
+ 2014-05-31,104.0,3.673,5
175
+ 2014-06-30,104.0,3.692,0
176
+ 2014-07-31,104.0,3.611,3
177
+ 2014-08-31,104.0,3.487,6
178
+ 2014-09-30,107.0,3.406,1
179
+ 2014-10-31,107.0,3.171,4
180
+ 2014-11-30,104.0,2.912,6
181
+ 2014-12-31,100.0,2.543,2
182
+ 2015-01-31,72.0,2.116,5
183
+ 2015-02-28,67.0,2.216,5
184
+ 2015-03-31,67.0,2.464,1
185
+ 2015-04-30,67.0,2.469,3
186
+ 2015-05-31,72.0,2.718,6
187
+ 2015-06-30,72.0,2.802,1
188
+ 2015-07-31,72.0,2.794,4
189
+ 2015-08-31,67.0,2.636,0
190
+ 2015-09-30,63.0,2.365,2
191
+ 2015-10-31,63.0,2.29,5
192
+ 2015-11-30,63.0,2.158,0
193
+ 2015-12-31,63.0,2.038,3
194
+ 2016-01-31,60.0,1.949,6
195
+ 2016-02-29,58.0,1.764,0
196
+ 2016-03-31,63.0,1.969,3
197
+ 2016-04-30,67.0,2.113,5
198
+ 2016-05-31,67.0,2.268,1
199
+ 2016-06-30,67.0,2.366,3
200
+ 2016-07-31,67.0,2.239,6
201
+ 2016-08-31,67.0,2.178,2
202
+ 2016-09-30,72.0,2.219,4
203
+ 2016-10-31,72.0,2.249,0
204
+ 2016-11-30,69.0,2.182,2
205
+ 2016-12-31,67.0,2.254,5
206
+ 2017-01-31,67.0,2.349,1
207
+ 2017-02-28,72.0,2.304,1
208
+ 2017-03-31,75.0,2.325,4
209
+ 2017-04-30,75.0,2.417,6
210
+ 2017-05-31,72.0,2.391,2
211
+ 2017-06-30,72.0,2.347,4
212
+ 2017-07-31,72.0,2.3,0
213
+ 2017-08-31,75.0,2.38,3
214
+ 2017-09-30,77.0,2.645,5
215
+ 2017-10-31,80.5,2.505,1
216
+ 2017-11-30,82.0,2.564,3
217
+ 2017-12-31,82.0,2.477,6
218
+ 2018-01-31,79.0,2.555,2
219
+ 2018-02-28,83.0,2.587,2
220
+ 2018-03-31,83.0,2.591,5
221
+ 2018-04-30,83.0,2.757,0
222
+ 2018-05-31,83.0,2.901,3
223
+ 2018-06-30,83.0,2.891,5
224
+ 2018-07-31,83.0,2.849,1
225
+ 2018-08-31,83.0,2.836,4
226
+ 2018-09-30,86.0,2.836,6
227
+ 2018-10-31,86.0,2.86,2
228
+ 2018-11-30,83.0,2.647,4
229
+ 2018-12-31,80.0,2.366,0
230
+ 2019-01-31,80.0,2.248,3
231
+ 2019-02-28,80.0,2.309,3
232
+ 2019-03-31,80.0,2.516,6
233
+ 2019-04-30,83.0,2.798,1
234
+ 2019-05-31,83.0,2.859,4
235
+ 2019-06-30,83.0,2.716,6
236
+ 2019-07-31,80.0,2.74,2
237
+ 2019-08-31,77.0,2.621,5
238
+ 2019-09-30,80.0,2.592,0
239
+ 2019-10-31,80.0,2.627,3
240
+ 2019-11-30,77.0,2.598,5
241
+ 2019-12-31,77.0,2.555,1
242
+ 2020-01-31,47.0,2.548,4
243
+ 2020-02-29,47.0,2.442,5
244
+ 2020-03-31,47.0,2.234,1
245
+ 2020-04-30,43.0,1.841,3
246
+ 2020-05-31,43.0,1.87,6
247
+ 2020-06-30,47.0,2.082,1
248
+ 2020-07-31,52.0,2.183,4
249
+ 2020-08-31,57.0,2.182,0
250
+ 2020-09-30,62.0,2.183,2
251
+ 2020-10-31,62.0,2.158,5
252
+ 2020-11-30,62.0,2.108,0
253
+ 2020-12-31,67.0,2.195,3
254
+ 2021-01-31,72.0,2.334,6
255
+ 2021-02-28,79.0,2.501,6
256
+ 2021-03-31,86.0,2.81,2
257
+ 2021-04-30,93.0,2.858,4
258
+ 2021-05-31,98.0,2.985,0
259
+ 2021-06-30,103.0,3.064,2
260
+ 2021-07-31,108.0,3.136,5
261
+ 2021-08-31,108.0,3.158,1
262
+ 2021-09-30,108.0,3.175,3
263
+ 2021-10-31,103.0,3.291,6
264
+ 2021-11-30,98.0,3.395,1
265
+ 2021-12-31,93.0,3.307,4
266
+ 2022-01-31,93.0,3.315,0
267
+ 2022-02-28,93.0,3.517,0
268
+ 2022-03-31,97.0,4.222,3
269
+ 2022-04-30,97.0,4.109,5
270
+ 2022-05-31,100.0,4.444,1
271
+ 2022-06-30,100.0,4.929,3
272
+ 2022-07-31,97.0,4.559,6
273
+ 2022-08-31,93.0,3.975,2
274
+ 2022-09-30,90.0,3.7,4
275
+ 2022-10-31,90.0,3.815,0
276
+ 2022-11-30,90.0,3.685,2
277
+ 2022-12-31,90.0,3.21,5
data/multivariate/resource.md ADDED
@@ -0,0 +1 @@
 
 
1
+ data source: https://www.kaggle.com/datasets/baravindkumar/predicting-the-price-of-blow-mold-timeseries-multi
demo.py CHANGED
@@ -43,7 +43,7 @@ with demo:
43
 
44
  df_ts_data = gr.DataFrame(**args.df_ts_data)
45
 
46
- with gr.Accordion('Data Visualisation', open=False):
47
  dropdown_ts_data = gr.Dropdown(**args.dropdown_ts_data)
48
  plot_ts_data = gr.Plot()
49
  pass
@@ -70,9 +70,16 @@ with demo:
70
 
71
  df_model_data = gr.DataFrame()
72
  file_model_data = gr.File()
73
-
 
 
 
 
 
 
 
74
  gr.HTML('<hr style="border:2px solid gray">')
75
-
76
  gr.Markdown('# Step 3 - Forecasting')
77
 
78
  with gr.Row():
@@ -90,10 +97,10 @@ with demo:
90
 
91
  btn_load_demo_result = gr.Button('Load Demo Result')
92
 
93
- df_forecast = gr.DataFrame(**args.df_forecast)
94
  file_forecast = gr.File()
95
 
96
- with gr.Accordion('Data Visualisation', open=False):
97
  dropdown_forecast = gr.Dropdown(**args.dropdown_forecast)
98
  plot_forecast = gr.Plot()
99
 
@@ -132,7 +139,11 @@ with demo:
132
 
133
  btn_model_selection.click(
134
  app.btn_model_selection__click,
135
- [], [df_model_data, file_model_data])
 
 
 
 
136
 
137
  btn_forecast.click(
138
  app.btn_forecast__click,
@@ -166,5 +177,10 @@ with demo:
166
  [plot_forecast]
167
  )
168
 
 
 
 
 
 
169
 
170
  demo.launch()
 
43
 
44
  df_ts_data = gr.DataFrame(**args.df_ts_data)
45
 
46
+ with gr.Accordion('Input Data Visualisation', open=False):
47
  dropdown_ts_data = gr.Dropdown(**args.dropdown_ts_data)
48
  plot_ts_data = gr.Plot()
49
  pass
 
70
 
71
  df_model_data = gr.DataFrame()
72
  file_model_data = gr.File()
73
+
74
+ accordion_model_selection = gr.Accordion(
75
+ 'Model Selection Visualisation', open=False, visible=False)
76
+
77
+ with accordion_model_selection:
78
+ dropdown_model_selection = gr.Dropdown(**args.dropdown_model_selection)
79
+ plot_model_selection = gr.Plot()
80
+
81
  gr.HTML('<hr style="border:2px solid gray">')
82
+
83
  gr.Markdown('# Step 3 - Forecasting')
84
 
85
  with gr.Row():
 
97
 
98
  btn_load_demo_result = gr.Button('Load Demo Result')
99
 
100
+ df_forecast = gr.Dataframe(**args.df_forecast)
101
  file_forecast = gr.File()
102
 
103
+ with gr.Accordion('Forecasting Result Visualisation', open=False):
104
  dropdown_forecast = gr.Dropdown(**args.dropdown_forecast)
105
  plot_forecast = gr.Plot()
106
 
 
139
 
140
  btn_model_selection.click(
141
  app.btn_model_selection__click,
142
+ [],
143
+ [df_model_data,
144
+ file_model_data,
145
+ accordion_model_selection,
146
+ dropdown_model_selection])
147
 
148
  btn_forecast.click(
149
  app.btn_forecast__click,
 
177
  [plot_forecast]
178
  )
179
 
180
+ dropdown_model_selection.select(
181
+ app.dropdown_model_selection__select,
182
+ [dropdown_model_selection],
183
+ [plot_model_selection])
184
+
185
 
186
  demo.launch()
demo2.py ADDED
@@ -0,0 +1,275 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+
3
+ import gradio as gr
4
+ from gr_app2 import args, GradioApp
5
+
6
+ demo = gr.Blocks(**args.block)
7
+
8
+ with demo:
9
+ app = GradioApp()
10
+
11
+ md__title = gr.Markdown(**args.md__title)
12
+
13
+ with gr.Row():
14
+ with gr.Column():
15
+ file__historical = gr.File(**args.file__historical)
16
+
17
+ with gr.Column():
18
+ file__future = gr.File(**args.file__future)
19
+ md__future = gr.Markdown(**args.md__future)
20
+
21
+ with gr.Row():
22
+ btn__load_historical_demo = gr.Button("Load Demo Historical Data")
23
+ btn__load_future_demo = gr.Button("Load Demo Future Data")
24
+
25
+ with gr.Row():
26
+ number__n_predict = gr.Number(
27
+ value=app.n_predict,
28
+ **args.number__n_predict)
29
+
30
+ number__window_length = gr.Number(
31
+ value=app.window_length,
32
+ **args.number__window_length
33
+ )
34
+
35
+ textbox__target_column = gr.Textbox(
36
+ value=app.target_column,
37
+ **args.textbox__target_column
38
+ )
39
+
40
+ number__n_predict.change(
41
+ app.number__n_predict__change,
42
+ [number__n_predict]
43
+ )
44
+
45
+ number__window_length.change(
46
+ app.number__window_length__change,
47
+ [number__window_length]
48
+ )
49
+
50
+ textbox__target_column.change(
51
+ app.textbox__target_column__change,
52
+ [textbox__target_column]
53
+ )
54
+
55
+ # ---------- #
56
+ # Data Views #
57
+ # ---------- #
58
+
59
+ with gr.Tabs():
60
+ with gr.Tab('Table View'):
61
+ df__table_view = gr.Dataframe(**args.df__table_view)
62
+
63
+ with gr.Tab('Chart View'):
64
+ dropdown__chart_view_filter = gr.Dropdown(
65
+ multiselect=True,
66
+ label='Filter')
67
+ plot__chart_view = gr.Plot()
68
+
69
+ with gr.Tab('Seasonality and Auto Correlation'):
70
+ dropdown__seasonality_decompose = gr.Dropdown(
71
+ label='Please select column to decompose')
72
+
73
+ with gr.Row():
74
+ plot__seasonality_decompose = gr.Plot()
75
+ plot_acg_pacf = gr.Plot()
76
+
77
+ with gr.Tab('Correlations'):
78
+ btn__plot_correlation = gr.Button('Plot Correlations')
79
+ plot__correlation = gr.Plot()
80
+
81
+ btn__plot_correlation.click(
82
+ app.btn__plot_correlation__click,
83
+ [],
84
+ [plot__correlation]
85
+ )
86
+
87
+ with gr.Tab("Data Profile"):
88
+ btn__profiling = gr.Button('Profile Data')
89
+ md__profiling = gr.Markdown()
90
+ plot__change_points = gr.Plot()
91
+
92
+ dropdown__seasonality_decompose.change(
93
+ app.dropdown__seasonality_decompose__change,
94
+ [dropdown__seasonality_decompose],
95
+ [plot__seasonality_decompose,
96
+ plot_acg_pacf]
97
+ )
98
+
99
+ btn__profiling.click(
100
+ app.btn__profiling__click,
101
+ [],
102
+ [md__profiling,
103
+ plot__change_points]
104
+ )
105
+
106
+ # ---------------------- #
107
+ # Fit data to forecaster #
108
+ # ---------------------- #
109
+
110
+ btn__fit_data = gr.Button(**args.btn__fit_data)
111
+
112
+ # =========== #
113
+ # Forecasting #
114
+ # =========== #
115
+
116
+ column__models = gr.Column(visible=True)
117
+
118
+ with column__models:
119
+ md__fit_ready = gr.Markdown(**args.md__fit_ready)
120
+
121
+ md__forecast_data_info = gr.Markdown()
122
+
123
+ # ------------- #
124
+ # Model Configs #
125
+ # ------------- #
126
+
127
+ with gr.Row():
128
+ checkbox__round_results = gr.Checkbox(
129
+ app.round_results,
130
+ label='Round Results',
131
+ interactive=True)
132
+
133
+ checkbox__round_results.change(
134
+ app.checkbox__round_results__change,
135
+ [checkbox__round_results],
136
+ []
137
+ )
138
+
139
+ gr.Markdown('## Models')
140
+ # ------- #
141
+ # XGBoost #
142
+ # ------- #
143
+ with gr.Tab('XGBoost'):
144
+
145
+ with gr.Row():
146
+ checkbox__xgboost_cv = gr.Checkbox(
147
+ app.xgboost_cv, label='Cross Validation')
148
+ checkbox__xgboost_round = gr.Checkbox(
149
+ app.xgboost.round_result,
150
+ label='Round Result',
151
+ interactive=True)
152
+
153
+ checkbox__xgboost_round.change(
154
+ app.checkbox__xgboost_round__change,
155
+ [checkbox__xgboost_round],
156
+ []
157
+ )
158
+
159
+ with gr.Row():
160
+ with gr.Column():
161
+ textbox__xgboost_params = gr.Textbox(
162
+ interactive=True,
163
+ value=app.xgboost_params)
164
+
165
+ btn__set_xgboost_params = gr.Button("Set Params")
166
+
167
+ json_xgboost_params = gr.JSON(
168
+ value=app.xgboost_params,
169
+ **args.json_xgboost_params)
170
+
171
+ btn__set_xgboost_params.click(
172
+ app.btn__set_xgboost_params__click,
173
+ [textbox__xgboost_params],
174
+ [json_xgboost_params])
175
+
176
+ btn__train_xgboost = gr.Button("Forecast with XGBoost Model")
177
+
178
+ plot__xgboost_result = gr.Plot()
179
+
180
+ with gr.Row():
181
+ df__xgboost_result = gr.Dataframe()
182
+ file__xgboost_result = gr.File()
183
+
184
+ btn__train_xgboost.click(
185
+ app.btn__train_xgboost__click,
186
+ [],
187
+ [plot__xgboost_result,
188
+ file__xgboost_result,
189
+ df__xgboost_result])
190
+
191
+ # ------- #
192
+ # Prophet #
193
+ # ------- #
194
+ with gr.Tab('Prophet'):
195
+ gr.Markdown('Prophet')
196
+
197
+ btn__forecast_with_prophet = gr.Button(
198
+ **args.btn__forecast_with_prophet)
199
+
200
+ plot__prophet_result = gr.Plot()
201
+
202
+ with gr.Row():
203
+ df__prophet_result = gr.DataFrame()
204
+ file__prophet_result = gr.File()
205
+
206
+ btn__forecast_with_prophet.click(
207
+ app.btn__forecast_with_prophet__click,
208
+ [],
209
+ [plot__prophet_result,
210
+ file__prophet_result,
211
+ df__prophet_result]
212
+ )
213
+
214
+ # --------- #
215
+ # Operators #
216
+ # --------- #
217
+
218
+ file__historical.upload(
219
+ app.file__historical__upload,
220
+ [file__historical],
221
+ [df__table_view,
222
+ dropdown__chart_view_filter,
223
+ dropdown__seasonality_decompose,
224
+ plot__chart_view])
225
+
226
+ file__future.upload(
227
+ app.file__future__upload,
228
+ [file__future],
229
+ [df__table_view,
230
+ dropdown__chart_view_filter,
231
+ dropdown__seasonality_decompose,
232
+ plot__chart_view,
233
+ number__n_predict])
234
+
235
+ btn__fit_data.click(
236
+ app.btn__fit_data__click,
237
+ [],
238
+ [
239
+ number__n_predict,
240
+ number__window_length,
241
+ file__historical,
242
+ file__future,
243
+ btn__fit_data,
244
+ column__models,
245
+ btn__load_historical_demo,
246
+ btn__load_future_demo,
247
+ md__forecast_data_info,
248
+ ])
249
+
250
+ btn__load_historical_demo.click(
251
+ app.btn__load_historical_demo__click,
252
+ [],
253
+ [df__table_view,
254
+ dropdown__chart_view_filter,
255
+ dropdown__seasonality_decompose,
256
+ plot__chart_view,]
257
+ )
258
+
259
+ btn__load_future_demo.click(
260
+ app.btn__load_future_demo__click,
261
+ [],
262
+ [df__table_view,
263
+ dropdown__chart_view_filter,
264
+ dropdown__seasonality_decompose,
265
+ plot__chart_view,
266
+ number__n_predict]
267
+ )
268
+
269
+ dropdown__chart_view_filter.change(
270
+ app.dropdown__chart_view_filter__change,
271
+ [dropdown__chart_view_filter],
272
+ [plot__chart_view]
273
+ )
274
+
275
+ demo.launch()
forecast_result.csv CHANGED
@@ -1,61 +1,13 @@
1
  datetime,y,sku
2
- 2023-04-23,20,sku-0
3
- 2023-04-30,19,sku-0
4
- 2023-05-07,25,sku-0
5
- 2023-05-14,27,sku-0
6
- 2023-05-21,20,sku-0
7
- 2023-05-28,21,sku-0
8
- 2023-06-04,27,sku-0
9
- 2023-06-11,27,sku-0
10
- 2023-06-18,27,sku-0
11
- 2023-06-25,27,sku-0
12
- 2023-07-02,27,sku-0
13
- 2023-07-09,27,sku-0
14
- 2023-07-16,27,sku-0
15
- 2023-07-23,27,sku-0
16
- 2023-07-30,27,sku-0
17
- 2023-04-09,77,sku-1
18
- 2023-04-16,78,sku-1
19
- 2023-04-23,78,sku-1
20
- 2023-04-30,79,sku-1
21
- 2023-05-07,80,sku-1
22
- 2023-05-14,80,sku-1
23
- 2023-05-21,81,sku-1
24
- 2023-05-28,82,sku-1
25
- 2023-06-04,82,sku-1
26
- 2023-06-11,83,sku-1
27
- 2023-06-18,84,sku-1
28
- 2023-06-25,84,sku-1
29
- 2023-07-02,85,sku-1
30
- 2023-07-09,86,sku-1
31
- 2023-07-16,86,sku-1
32
- 2022-12-04,0,sku-2
33
- 2022-12-11,46,sku-2
34
- 2022-12-18,0,sku-2
35
- 2022-12-25,46,sku-2
36
- 2023-01-01,0,sku-2
37
- 2023-01-08,53,sku-2
38
- 2023-01-15,0,sku-2
39
- 2023-01-22,46,sku-2
40
- 2023-01-29,0,sku-2
41
- 2023-02-05,46,sku-2
42
- 2023-02-12,48,sku-2
43
- 2023-02-19,0,sku-2
44
- 2023-02-26,50,sku-2
45
- 2023-03-05,0,sku-2
46
- 2023-03-12,49,sku-2
47
- 2023-04-23,0,sku-3
48
- 2023-04-30,0,sku-3
49
- 2023-05-07,17,sku-3
50
- 2023-05-14,0,sku-3
51
- 2023-05-21,0,sku-3
52
- 2023-05-28,20,sku-3
53
- 2023-06-04,0,sku-3
54
- 2023-06-11,18,sku-3
55
- 2023-06-18,0,sku-3
56
- 2023-06-25,0,sku-3
57
- 2023-07-02,19,sku-3
58
- 2023-07-09,0,sku-3
59
- 2023-07-16,0,sku-3
60
- 2023-07-23,19,sku-3
61
- 2023-07-30,0,sku-3
 
1
  datetime,y,sku
2
+ 2022-12-01,1261.881563271306,Item_A
3
+ 2023-01-01,1238.1241261473267,Item_A
4
+ 2022-12-01,67.98226881358575,Item_B
5
+ 2023-01-01,54.089203200916906,Item_B
6
+ 2023-01-01,189.0,Item_C
7
+ 2023-02-01,89.0,Item_C
8
+ 2022-12-01,574.0,Item_D
9
+ 2023-01-01,590.0,Item_D
10
+ 2022-12-01,562.7574409930887,Item_E
11
+ 2023-01-01,392.3652129393938,Item_E
12
+ 2022-12-04,0.0,Item_F
13
+ 2022-12-11,0.0,Item_F
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
gr_app/GradioApp.py CHANGED
@@ -31,14 +31,28 @@ class GradioApp():
31
  'sku': self.skus,
32
  'best_model': '',
33
  'characteristic': '',
34
- # 'RMSE': ''
 
 
35
  }
36
  )
 
37
 
38
  def __set_forecast(self, forecast: pd.DataFrame):
 
39
  self.forecast = forecast.set_index('datetime')
40
  self.forecast.index = pd.to_datetime(self.forecast.index)
41
 
 
 
 
 
 
 
 
 
 
 
42
  def __set_model(self, model_df):
43
  if (self.skus is None):
44
  raise gr.Error(
@@ -96,9 +110,12 @@ class GradioApp():
96
 
97
  def btn_model_selection__click(self):
98
  print('btn_model_selection__click')
 
 
 
99
  for sku in self.skus:
100
  print('Selecting model ', sku)
101
- data = self.ts_data[self.ts_data['sku'] == sku]
102
 
103
  # ----------------- #
104
  # Feature Selection #
@@ -111,11 +128,28 @@ class GradioApp():
111
 
112
  self.model_data.loc[self.model_data['sku'] ==
113
  sku, 'best_model'] = res['forecast'][0]['model']
114
- # self.model_data.loc[self.model_data['sku'] ==
115
- # sku, 'RMSE'] = round(res['forecast'][0]['RMSE'], 2)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116
 
117
  return (self.update__df_model_data(),
118
- self.update__file_model_data())
 
 
119
 
120
  def slider_forecast_horizon__update(self, slider):
121
  # print('slider_forecast_horizon__update ', slider)
@@ -148,12 +182,13 @@ class GradioApp():
148
  print(model, characteristic)
149
  res = self.forecaster.forecast(
150
  data, self.forecast_horizon, model=model, run_test=False, characteristic=characteristic)
 
151
  forecast = pd.DataFrame(
152
  res['forecast'][0]['forecast'], columns=['datetime', 'y'])
153
  forecast['sku'] = sku
154
  forecasts.append(forecast)
155
 
156
- self.forecast = self.__set_forecast(pd.concat(forecasts))
157
 
158
  return (self.update__df_forecast(),
159
  self.update__file_forecast(),
@@ -168,22 +203,27 @@ class GradioApp():
168
  def dropdown_forecast__select(self, sku):
169
  return self.update__plot_forecast(sku)
170
 
 
 
 
171
  # ======== #
172
  # Updaters #
173
  # ======== #
174
 
175
  def update__file_model_data(self):
176
  self.model_data.to_csv('./best_models.csv', index=False)
177
- return gr.File.update(value='./best_models.csv')
178
 
179
  def update__df_model_data(self):
180
- return gr.DataFrame.update(value=self.model_data)
181
 
182
  def update__df_ts_data(self):
183
- return gr.DataFrame.update(value=reset_index(self.ts_data))
184
 
185
  def update__df_forecast(self):
186
- return gr.DataFrame.update(reset_index(self.forecast))
 
 
187
 
188
  def update__slider_forecast_horizon(self):
189
  skus = self.skus
@@ -195,27 +235,30 @@ class GradioApp():
195
  # max_horizon = int(
196
  # self.ts_data[self.ts_data['sku'] == sku].shape[0] * 0.2)
197
 
198
- return gr.Slider.update(maximum=max_horizon)
199
 
200
  def update__file_forecast(self):
201
  reset_index(self.forecast).to_csv('./forecast_result.csv', index=False)
202
- return gr.File.update(value='./forecast_result.csv')
203
 
204
  def update__md_ts_data_info(self):
205
  md = f'''
206
  ### Data Description
207
- Columns: {self.ts_data.columns.tolist()}
208
- Size: {[str(sku) + ' - ' + str(self.ts_data[self.ts_data["sku"] == sku].shape[0]) for sku in self.skus]}
209
  '''
210
- return gr.Markdown.update(md)
211
 
212
  def update__dropdown_ts_data(self):
213
  # print(type(self.skus))
214
- return gr.Dropdown.update(choices=self.skus)
215
 
216
  def update__dropdown_forecast(self):
217
  skus = self.forecast['sku'].unique().tolist()
218
- return gr.Dropdown.update(choices=skus)
 
 
 
219
 
220
  def update__plot_ts_data(self, skus):
221
  # print('update__plot_ts_data')
@@ -227,17 +270,58 @@ class GradioApp():
227
  ax.legend(loc='upper left')
228
  fig.tight_layout()
229
 
230
- return gr.Plot.update(fig)
231
 
232
  def update__plot_forecast(self, sku):
233
  fig, ax = plt.subplots(figsize=(12, 4))
234
 
235
- ax.plot(self.ts_data[self.ts_data['sku'] == sku]['y'],
236
- label=f'{sku} - historical')
 
 
 
 
 
 
 
 
 
 
 
 
 
 
237
  ax.plot(self.forecast[self.forecast['sku']
238
  == sku]['y'], label=f'{sku} - forecast')
239
 
240
  ax.legend(loc='upper left')
241
  fig.tight_layout()
242
 
243
- return gr.Plot.update(fig)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  'sku': self.skus,
32
  'best_model': '',
33
  'characteristic': '',
34
+ 'predictability': '',
35
+ 'RMSE': '',
36
+ 'Intermittent Scores':''
37
  }
38
  )
39
+ print('[__set_ts_data] End')
40
 
41
  def __set_forecast(self, forecast: pd.DataFrame):
42
+ print('__set_forecast')
43
  self.forecast = forecast.set_index('datetime')
44
  self.forecast.index = pd.to_datetime(self.forecast.index)
45
 
46
+ def __set_model_selection_res(self, model_selection_reses: pd.DataFrame):
47
+ '''
48
+ self.model_selection_res will be identical to self.forecast
49
+ keep tracking on this just to visualize the model selection result
50
+ '''
51
+ print('__set_model_selection_res')
52
+ self.model_selection_res = model_selection_reses
53
+ # self.model_selection_res = pd.to_datetime(
54
+ # self.model_selection_res.index)
55
+
56
  def __set_model(self, model_df):
57
  if (self.skus is None):
58
  raise gr.Error(
 
110
 
111
  def btn_model_selection__click(self):
112
  print('btn_model_selection__click')
113
+ ts_data = reset_index(self.ts_data)
114
+
115
+ model_selection_reses = []
116
  for sku in self.skus:
117
  print('Selecting model ', sku)
118
+ data = ts_data[ts_data['sku'] == sku]
119
 
120
  # ----------------- #
121
  # Feature Selection #
 
128
 
129
  self.model_data.loc[self.model_data['sku'] ==
130
  sku, 'best_model'] = res['forecast'][0]['model']
131
+
132
+ self.model_data.loc[self.model_data['sku'] ==
133
+ sku, 'predictability'] = res['predictability']
134
+
135
+ self.model_data.loc[self.model_data['sku'] ==
136
+ sku, 'RMSE'] = round(res['forecast'][0]['RMSE'], 2)
137
+
138
+ self.model_data.loc[self.model_data['sku'] ==
139
+ sku, 'Intermittent Scores'] = str(res['forecast'][0]['interm_scores'])
140
+
141
+ model_selection_res = res['forecast'][0]['test'].drop(
142
+ columns='truth').rename(columns={'test': 'y'})
143
+
144
+ model_selection_res['sku'] = sku
145
+ model_selection_reses.append(model_selection_res)
146
+
147
+ self.__set_model_selection_res(pd.concat(model_selection_reses))
148
 
149
  return (self.update__df_model_data(),
150
+ self.update__file_model_data(),
151
+ self.update__accordion_model_selection(),
152
+ self.update__dropdown_model_selection())
153
 
154
  def slider_forecast_horizon__update(self, slider):
155
  # print('slider_forecast_horizon__update ', slider)
 
182
  print(model, characteristic)
183
  res = self.forecaster.forecast(
184
  data, self.forecast_horizon, model=model, run_test=False, characteristic=characteristic)
185
+ print(res)
186
  forecast = pd.DataFrame(
187
  res['forecast'][0]['forecast'], columns=['datetime', 'y'])
188
  forecast['sku'] = sku
189
  forecasts.append(forecast)
190
 
191
+ self.__set_forecast(pd.concat(forecasts))
192
 
193
  return (self.update__df_forecast(),
194
  self.update__file_forecast(),
 
203
  def dropdown_forecast__select(self, sku):
204
  return self.update__plot_forecast(sku)
205
 
206
+ def dropdown_model_selection__select(self, sku):
207
+ return self.update__plot_model_selection(sku)
208
+
209
  # ======== #
210
  # Updaters #
211
  # ======== #
212
 
213
  def update__file_model_data(self):
214
  self.model_data.to_csv('./best_models.csv', index=False)
215
+ return gr.File(value='./best_models.csv')
216
 
217
  def update__df_model_data(self):
218
+ return gr.Dataframe(value=self.model_data)
219
 
220
  def update__df_ts_data(self):
221
+ return gr.Dataframe(value=reset_index(self.ts_data))
222
 
223
  def update__df_forecast(self):
224
+ print('upupdate__df_forecastda')
225
+ print(self.forecast)
226
+ return gr.Dataframe(value = reset_index(self.forecast))
227
 
228
  def update__slider_forecast_horizon(self):
229
  skus = self.skus
 
235
  # max_horizon = int(
236
  # self.ts_data[self.ts_data['sku'] == sku].shape[0] * 0.2)
237
 
238
+ return gr.Slider(maximum=max_horizon)
239
 
240
  def update__file_forecast(self):
241
  reset_index(self.forecast).to_csv('./forecast_result.csv', index=False)
242
+ return gr.File(value='./forecast_result.csv')
243
 
244
  def update__md_ts_data_info(self):
245
  md = f'''
246
  ### Data Description
247
+ Columns: **{reset_index(self.ts_data).columns.tolist()}**
248
+ Size: {' | '.join([str(sku) + ' : **' + str(self.ts_data[self.ts_data["sku"] == sku].shape[0]) + '**' for sku in self.skus])}
249
  '''
250
+ return gr.Markdown(md)
251
 
252
  def update__dropdown_ts_data(self):
253
  # print(type(self.skus))
254
+ return gr.Dropdown(choices=self.skus)
255
 
256
  def update__dropdown_forecast(self):
257
  skus = self.forecast['sku'].unique().tolist()
258
+ return gr.Dropdown(choices=skus)
259
+
260
+ def update__dropdown_model_selection(self):
261
+ return gr.Dropdown(choices=self.skus)
262
 
263
  def update__plot_ts_data(self, skus):
264
  # print('update__plot_ts_data')
 
270
  ax.legend(loc='upper left')
271
  fig.tight_layout()
272
 
273
+ return gr.Plot(fig)
274
 
275
  def update__plot_forecast(self, sku):
276
  fig, ax = plt.subplots(figsize=(12, 4))
277
 
278
+ '''
279
+ A trick been used here,
280
+ to connect the plotting lines, for the historical part,
281
+ have to concat with the 1st data in the forecasting result.
282
+ Because the forecasting result already have date time index,
283
+ using head(1) to get the first element of the forecasting result
284
+ '''
285
+
286
+ ax.plot(pd.concat(
287
+ [
288
+ self.ts_data[self.ts_data['sku'] == sku],
289
+ self.forecast[self.forecast['sku'] == sku].head(1)
290
+ ])['y'],
291
+
292
+ label=f'{sku} - historical')
293
+
294
  ax.plot(self.forecast[self.forecast['sku']
295
  == sku]['y'], label=f'{sku} - forecast')
296
 
297
  ax.legend(loc='upper left')
298
  fig.tight_layout()
299
 
300
+ return gr.Plot(fig)
301
+
302
+ def update__plot_model_selection(self, sku):
303
+ fig, ax = plt.subplots(figsize=(12, 4))
304
+
305
+ '''
306
+ Reason need to filter out the last index is - sometimes IDSC model cannot
307
+ forecast the full required data size. Have to crop out the tail part.
308
+ '''
309
+ idx = self.model_selection_res[self.model_selection_res['sku'] == sku].index
310
+
311
+ ax.plot(self.ts_data[
312
+ (self.ts_data['sku'] == sku) &
313
+ (self.ts_data.index <= idx[-1])
314
+ ]['y'], label=f'{sku} - ground truth')
315
+
316
+ ax.plot(self.model_selection_res[self.model_selection_res['sku']
317
+ == sku]['y'], label=f'{sku} - model result')
318
+
319
+ ax.axvline(x=idx[0], ymin=0.05, ymax=0.95, ls='--')
320
+
321
+ ax.legend(loc='upper left')
322
+ fig.tight_layout()
323
+
324
+ return gr.Plot(fig)
325
+
326
+ def update__accordion_model_selection(self):
327
+ return gr.Accordion(visible=True)
gr_app/__init__.py CHANGED
@@ -1 +0,0 @@
1
-
 
 
gr_app/__pycache__/GradioApp.cpython-310.pyc CHANGED
Binary files a/gr_app/__pycache__/GradioApp.cpython-310.pyc and b/gr_app/__pycache__/GradioApp.cpython-310.pyc differ
 
gr_app/__pycache__/GradioApp.cpython-311.pyc CHANGED
Binary files a/gr_app/__pycache__/GradioApp.cpython-311.pyc and b/gr_app/__pycache__/GradioApp.cpython-311.pyc differ
 
gr_app/__pycache__/GradioApp.cpython-39.pyc CHANGED
Binary files a/gr_app/__pycache__/GradioApp.cpython-39.pyc and b/gr_app/__pycache__/GradioApp.cpython-39.pyc differ
 
gr_app/__pycache__/__init__.cpython-310.pyc CHANGED
Binary files a/gr_app/__pycache__/__init__.cpython-310.pyc and b/gr_app/__pycache__/__init__.cpython-310.pyc differ
 
gr_app/__pycache__/__init__.cpython-311.pyc CHANGED
Binary files a/gr_app/__pycache__/__init__.cpython-311.pyc and b/gr_app/__pycache__/__init__.cpython-311.pyc differ
 
gr_app/__pycache__/__init__.cpython-39.pyc CHANGED
Binary files a/gr_app/__pycache__/__init__.cpython-39.pyc and b/gr_app/__pycache__/__init__.cpython-39.pyc differ
 
gr_app/__pycache__/args.cpython-310.pyc CHANGED
Binary files a/gr_app/__pycache__/args.cpython-310.pyc and b/gr_app/__pycache__/args.cpython-310.pyc differ
 
gr_app/__pycache__/args.cpython-311.pyc CHANGED
Binary files a/gr_app/__pycache__/args.cpython-311.pyc and b/gr_app/__pycache__/args.cpython-311.pyc differ
 
gr_app/__pycache__/args.cpython-39.pyc ADDED
Binary file (320 Bytes). View file
 
gr_app/__pycache__/helpers.cpython-310.pyc CHANGED
Binary files a/gr_app/__pycache__/helpers.cpython-310.pyc and b/gr_app/__pycache__/helpers.cpython-310.pyc differ
 
gr_app/args.py CHANGED
@@ -26,3 +26,7 @@ dropdown_ts_data = {
26
  dropdown_forecast = {
27
  'interactive': True
28
  }
 
 
 
 
 
26
  dropdown_forecast = {
27
  'interactive': True
28
  }
29
+
30
+ dropdown_model_selection = {
31
+ 'interactive': True
32
+ }
gr_app/helpers.py CHANGED
@@ -3,5 +3,5 @@ import pandas as pd
3
 
4
  def reset_index(_df: pd.DataFrame):
5
  df = _df.reset_index()
6
- df['datetime'] = df['datetime'].dt.strftime('%Y-%m-%d')
7
  return df
 
3
 
4
  def reset_index(_df: pd.DataFrame):
5
  df = _df.reset_index()
6
+ df['datetime'] =_df.index.astype(str)
7
  return df
gr_app2/__init__.py ADDED
@@ -0,0 +1 @@
 
 
1
+ from .gr_app import GradioApp
gr_app2/__pycache__/GradioApp.cpython-310.pyc ADDED
Binary file (660 Bytes). View file
 
gr_app2/__pycache__/__init__.cpython-310.pyc ADDED
Binary file (205 Bytes). View file
 
gr_app2/__pycache__/args.cpython-310.pyc ADDED
Binary file (1.77 kB). View file
 
gr_app2/__pycache__/gr_app.cpython-310.pyc ADDED
Binary file (14.4 kB). View file
 
gr_app2/args.py ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ block = {
2
+ 'css':
3
+ '''
4
+ footer {visibility: hidden}
5
+
6
+ .json_xgboost_params {
7
+ max-height: 200px;
8
+ overflow: scroll !important;
9
+ }
10
+ '''
11
+ }
12
+
13
+ md__title = {
14
+ 'value':
15
+ """
16
+ # Sentient.io - Time Series Forecasting
17
+ ---
18
+ """
19
+ }
20
+
21
+ md__fit_ready = {
22
+ 'value':
23
+ """
24
+ # Data Fitted...
25
+ Ready for forecasting
26
+ """
27
+ }
28
+
29
+ file__historical = {
30
+ 'label': 'Historical Data',
31
+ }
32
+
33
+
34
+ md__future = {
35
+ 'value': "Optional. Future data's columns must within historical data's columns, length of future data will determine the N Predict, which is the max model's predictability.",
36
+ }
37
+
38
+ file__future = {
39
+ 'label': 'Future Data (optional)',
40
+
41
+ 'show_label': True
42
+ }
43
+
44
+ number__n_predict = {
45
+ 'label': 'N Predict',
46
+ 'info': 'Number of future data point to predict, recommend set to 1 seasonal period (max 20). If future data is provided, N Predict will set to exact length of future data.',
47
+ 'interactive': True,
48
+ 'precision': 0
49
+ }
50
+
51
+ number__window_length = {
52
+ 'label': 'Window Length',
53
+ 'info': 'Window length for sliding window to build feature sets for prediction. Recommend set window length same as auto correlation (AR) lags. But feel free to adjust it.',
54
+ 'interactive': True,
55
+ 'precision': 0
56
+ }
57
+
58
+ textbox__target_column = {
59
+ 'label': 'Target Column',
60
+ 'info': 'Please provide the target column for forecasting. It must be one of the column in uploaded data. All other columns will be used as exogenous data.',
61
+ 'interactive': True,
62
+ }
63
+
64
+ df__table_view = {}
65
+
66
+
67
+ btn__fit_data = {
68
+ 'value': 'Fit Data To Models',
69
+ 'variant': 'primary'
70
+ }
71
+
72
+ btn__forecast_with_prophet = {
73
+ 'value': 'Forecast with Prophet',
74
+ 'variant': 'primary'
75
+ }
76
+
77
+ json_xgboost_params = {
78
+ 'elem_classes': 'json_xgboost_params'
79
+ }
gr_app2/gr_app.py ADDED
@@ -0,0 +1,500 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json
2
+ import io
3
+ import os
4
+ import tempfile
5
+ import datetime
6
+
7
+ import gradio as gr
8
+ import pandas as pd
9
+ import matplotlib.pyplot as plt
10
+ import seaborn as sns
11
+ import numpy as np
12
+ from sktime.utils.plotting import plot_series
13
+ from statsmodels.tsa.seasonal import seasonal_decompose
14
+ from statsmodels.graphics.tsaplots import plot_acf, plot_pacf
15
+
16
+ from src.forecaster import Forecaster
17
+ from src.forecaster.models import XGBoost
18
+ from src.analyser import Analyser
19
+ from src.idsc import IDSC
20
+
21
+ from src.forecaster.models import ProphetForecaster
22
+
23
+
24
+ class GradioApp():
25
+ def __init__(
26
+ self
27
+ ) -> None:
28
+ self.forecaster = Forecaster()
29
+ self.analyser = Analyser()
30
+ self.idsc = IDSC()
31
+
32
+ self.historical_demo_data = 'data/multivariate/demo_historical.csv'
33
+ self.future_demo_data = 'data/multivariate/demo_future.csv'
34
+
35
+ self.data: pd.DataFrame = None
36
+ self.n_predict = 3
37
+ self.window_length = 7
38
+ self.target_column = 'y'
39
+ self.exog_columns = []
40
+
41
+ # Define if the model's result is going to be rounded
42
+ self.round_results = True
43
+
44
+ # Delete old temp files oder than n minutes
45
+ self.delete_file_old_than_n_minutes = 10
46
+
47
+ self.plot_figsize_full_screen = (20, 4)
48
+
49
+ # -------------------- #
50
+ # Model Related Params #
51
+ # -------------------- #
52
+
53
+ # XGBoost #
54
+ self.xgboost = XGBoost()
55
+ self.xgboost_cv = False
56
+ self.xgboost_params = self.xgboost.cv_params
57
+ self.xgboost_strategy = 'recursive'
58
+ self.xgboost_forecast = None
59
+ self.xgboost_test = None
60
+ print('Init Gradio app')
61
+
62
+ # Prophet #
63
+ self.prophet = ProphetForecaster()
64
+ self.prophet__seasonality_mode = 'multiplicative'
65
+ self.prophet__add_country_holidays = {'country_name': 'Singapore'}
66
+ self.prophet__yearly_seasonality = True
67
+ self.prophet__weekly_seasonality = False
68
+ self.prophet__daily_seasonality = False
69
+
70
+ def checkbox__round_results__change(self, val):
71
+ self.round_results = val
72
+
73
+ def textbox__target_column__change(self, val):
74
+ print('Updating textbox__target_column:', val)
75
+ self.target_column = val
76
+
77
+ def btn__profiling__click(self):
78
+ self.analyser.fit(self.data)
79
+ self.analyser.profiling()
80
+
81
+ return (
82
+ self.update__md__profiling(),
83
+ self.update__plot__changepoints())
84
+
85
+ def btn__plot_correlation__click(self):
86
+ return (self.update__plot__correlation())
87
+
88
+ def file__historical__upload(
89
+ self,
90
+ file
91
+ ):
92
+ self.data = pd.read_csv(
93
+ file.name,
94
+ index_col='datetime',
95
+ parse_dates=['datetime'])
96
+
97
+ print('[file__historical__upload]')
98
+
99
+ return (
100
+ self.update__df__table_view(),
101
+ self.update__dropdown__chart_view_filter(),
102
+ self.update__dropdown__seasonality_decompose(),
103
+ self.update__plot__chart_view())
104
+
105
+ def file__future__upload(
106
+ self,
107
+ file
108
+ ):
109
+ self.__handle_future_data_upload(file.name)
110
+
111
+ return (
112
+ self.update__df__table_view(),
113
+ self.update__dropdown__chart_view_filter(),
114
+ self.update__dropdown__seasonality_decompose(),
115
+ self.update__plot__chart_view(),
116
+ self.update__number__n_predict())
117
+
118
+ def btn__load_future_demo__click(
119
+ self
120
+ ):
121
+ self.__handle_future_data_upload(self.future_demo_data)
122
+
123
+ # [df__table_view, number__n_predict]
124
+
125
+ return (
126
+ self.update__df__table_view(),
127
+ self.update__dropdown__chart_view_filter(),
128
+ self.update__dropdown__seasonality_decompose(),
129
+ self.update__plot__chart_view(),
130
+ self.update__number__n_predict())
131
+
132
+ def __handle_future_data_upload(
133
+ self,
134
+ path
135
+ ):
136
+ data = pd.read_csv(
137
+ path,
138
+ index_col='datetime',
139
+ parse_dates=['datetime'])
140
+ self.exog_columns = data.columns.tolist()
141
+ self.n_predict = len(data)
142
+
143
+ print(
144
+ f"[file__future__upload] with {self.exog_columns} columns")
145
+
146
+ self.data = pd.concat(
147
+ [self.data, data],
148
+ axis=0)
149
+
150
+ def number__n_predict__change(
151
+ self,
152
+ val
153
+ ):
154
+ print(f'[number__n_predict__change], {val}')
155
+ self.n_predict = val
156
+
157
+ def number__window_length__change(
158
+ self,
159
+ val):
160
+ print(f'[number__window_length__change], {val}')
161
+ self.window_length = val
162
+
163
+ def btn__fit_data__click(
164
+ self):
165
+ data = self.data.drop(columns=self.exog_columns).dropna(how='any')
166
+
167
+ self.forecaster.fit(
168
+ data,
169
+ target_col=self.target_column,
170
+ n_predict=self.n_predict,
171
+ window_length=self.window_length,
172
+ exog=None if len(
173
+ self.exog_columns) == 0 else self.data[self.exog_columns])
174
+ return (
175
+ gr.Number(interactive=False), # number__n_predict
176
+ gr.Number(interactive=False), # number__window_length
177
+ gr.File(interactive=False), # file__historical
178
+ gr.File(interactive=False), # file__future
179
+ gr.Button(visible=False), # btn__fit_data
180
+ gr.Column(visible=True), # column__models
181
+ gr.Button(visible=False), # btn__load_historical_demo
182
+ gr.Button(visible=False), # btn__load_future_demo
183
+ self.update__md__forecast_data_info()
184
+ )
185
+
186
+ def btn__load_historical_demo__click(
187
+ self
188
+ ):
189
+ self.data = pd.read_csv(
190
+ self.historical_demo_data,
191
+ index_col='datetime',
192
+ parse_dates=['datetime'])
193
+
194
+ return (
195
+ self.update__df__table_view(),
196
+ self.update__dropdown__chart_view_filter(),
197
+ self.update__dropdown__seasonality_decompose(),
198
+ self.update__plot__chart_view()
199
+ )
200
+
201
+ def dropdown__chart_view_filter__change(self, options):
202
+ return (self.update__plot__chart_view(options))
203
+
204
+ def dropdown__seasonality_decompose__change(self, col):
205
+ return (
206
+ self.update__plot__seasonality_decompose(col),
207
+ self.update__plot_acg_pacf(col))
208
+
209
+ # ------------------------ #
210
+ # XGboost Model Operations #
211
+ # ------------------------ #
212
+
213
+ def btn__train_xgboost__click(self):
214
+ (test, forecast, best_params) = self.xgboost.fit_predict(
215
+ y=self.forecaster.y,
216
+ y_train=self.forecaster.y_train,
217
+ window_length=self.forecaster.window_length,
218
+ fh=self.forecaster.fh,
219
+ fh_test=self.forecaster.fh_test,
220
+ params=self.xgboost_params,
221
+ X=self.forecaster.X,
222
+ X_train=self.forecaster.X_train,
223
+ X_test=self.forecaster.X_test,
224
+ X_future=self.forecaster.X_future
225
+ )
226
+
227
+ print(test, forecast, best_params)
228
+
229
+ self.xgboost_forecast = forecast
230
+ self.xgboost_test = test
231
+
232
+ return (
233
+ self.update__plot__xgboost_result(test, forecast),
234
+ self.update__file__xgboost_result(),
235
+ self.update__df__xgboost_result())
236
+
237
+ def btn__set_xgboost_params__click(self, text):
238
+ params = json.loads(text.replace("'", '"'))
239
+ self.xgboost_params = params
240
+
241
+ return (
242
+ self.update__json_xgboost_params()
243
+ )
244
+
245
+ def checkbox__xgboost_round__change(self, val):
246
+ self.xgboost.round_result = val
247
+
248
+ # ----------------------------------- #
249
+ # Prophet Model Operations & Updaters #
250
+ # ----------------------------------- #
251
+
252
+ def btn__forecast_with_prophet__click(self):
253
+ self.prophet.fit_predict(
254
+ self.forecaster.y_train,
255
+ self.forecaster.y,
256
+ self.forecaster.fh,
257
+ self.forecaster.fh_test,
258
+ self.forecaster.period,
259
+ self.forecaster.freq,
260
+ X=self.forecaster.exog,
261
+ seasonality_mode=self.prophet__seasonality_mode,
262
+ add_country_holidays=self.prophet__add_country_holidays,
263
+ yearly_seasonality=self.prophet__yearly_seasonality,
264
+ weekly_seasonality=self.prophet__weekly_seasonality,
265
+ daily_seasonality=self.prophet__daily_seasonality,
266
+ round_val=self.round_results)
267
+
268
+ return (
269
+ self.update__plot__prophet_result(),
270
+ self.update__file__prophet_result(),
271
+ self.update__df__prophet_result())
272
+
273
+ def update__plot__prophet_result(self):
274
+ fig, ax = plt.subplots(figsize=self.plot_figsize_full_screen)
275
+
276
+ plot_series(
277
+ self.forecaster.y_train[-2 * self.forecaster.period:],
278
+ self.forecaster.y_test,
279
+ self.prophet.predict,
280
+ self.prophet.forecast,
281
+ pred_interval=self.prophet.forecast_interval,
282
+ labels=['Train', 'Test', 'Predicted - Test', 'Forecast'],
283
+ ax=ax)
284
+
285
+ ax.set_title('Prophet Forecast Result')
286
+ ax.legend(loc='upper left')
287
+ fig.tight_layout()
288
+
289
+ return gr.Plot(fig)
290
+
291
+ def update__file__prophet_result(self):
292
+ prophet_forecast_df = pd.DataFrame(self.prophet.forecast)
293
+ path = self.__create_temp_csv_file(prophet_forecast_df)
294
+ return gr.File(path)
295
+
296
+ def update__df__prophet_result(self):
297
+ prophet_forecast_df = self.prophet.forecast.reset_index()
298
+ return gr.Dataframe(value=prophet_forecast_df)
299
+
300
+ # =============================== #
301
+ # || Gradio Component Updaters || #
302
+ # =============================== #
303
+
304
+ def update__plot__changepoints(self):
305
+ fig, axs = plt.subplots(2, 1, figsize=(20, 8))
306
+
307
+ axs[0].plot(self.data[['y']])
308
+
309
+ axs[0].text(self.data.index[0],
310
+ axs[0].get_ylim()[1]*0.9,
311
+ self.analyser.quantity_predictability[0],
312
+ fontsize=20)
313
+
314
+ for i, p in enumerate(self.analyser.quantity_change_points):
315
+ axs[0].axvline(x=p)
316
+ axs[0].text(p,
317
+ axs[0].get_ylim()[1]*0.9,
318
+ self.analyser.quantity_predictability[i+1],
319
+ fontsize=20)
320
+
321
+ axs[1].plot(self.data[['y']])
322
+
323
+ axs[1].text(self.data.index[0],
324
+ axs[1].get_ylim()[1]*0.9,
325
+ self.analyser.intermittent_predictability[0],
326
+ fontsize=20)
327
+
328
+ for i, p in enumerate(self.analyser.intermittent_change_points):
329
+ axs[1].axvline(x=p)
330
+ axs[1].text(p,
331
+ axs[1].get_ylim()[1]*0.9,
332
+ self.analyser.intermittent_predictability[i+1],
333
+ fontsize=20)
334
+
335
+ axs[0].set_title('Quantity Change Points & Predictability')
336
+ axs[1].set_title('Intermittent Change Points & Predictability')
337
+
338
+ fig.tight_layout()
339
+
340
+ return gr.Plot(fig)
341
+
342
+ def update__md__profiling(self):
343
+
344
+ return (f"""
345
+ \n### Data Characteristic:
346
+ \n # {self.analyser.characteristic}
347
+ \n ---
348
+ \n### Quantity Change Points: {self.analyser.quantity_change_points.astype(str).tolist()}
349
+ \n### Quantity Predictability: {self.analyser.quantity_predictability}
350
+ \n### Intermittent Change Points: {self.analyser.intermittent_change_points.astype(str).tolist()}
351
+ \n### Intermittent Predictability: {self.analyser.intermittent_predictability}
352
+ """)
353
+
354
+ def update__md__forecast_data_info(self):
355
+ return gr.Markdown(value=f' \
356
+ **Forecasting for these timestamps**: \
357
+ {self.forecaster.fh.to_pandas().astype(str).tolist()} \
358
+ \n **Data Period**: {self.forecaster.period} \
359
+ \n **Data Frequency**: {self.forecaster.freq} \
360
+ ')
361
+
362
+ def update__plot__correlation(self):
363
+ fig, ax = plt.subplots(figsize=(20, 8))
364
+ corr = self.data.corr(numeric_only=True)
365
+ mask = np.triu(np.ones_like(corr, dtype=bool))
366
+ sns.heatmap(
367
+ corr,
368
+ mask=mask,
369
+ square=True,
370
+ annot=True,
371
+ cmap='coolwarm',
372
+ linewidths=.5,
373
+ cbar_kws={"shrink": .5},
374
+ ax=ax)
375
+
376
+ fig.tight_layout()
377
+
378
+ return gr.Plot(fig)
379
+
380
+ def update__df__table_view(
381
+ self
382
+ ):
383
+ data = self.data.reset_index()
384
+ return gr.Dataframe(value=data)
385
+
386
+ def update__number__n_predict(
387
+ self
388
+ ):
389
+ return gr.Number(self.n_predict, interactive=False)
390
+
391
+ def update__dropdown__chart_view_filter(self):
392
+ options = self.data.columns.tolist()
393
+ return gr.Dropdown(options, value=options)
394
+
395
+ def update__dropdown__seasonality_decompose(self):
396
+ options = self.data.columns.tolist()
397
+ return gr.Dropdown(options)
398
+
399
+ def update__plot__seasonality_decompose(self, col):
400
+ seasonal = seasonal_decompose(self.data[col].dropna())
401
+
402
+ fig = seasonal.plot()
403
+ return gr.Plot(fig)
404
+
405
+ def update__plot_acg_pacf(self, col):
406
+ fig, axs = plt.subplots(2, 1, sharex=True, sharey=True)
407
+
408
+ plot_acf(self.data[col].dropna(), ax=axs[0], zero=False)
409
+ plot_pacf(self.data[col].dropna(), ax=axs[1], zero=False)
410
+
411
+ axs[0].set_title('Auto Correlation')
412
+ axs[1].set_title('Partial Auto Correlation')
413
+
414
+ return gr.Plot(fig)
415
+
416
+ # ---------------------- #
417
+ # Update XGboost Results #
418
+ # ---------------------- #
419
+
420
+ def update__json_xgboost_params(self):
421
+ return gr.JSON(value=self.xgboost_params)
422
+
423
+ def update__plot__xgboost_result(self, test, predict):
424
+
425
+ fig, ax = plt.subplots(figsize=self.plot_figsize_full_screen)
426
+
427
+ plot_series(
428
+ self.forecaster.y_train[-2*self.forecaster.period:],
429
+ self.forecaster.y_test,
430
+ test,
431
+ predict,
432
+ labels=["y_train (part)", "y_test", "y_pred", 'y_forecast'],
433
+ x_label='Date',
434
+ ax=ax)
435
+
436
+ ax.set_xticklabels(ax.get_xticklabels(), rotation=45)
437
+ fig.tight_layout()
438
+
439
+ return gr.Plot(fig)
440
+
441
+ def update__plot__chart_view(self, cols=None):
442
+ fig, ax = plt.subplots(figsize=self.plot_figsize_full_screen)
443
+
444
+ _cols = cols
445
+
446
+ if _cols is None:
447
+ _cols = self.data.columns
448
+
449
+ print('[update__plot__chart_view]')
450
+
451
+ for col in _cols:
452
+ ax.plot(self.data[[col]], label=col)
453
+
454
+ fig.legend()
455
+ fig.tight_layout()
456
+ return gr.Plot(fig)
457
+
458
+ def update__file__xgboost_result(self):
459
+ path = self.__create_temp_csv_file(self.xgboost_forecast)
460
+ return gr.File(path)
461
+
462
+ def update__df__xgboost_result(self):
463
+
464
+ # xgboost_forecast is actually a Series instead of proper DataFrame
465
+ # Re constructing a proper dataframe for gradio to take
466
+ data = pd.DataFrame(
467
+ {"datetime": self.xgboost_forecast.index,
468
+ "y": self.xgboost_forecast.values})
469
+
470
+ return gr.Dataframe(value=data)
471
+
472
+ # ------------- #
473
+ # Util Function #
474
+ # ------------- #
475
+
476
+ def __create_temp_csv_file(self, df) -> str:
477
+ time_format = "%Y%m%d%H%M%S"
478
+ directory = 'temp'
479
+ now = datetime.datetime.now()
480
+
481
+ # Check if there are old files, remove them #
482
+ for filename in os.listdir(directory):
483
+ file_path = os.path.join(directory, filename)
484
+
485
+ file_time = datetime.datetime.strptime(
486
+ filename.split('.')[0], time_format)
487
+
488
+ # If the file is older than 3 minutes, delete the file
489
+ if now > datetime.timedelta(
490
+ minutes=self.delete_file_old_than_n_minutes) + file_time:
491
+ print('deleting olde file: ', filename)
492
+ os.remove(file_path)
493
+
494
+ new_file_name = now.strftime(format=time_format) + '.csv'
495
+
496
+ new_file_path = os.path.join(directory, new_file_name)
497
+
498
+ df.to_csv(new_file_path)
499
+
500
+ return new_file_path
notebooks/E01-quick_look_multivariate_data.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
notebooks/E02-ts_analytics.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
notebooks/E03-multivariate_forecasting.ipynb ADDED
@@ -0,0 +1,361 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "metadata": {},
6
+ "source": [
7
+ "# Aims\n",
8
+ "\n",
9
+ "- Test multivariate forecasting pipeline"
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "code",
14
+ "execution_count": 1,
15
+ "metadata": {},
16
+ "outputs": [],
17
+ "source": [
18
+ "# To call functions outside of this folder\n",
19
+ "import sys \n",
20
+ "sys.path.insert(0, '..')"
21
+ ]
22
+ },
23
+ {
24
+ "cell_type": "code",
25
+ "execution_count": 2,
26
+ "metadata": {},
27
+ "outputs": [],
28
+ "source": [
29
+ "import pandas as pd\n",
30
+ "import matplotlib.pyplot as plt\n",
31
+ "\n",
32
+ "from src.forecast.multivariate import MultivariateForecasting"
33
+ ]
34
+ },
35
+ {
36
+ "cell_type": "markdown",
37
+ "metadata": {},
38
+ "source": [
39
+ "---\n",
40
+ "\n",
41
+ "# Load Data"
42
+ ]
43
+ },
44
+ {
45
+ "cell_type": "code",
46
+ "execution_count": 3,
47
+ "metadata": {},
48
+ "outputs": [],
49
+ "source": [
50
+ "data = pd.read_csv('../data/multivariate/blow_mold_preprocessed.csv')\n",
51
+ "\n",
52
+ "train = data[:252]\n",
53
+ "exog = data[252:].drop(columns='y')\n",
54
+ "\n",
55
+ "test = data[252:].set_index('datetime')\n",
56
+ "test.index = pd.to_datetime(test.index)\n",
57
+ "test = test[['y']]\n",
58
+ "\n",
59
+ "mf = MultivariateForecasting(train, exog)\n",
60
+ "\n"
61
+ ]
62
+ },
63
+ {
64
+ "cell_type": "markdown",
65
+ "metadata": {},
66
+ "source": [
67
+ "---\n",
68
+ "\n",
69
+ "# How does train test been splitted?\n",
70
+ "\n",
71
+ "- Test size is same as forecast horizon size\n",
72
+ "- No sliding window for cross validation at this moment"
73
+ ]
74
+ },
75
+ {
76
+ "cell_type": "code",
77
+ "execution_count": 17,
78
+ "metadata": {},
79
+ "outputs": [
80
+ {
81
+ "data": {
82
+ "text/plain": [
83
+ "24"
84
+ ]
85
+ },
86
+ "execution_count": 17,
87
+ "metadata": {},
88
+ "output_type": "execute_result"
89
+ }
90
+ ],
91
+ "source": [
92
+ "len(mf.fh)"
93
+ ]
94
+ },
95
+ {
96
+ "cell_type": "code",
97
+ "execution_count": 18,
98
+ "metadata": {},
99
+ "outputs": [
100
+ {
101
+ "data": {
102
+ "text/plain": [
103
+ "(24, 5)"
104
+ ]
105
+ },
106
+ "execution_count": 18,
107
+ "metadata": {},
108
+ "output_type": "execute_result"
109
+ }
110
+ ],
111
+ "source": [
112
+ "mf.X_test.shape"
113
+ ]
114
+ },
115
+ {
116
+ "cell_type": "markdown",
117
+ "metadata": {},
118
+ "source": [
119
+ "---\n",
120
+ "\n",
121
+ "# What is exog data?"
122
+ ]
123
+ },
124
+ {
125
+ "cell_type": "markdown",
126
+ "metadata": {},
127
+ "source": [
128
+ "- For example, using 3 different independent variable A, B, C to forecast y\n",
129
+ "- if the goal is to forecast next 4 y values, y_t+1, y_t+2, y_t+3, y_t+4\n",
130
+ "- both A, B and C must have the future 4 values in the first place, and these \"future\" values of A, B, C are exogenous data, which could be hard to collect\n",
131
+ "- Likely, these exogenous data are also forecasted by some other method, and any forecasting will carry error, these error will be accumulated in multivariate forecasting"
132
+ ]
133
+ },
134
+ {
135
+ "cell_type": "markdown",
136
+ "metadata": {},
137
+ "source": [
138
+ "---\n",
139
+ "\n",
140
+ "# How does the forecast horizon been defined ?\n",
141
+ "\n",
142
+ "- Forecast horizon is same size as exog "
143
+ ]
144
+ },
145
+ {
146
+ "cell_type": "code",
147
+ "execution_count": 20,
148
+ "metadata": {},
149
+ "outputs": [
150
+ {
151
+ "data": {
152
+ "text/plain": [
153
+ "(24, 5)"
154
+ ]
155
+ },
156
+ "execution_count": 20,
157
+ "metadata": {},
158
+ "output_type": "execute_result"
159
+ }
160
+ ],
161
+ "source": [
162
+ "mf.exog.shape"
163
+ ]
164
+ },
165
+ {
166
+ "cell_type": "code",
167
+ "execution_count": 5,
168
+ "metadata": {},
169
+ "outputs": [
170
+ {
171
+ "data": {
172
+ "text/plain": [
173
+ "ForecastingHorizon(['2021-01-31', '2021-02-28', '2021-03-31', '2021-04-30',\n",
174
+ " '2021-05-31', '2021-06-30', '2021-07-31', '2021-08-31',\n",
175
+ " '2021-09-30', '2021-10-31', '2021-11-30', '2021-12-31',\n",
176
+ " '2022-01-31', '2022-02-28', '2022-03-31', '2022-04-30',\n",
177
+ " '2022-05-31', '2022-06-30', '2022-07-31', '2022-08-31',\n",
178
+ " '2022-09-30', '2022-10-31', '2022-11-30', '2022-12-31'],\n",
179
+ " dtype='datetime64[ns]', name='datetime', freq=None, is_relative=False)"
180
+ ]
181
+ },
182
+ "execution_count": 5,
183
+ "metadata": {},
184
+ "output_type": "execute_result"
185
+ }
186
+ ],
187
+ "source": [
188
+ "mf.fh"
189
+ ]
190
+ },
191
+ {
192
+ "cell_type": "code",
193
+ "execution_count": 7,
194
+ "metadata": {},
195
+ "outputs": [],
196
+ "source": [
197
+ "mf.train_xgboost()"
198
+ ]
199
+ },
200
+ {
201
+ "cell_type": "markdown",
202
+ "metadata": {},
203
+ "source": [
204
+ "---\n",
205
+ "\n",
206
+ "# Forecast result"
207
+ ]
208
+ },
209
+ {
210
+ "cell_type": "code",
211
+ "execution_count": 8,
212
+ "metadata": {},
213
+ "outputs": [
214
+ {
215
+ "data": {
216
+ "text/plain": [
217
+ "[<matplotlib.lines.Line2D at 0x12325e510>]"
218
+ ]
219
+ },
220
+ "execution_count": 8,
221
+ "metadata": {},
222
+ "output_type": "execute_result"
223
+ },
224
+ {
225
+ "data": {
226
+ "image/png": "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RMRreH0wCQ4O5oknniA4ONjqUtxK7WycmlJ7m0pbm0o7QW1tzLy5vV43+FVERESaLq/vMREREZGmQ8FEREREvIaCiYiIiHgNBRMRERHxGvUKJjNmzKBPnz6Eh4cTGxvLVVddxY4dO6ocYxgGU6dOJTExkdDQUAYPHsyWLVuqHDN79mwGDx5MREQENpuNnJyc015r48aNXHbZZURFRRETE8Ndd91FQUHBr9aYmprKoEGDCA0NpXXr1vzlL3+pMn9/eno648ePp3Pnzvj5+TFlypRG2c5TfffddwQEBNCzZ89G186JEydis9lO27p16+ZTbS0pKWHixIn06NGDgIAArrrqqmqPW758Ob169SIkJIT27dvz6quvVnucK9p7/Phx7r//fjp37kxYWBht2rThgQceIDc3t8p5srOzueWWW4iMjCQyMpJbbrml2j+XX/KW96rV7TxVTe/VxtJWT75f3dlWX36/Pv300/Tv35+wsDCioqLO2M5TueL9+quMerj88suNOXPmGJs3bzZ++OEHY+TIkUabNm2MgoIC5zHPPPOMER4ebnz44YdGamqqccMNNxgJCQlGXl6e85gXX3zRmDFjhjFjxgwDMLKzs6u8zuHDh40WLVoYkyZNMrZv326sW7fO6N+/v3HNNdecsb7c3FwjLi7OuPHGG43U1FTjww8/NMLDw42//e1vzmP27dtnPPDAA8bcuXONnj17Gg8++GCjbGelnJwco3379sawYcOMc889t9G1Mycnx0hPT3duaWlpRnR0tPHEE0/4VFsLCgqMSZMmGbNnzzYuv/xyY8yYMacds3fvXiMsLMx48MEHja1btxqvv/66ERgYaPznP/857VhXtDc1NdUYO3as8cknnxi7d+82vv76a6NTp06ntWX48OFG9+7djVWrVhmrVq0yunfvbowaNeqM7fWm96rV7ax0pvdqY2mrJ9+v7myrL79f//znPxsvvPCC8dBDDxmRkZFnbGclV71ff029gskvZWZmGoCxfPlywzAMw+FwGPHx8cYzzzzjPKakpMSIjIw0Xn311dOe/80331T7n/trr71mxMbGGhUVFc59mzZtMgBj165dNdbzyiuvGJGRkUZJSYlz34wZM4zExETD4XCcdvygQYNq9Yfny+284YYbjD/+8Y/GE088Ue1/do2lnZUWLlxo2Gw2Y//+/T7V1lNNmDCh2v/oHnnkEaNLly5V9t19991Gv379fvWcDW1vpQ8++MAICgoyysrKDMMwjK1btxqAsWbNGucxq1evNgBj+/btNZ7HW9+rVrazLu9VX29rJU+9X13d1lP50vv1VHPmzKl1MHHX+/WXXDLGpLKLKDo6GoB9+/aRkZHBsGHDnMcEBwczaNAgVq1aVevz2u12goKCqiwGFBoaCsDKlStrfN7q1asZNGhQlYljLr/8co4cOcL+/ftr/fq/5KvtnDNnDnv27OGJJ56oVT2+2s5TvfHGG1x66aUkJyefsSZva2ttrF69ukp9YP55fP/995SVlZ3xua5qb25uLhEREQQEBDhrioyMpG/fvs5j+vXrR2Rk5BnP4+3vVU+3s67vVV9u66k8/X51VVtrwxvfr/XlrvfrLzU4mBiGwUMPPcTAgQPp3r07ABkZGQDExcVVOTYuLs75WG0MHTqUjIwM/vrXv1JaWkp2djaPPfYYYF7HqklGRka1r31qbXXlq+3ctWsXf/jDH5g/f36t/lH6ajtPlZ6ezpdffskdd9xxxnq8sa21UdOfR3l5OceOHavxea5qb1ZWFk8++SR33313lZpiY2NPOzY2NvaMf27e/F71dDvr+l4F323rqTz9fnVlW2vDG9+v9eWO92t1GhxM7rvvPn766Sfee++90x6z2WxVfjYM47R9Z9KtWzfmzp3L888/T1hYGPHx8bRv3564uDj8/f2dxzRv3pzmzZszYsSIM752dftryxfbWVFRwfjx45k2bRopKSmNtp2/9NZbbxEVFVXjQLRK3trW2qjPv29XtDcvL4+RI0dy9tlnn/ZbfXXHn3oeX3qverqd9Xmvgm+29Zc8+X51R1trwxvfr7/GU+/X6jSoX+f+++/nk08+YcWKFZx11lnO/fHx8YCZoBISEpz7MzMzT0tbv2b8+PGMHz+eo0eP0qxZM2w2Gy+88ALt2rUD4IsvvnB2h1V2lcfHx5+W3jIzM4HTk2Zt+Go78/Pz+f7779m0aRP33XcfAA6HA8MwCAgI4KuvvmLo0KE+385TGYbBm2++yS233EJQUFCNdXhrW2ujpj+PgIAAYmJiqn2OK9qbn5/P8OHDad68OQsXLiQwMLDKeY4ePXra6/7888/O8/jKe9WKdtb1verLbT2VJ9+v7mhrbXjj+7U2PPF+rVGdR6UY5gCcyZMnG4mJicbOnTurfTw+Pt549tlnnfvsdnudBxBW54033jDCwsLOeOwrr7xiREVFGXa73bnvmWeeqfMAHV9vZ0VFhZGamlplu+eee4zOnTsbqampzpHevt7O6l47NTW12nN5e1tPdabBdF27dq2yb9KkSdUOpnNVe3Nzc41+/foZgwYNMgoLC087T+XgwbVr1zr3rVmzplYDJb3pvWpVO2v7Xm0MbT2Vp96v7mrrqXzp/Xqqug5+dcX79dfUK5jcc889RmRkpLFs2bIqt3wVFRVVKTYyMtL46KOPjNTUVGPcuHGn3XKZnp5ubNq0yXj99dcNwFixYoWxadMmIysry3nMP//5T2PDhg3Gjh07jJkzZxqhoaHG3//+9zPWl5OTY8TFxRnjxo0zUlNTjY8++siIiIg47da8TZs2GZs2bTJ69epljB8/3ti0aZOxZcuWRtfOU1U30r8xtfPmm282+vbtW+O5vL2thmEYW7ZsMTZt2mSMHj3aGDx4sPPfaaXK2w9/+9vfGlu3bjXeeOONGm8/dEV78/LyjL59+xo9evQwdu/eXeU85eXlzvMMHz7cOOecc4zVq1cbq1evNnr06PGrt1t603vVG9p5qpruymlMbfXE+9WdbTUM332/HjhwwNi0aZMxbdo0o3nz5s668/Pza2yrq96vv6ZewQSodpszZ47zGIfDYTzxxBNGfHy8ERwcbFx88cWnpeInnnjiV89zyy23GNHR0UZQUJBxzjnnGG+//Xatavzpp5+Miy66yAgODjbi4+ONqVOnnpboqnvt5OTkRtfOX9byy//sGks7c3JyjNDQUGP27Nk1nscX2pqcnFztuU+1bNky47zzzjOCgoKMtm3bGrNmzXJbeyt/q61u27dvn/O4rKws46abbjLCw8ON8PBw46abbqpV75C3vFe9oZ2nqimYNJa2eur96u62+ur7dcKECdUe880335yxva54v/4a24mTiIiIiFhOa+WIiIiI11AwEREREa+hYCIiIiJeQ8FEREREvIaCiYiIiHgNBRMRERHxGgomIiIi4jUUTERERMRrKJiIiIiI11AwEREREa+hYCIiIiJeQ8FEREREvMb/A1MoQS8Ri3VwAAAAAElFTkSuQmCC",
227
+ "text/plain": [
228
+ "<Figure size 640x480 with 1 Axes>"
229
+ ]
230
+ },
231
+ "metadata": {},
232
+ "output_type": "display_data"
233
+ }
234
+ ],
235
+ "source": [
236
+ "plt.plot(mf.y_test)\n",
237
+ "plt.plot(mf.models['xgboost']['test'])"
238
+ ]
239
+ },
240
+ {
241
+ "cell_type": "code",
242
+ "execution_count": 9,
243
+ "metadata": {},
244
+ "outputs": [
245
+ {
246
+ "data": {
247
+ "text/plain": [
248
+ "[<matplotlib.lines.Line2D at 0x1232a0490>]"
249
+ ]
250
+ },
251
+ "execution_count": 9,
252
+ "metadata": {},
253
+ "output_type": "execute_result"
254
+ },
255
+ {
256
+ "data": {
257
+ "image/png": "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HEVRmDFjBhEREfj4+DBw4EDi4+Mtj2dmZvLUU0/RunVrfH19iYqK4umnnyY7O7vS87z11lv06dMHX19f6tevX+MY4+LiiI2NxcfHh8aNG/P6669XahSVlpbGhAkTaN26NXq9nqlTp7rstV5u8+bNeHh40KVLF5e7zokTJ6LT6a66tW/f/qrncvTrLSoqYuLEiXTs2BEPDw9uu+22Ks/bsGED3bt3x9vbm2bNmjFv3jzNrjUxMZFHH32UmJgYfHx8aN68Oa+++iolJSXXvV5rvF9d4Tovd633qqtca03fr45+rc74XgW49dZbiYqKwtvbm/DwcB588EFSU1OrvVaw3mfrdSk2MHz4cGX+/PnKwYMHlX379imjR49WoqKilLy8PMs577zzjuLv76/8+OOPSlxcnHLvvfcq4eHhSk5OjqIoihIXF6fccccdyi+//KKcOHFCWbt2rdKyZUvlzjvvrPRar7zyijJ79mxl2rRpSmBgYI3iy87OVkJDQ5Xx48crcXFxyo8//qj4+/sr7733nuWchIQE5emnn1YWLFigdOnSRfnrX//qstdaISsrS2nWrJkybNgwpXPnzi53nVlZWUpaWprllpycrAQFBSmvvvrqVc/n6Nebl5enPP7448pnn32mDB8+XBk3btxV55w6dUrx9fVV/vrXvyqHDh1S/v3vfyuenp7KDz/8oMm1rlixQpk4caKycuVK5eTJk8rPP/+sNGrUSHn22WervVZrvV9d4TorVPdedZVrren71dGv1Rnfq4qiKLNnz1a2bt2qJCYmKps3b1Z69+6t9O7du9prteZn6/XYJHm5UkZGhgIoGzZsUBRFUcxmsxIWFqa88847lnOKioqUwMBAZd68edd8nu+//17x8vJSSktLr3ps/vz5Nf7F//HHHyuBgYFKUVGR5b6ZM2cqERERitlsvur82NjYGv8HduZrvffee5W///3vyquvvlrlL8TLOfN1Vli8eLGi0+mUxMTE6z6/o13v5R5++OEqfyG+8MILSps2bSrdN3nyZKVXr17VPp89rrXCrFmzlJiYmGrjsdX71ZmvszbvVUVx7mutUNP3q6Nd6+Wc+b36888/KzqdTikpKbnmObb8bL2SXda8VAxHBQUFAZCQkEB6ejrDhg2znGM0GomNjWXLli3VPk9AQAAeHjfWT3Lr1q3ExsZWqhw4fPhwUlNTSUxMvKHndtZrnT9/PidPnuTVV1+t0fM663Ve7osvvmDIkCFER0df9/kd7XprYuvWrZXiA/W/ya5duygtLb3m99nzWrOzsy2vU9112OL96qzXWdv3asXrg/Nd6+Vq+n51tGutCUd/r2ZmZrJo0SL69OmDp6dntddhq8/WK9k8eVEUhWnTptGvXz86dOgAQHp6OgChoaGVzg0NDbU8dqULFy7wxhtvMHny5BuOKT09vcrXvjy2unDWaz1+/Dh/+9vfWLRoUY0+VJ31Oi+XlpbGihUreOyxx6773I54vTVxrf8mZWVlnD9/vsrvsee1njx5kg8//JDHH3+8TtdxeWy15azXWdv3KjjvtV6upu9XR7zWmnDU9+qLL76In58fDRs2JCkpiZ9//rlO13F5bNZi8+TlL3/5CwcOHOCbb7656jGdTlfp34qiXHUfQE5ODqNHj6Zdu3a1+msDoH379tSrV4969eoxcuTIal+7qvtrwxmv1WQyMWHCBF577TVatWpVo9dxxuu80n/+8x/q169/zcVzl3PU662J2v6c2+taU1NTGTFiBHfffXelDyR7vV+d8Trr8l511mu9Uk3fr456rTXhiO/V559/nr1797Jq1SoMBgMPPfSQJS57frZWxaZj10899RS//PILGzdupEmTJpb7w8LCADUTCw8Pt9yfkZFxVdaWm5vLiBEjqFevHosXL652yKoqy5cvtwy7+fj4WF7/yiwwIyMDuDpjrSlnvdbc3Fx27drF3r17+ctf/gKA2WxGURQ8PDxYtWoVgwcPdvrrvJyiKHz55Zc8+OCDeHl5Vftajnq9NXGt/yYeHh40bNjwqvPtda2pqakMGjSI3r1789lnn133Wq39fnXW66zte9WZr/VyNX2/Ouq11oSjvleDg4MJDg6mVatWtG3blsjISLZt20bv3r3t9tl6TXVaKXMdZrNZefLJJ5WIiAjl2LFjVT4eFhamvPvuu5b7iouLr1pUlJ2drfTq1UuJjY1V8vPzq33N2i7urF+/vlJcXGy575133qnToiJnv1aTyaTExcVVuj3xxBNK69atlbi4OMsqdme/zsv9/vvvCqDExcVd8/kc/XovV90iwLZt21a67/HHH79qEaA9r/XMmTNKy5YtlfHjxytlZWU1uj5rvV+d/Tpr+l51hWu93PXer45+rZdzpvfqlZKSkhRA+f333695jjU/W6/HJsnLE088oQQGBirr16+vtNWtoKDAcs4777yjBAYGKj/99JMSFxen3HfffZW2c+Xk5Cg9e/ZUOnbsqJw4caLS81z+Q3P69Gll7969ymuvvabUq1dP2bt3r7J3714lNzf3mvFlZWUpoaGhyn333afExcUpP/30kxIQEHDVlsSK5+revbsyYcIEZe/evUp8fLxLXuvlqtrB4ErX+cADDyg9e/a85nM5w/UqiqLEx8cre/fuVcaOHasMHDjQ8n0VKrZfPvPMM8qhQ4eUL774osrtl/a61pSUFKVFixbK4MGDlTNnzlQ6pzrWer+6ynVe7lq7jVzpWq/3fnX0a1UU53uvbt++Xfnwww+VvXv3KomJicq6deuUfv36Kc2bN6+0k+hK1vxsvR6bJC9Albf58+dbzjGbzcqrr76qhIWFKUajURkwYEClzLoi267qlpCQYDnv4YcfrvKc6rJDRVGUAwcOKP3791eMRqMSFhamzJgx46rMsKrnjY6OdslrvVxVvxBd5TqzsrIUHx8f5bPPPqv2uZzheqOjo6v8vsutX79e6dq1q+Ll5aU0bdpU+eSTTzS71vnz51/znOuxxvvVVa7zctdKXlzlWmvyfnWGa3W29+qBAweUQYMGKUFBQYrRaFSaNm2qPP7448qZM2eue63W+my9Hl35EwkhhBBCOAXpbSSEEEIIpyLJixBCCCGciiQvQgghhHAqkrwIIYQQwqlI8iKEEEIIpyLJixBCCCGciiQvQgghhHAqkrwIIYQQwqlI8iKEEEIIpyLJixBCCCGciiQvQgghhHAq/w+Xp4s3oueeywAAAABJRU5ErkJggg==",
258
+ "text/plain": [
259
+ "<Figure size 640x480 with 1 Axes>"
260
+ ]
261
+ },
262
+ "metadata": {},
263
+ "output_type": "display_data"
264
+ }
265
+ ],
266
+ "source": [
267
+ "plt.plot(test)\n",
268
+ "plt.plot(mf.models['xgboost']['forecast'])"
269
+ ]
270
+ },
271
+ {
272
+ "cell_type": "markdown",
273
+ "metadata": {},
274
+ "source": [
275
+ "---\n",
276
+ "\n",
277
+ "# What is the forecast accuracy?"
278
+ ]
279
+ },
280
+ {
281
+ "cell_type": "code",
282
+ "execution_count": 21,
283
+ "metadata": {},
284
+ "outputs": [
285
+ {
286
+ "data": {
287
+ "text/plain": [
288
+ "0.23537933276005385"
289
+ ]
290
+ },
291
+ "execution_count": 21,
292
+ "metadata": {},
293
+ "output_type": "execute_result"
294
+ }
295
+ ],
296
+ "source": [
297
+ "mf.models['xgboost']['mape']"
298
+ ]
299
+ },
300
+ {
301
+ "cell_type": "markdown",
302
+ "metadata": {},
303
+ "source": [
304
+ "---\n",
305
+ "\n",
306
+ "# Can MAPE handle zeros?\n",
307
+ "\n",
308
+ "- MAPE cannot handle inaccurate zero, zero, or very small value on true value will cause huge error size\n",
309
+ "- MAPE is not suitable for evaluating intermittent data"
310
+ ]
311
+ },
312
+ {
313
+ "cell_type": "code",
314
+ "execution_count": 33,
315
+ "metadata": {},
316
+ "outputs": [
317
+ {
318
+ "data": {
319
+ "text/plain": [
320
+ "200.0"
321
+ ]
322
+ },
323
+ "execution_count": 33,
324
+ "metadata": {},
325
+ "output_type": "execute_result"
326
+ }
327
+ ],
328
+ "source": [
329
+ "from sktime.performance_metrics.forecasting import mean_absolute_percentage_error\n",
330
+ "\n",
331
+ "mean_absolute_percentage_error([1,0,1,1,0.001], [1,0,1,0,1])"
332
+ ]
333
+ },
334
+ {
335
+ "cell_type": "markdown",
336
+ "metadata": {},
337
+ "source": []
338
+ }
339
+ ],
340
+ "metadata": {
341
+ "kernelspec": {
342
+ "display_name": "base",
343
+ "language": "python",
344
+ "name": "python3"
345
+ },
346
+ "language_info": {
347
+ "codemirror_mode": {
348
+ "name": "ipython",
349
+ "version": 3
350
+ },
351
+ "file_extension": ".py",
352
+ "mimetype": "text/x-python",
353
+ "name": "python",
354
+ "nbconvert_exporter": "python",
355
+ "pygments_lexer": "ipython3",
356
+ "version": "3.11.5"
357
+ }
358
+ },
359
+ "nbformat": 4,
360
+ "nbformat_minor": 2
361
+ }
notebooks/E04-forecaster.ipynb ADDED
The diff for this file is too large to render. See raw diff