Spaces:
Runtime error
Runtime error
unt
Browse files- Untitled.ipynb +892 -32
Untitled.ipynb
CHANGED
@@ -2,20 +2,20 @@
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
-
"execution_count":
|
6 |
-
"id": "
|
7 |
"metadata": {},
|
8 |
"outputs": [],
|
9 |
"source": [
|
10 |
-
"import pickle
|
11 |
-
"import pandas as pd
|
12 |
-
"import
|
13 |
]
|
14 |
},
|
15 |
{
|
16 |
"cell_type": "code",
|
17 |
-
"execution_count":
|
18 |
-
"id": "
|
19 |
"metadata": {},
|
20 |
"outputs": [],
|
21 |
"source": [
|
@@ -25,8 +25,8 @@
|
|
25 |
},
|
26 |
{
|
27 |
"cell_type": "code",
|
28 |
-
"execution_count":
|
29 |
-
"id": "
|
30 |
"metadata": {},
|
31 |
"outputs": [
|
32 |
{
|
@@ -399,7 +399,7 @@
|
|
399 |
"[1464 rows x 22 columns]"
|
400 |
]
|
401 |
},
|
402 |
-
"execution_count":
|
403 |
"metadata": {},
|
404 |
"output_type": "execute_result"
|
405 |
}
|
@@ -410,35 +410,89 @@
|
|
410 |
},
|
411 |
{
|
412 |
"cell_type": "code",
|
413 |
-
"execution_count":
|
414 |
-
"id": "
|
415 |
"metadata": {},
|
416 |
"outputs": [
|
417 |
{
|
418 |
"data": {
|
419 |
"text/plain": [
|
420 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
421 |
]
|
422 |
},
|
423 |
-
"execution_count":
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
424 |
"metadata": {},
|
425 |
"output_type": "execute_result"
|
426 |
}
|
427 |
],
|
428 |
"source": [
|
429 |
-
"
|
430 |
]
|
431 |
},
|
432 |
{
|
433 |
"cell_type": "code",
|
434 |
"execution_count": 20,
|
435 |
-
"id": "
|
436 |
"metadata": {},
|
437 |
"outputs": [
|
438 |
{
|
439 |
"data": {
|
440 |
"text/plain": [
|
441 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
442 |
]
|
443 |
},
|
444 |
"execution_count": 20,
|
@@ -447,39 +501,845 @@
|
|
447 |
}
|
448 |
],
|
449 |
"source": [
|
450 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
451 |
]
|
452 |
},
|
453 |
{
|
454 |
"cell_type": "code",
|
455 |
-
"execution_count":
|
456 |
-
"id": "
|
457 |
"metadata": {},
|
458 |
"outputs": [
|
459 |
{
|
460 |
"data": {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
461 |
"text/plain": [
|
462 |
-
"
|
463 |
-
"
|
464 |
-
"
|
465 |
-
"
|
466 |
-
"
|
467 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
468 |
]
|
469 |
},
|
470 |
-
"execution_count":
|
471 |
"metadata": {},
|
472 |
"output_type": "execute_result"
|
473 |
}
|
474 |
],
|
475 |
"source": [
|
476 |
-
"df
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
477 |
]
|
478 |
},
|
479 |
{
|
480 |
"cell_type": "code",
|
481 |
"execution_count": null,
|
482 |
-
"id": "
|
483 |
"metadata": {},
|
484 |
"outputs": [],
|
485 |
"source": []
|
@@ -487,9 +1347,9 @@
|
|
487 |
],
|
488 |
"metadata": {
|
489 |
"kernelspec": {
|
490 |
-
"display_name": "
|
491 |
"language": "python",
|
492 |
-
"name": "
|
493 |
},
|
494 |
"language_info": {
|
495 |
"codemirror_mode": {
|
@@ -501,7 +1361,7 @@
|
|
501 |
"name": "python",
|
502 |
"nbconvert_exporter": "python",
|
503 |
"pygments_lexer": "ipython3",
|
504 |
-
"version": "3.
|
505 |
}
|
506 |
},
|
507 |
"nbformat": 4,
|
|
|
2 |
"cells": [
|
3 |
{
|
4 |
"cell_type": "code",
|
5 |
+
"execution_count": 26,
|
6 |
+
"id": "702c8313-4ccd-4478-a648-1087978f8af5",
|
7 |
"metadata": {},
|
8 |
"outputs": [],
|
9 |
"source": [
|
10 |
+
"import pickle\n",
|
11 |
+
"import pandas as pd\n",
|
12 |
+
"import matplotlib.pyplot as plt"
|
13 |
]
|
14 |
},
|
15 |
{
|
16 |
"cell_type": "code",
|
17 |
+
"execution_count": 16,
|
18 |
+
"id": "06393522-6a98-46d1-98ec-adc8a889be25",
|
19 |
"metadata": {},
|
20 |
"outputs": [],
|
21 |
"source": [
|
|
|
25 |
},
|
26 |
{
|
27 |
"cell_type": "code",
|
28 |
+
"execution_count": 17,
|
29 |
+
"id": "c67e2a79-d310-4832-a8e5-f16fecb6b9be",
|
30 |
"metadata": {},
|
31 |
"outputs": [
|
32 |
{
|
|
|
399 |
"[1464 rows x 22 columns]"
|
400 |
]
|
401 |
},
|
402 |
+
"execution_count": 17,
|
403 |
"metadata": {},
|
404 |
"output_type": "execute_result"
|
405 |
}
|
|
|
410 |
},
|
411 |
{
|
412 |
"cell_type": "code",
|
413 |
+
"execution_count": 18,
|
414 |
+
"id": "20cb91bd-f9e7-4a96-9da0-58ccd678c2ca",
|
415 |
"metadata": {},
|
416 |
"outputs": [
|
417 |
{
|
418 |
"data": {
|
419 |
"text/plain": [
|
420 |
+
"270300 1600.9030\n",
|
421 |
+
"270301 1811.1958\n",
|
422 |
+
"270302 1784.2916\n",
|
423 |
+
"270303 1757.3488\n",
|
424 |
+
"270304 1741.0982\n",
|
425 |
+
" ... \n",
|
426 |
+
"270661 1885.6552\n",
|
427 |
+
"270662 1974.7440\n",
|
428 |
+
"270663 1738.3962\n",
|
429 |
+
"270664 1741.8702\n",
|
430 |
+
"270665 1973.2386\n",
|
431 |
+
"Name: sales, Length: 366, dtype: float64"
|
432 |
]
|
433 |
},
|
434 |
+
"execution_count": 18,
|
435 |
+
"metadata": {},
|
436 |
+
"output_type": "execute_result"
|
437 |
+
}
|
438 |
+
],
|
439 |
+
"source": [
|
440 |
+
"df.loc[df['Group'] == '1', \"sales\"]"
|
441 |
+
]
|
442 |
+
},
|
443 |
+
{
|
444 |
+
"cell_type": "code",
|
445 |
+
"execution_count": 19,
|
446 |
+
"id": "8923a52d-c601-45a5-af1f-ef245d0ed7be",
|
447 |
+
"metadata": {},
|
448 |
+
"outputs": [
|
449 |
+
{
|
450 |
+
"data": {
|
451 |
+
"text/plain": [
|
452 |
+
"278502 1585.0384\n",
|
453 |
+
"278503 0.0000\n",
|
454 |
+
"278504 0.0000\n",
|
455 |
+
"278505 1582.0276\n",
|
456 |
+
"278506 1521.5414\n",
|
457 |
+
" ... \n",
|
458 |
+
"278863 1672.7762\n",
|
459 |
+
"278864 1598.2010\n",
|
460 |
+
"278865 1683.6228\n",
|
461 |
+
"278866 1660.6944\n",
|
462 |
+
"278867 0.0000\n",
|
463 |
+
"Name: sales, Length: 366, dtype: float64"
|
464 |
+
]
|
465 |
+
},
|
466 |
+
"execution_count": 19,
|
467 |
"metadata": {},
|
468 |
"output_type": "execute_result"
|
469 |
}
|
470 |
],
|
471 |
"source": [
|
472 |
+
"df.loc[df['Group'] == '4', \"sales\"]"
|
473 |
]
|
474 |
},
|
475 |
{
|
476 |
"cell_type": "code",
|
477 |
"execution_count": 20,
|
478 |
+
"id": "41cf50d2-7144-49de-9e6e-f155b0b74a1f",
|
479 |
"metadata": {},
|
480 |
"outputs": [
|
481 |
{
|
482 |
"data": {
|
483 |
"text/plain": [
|
484 |
+
"283970 1580.6766\n",
|
485 |
+
"283971 2168.6318\n",
|
486 |
+
"283972 2034.7284\n",
|
487 |
+
"283973 2147.1702\n",
|
488 |
+
"283974 2364.6812\n",
|
489 |
+
" ... \n",
|
490 |
+
"284331 2212.5200\n",
|
491 |
+
"284332 2160.4100\n",
|
492 |
+
"284333 2113.0478\n",
|
493 |
+
"284334 2016.5864\n",
|
494 |
+
"284335 2106.6402\n",
|
495 |
+
"Name: sales, Length: 366, dtype: float64"
|
496 |
]
|
497 |
},
|
498 |
"execution_count": 20,
|
|
|
501 |
}
|
502 |
],
|
503 |
"source": [
|
504 |
+
"df.loc[df['Group'] == '6', \"sales\"]"
|
505 |
+
]
|
506 |
+
},
|
507 |
+
{
|
508 |
+
"cell_type": "code",
|
509 |
+
"execution_count": 22,
|
510 |
+
"id": "6e4ed391-9044-41c8-8334-28d59b104c74",
|
511 |
+
"metadata": {},
|
512 |
+
"outputs": [
|
513 |
+
{
|
514 |
+
"data": {
|
515 |
+
"text/plain": [
|
516 |
+
"Timestamp('2022-06-26 00:00:00')"
|
517 |
+
]
|
518 |
+
},
|
519 |
+
"execution_count": 22,
|
520 |
+
"metadata": {},
|
521 |
+
"output_type": "execute_result"
|
522 |
+
}
|
523 |
+
],
|
524 |
+
"source": [
|
525 |
+
"df['Date'].min()"
|
526 |
+
]
|
527 |
+
},
|
528 |
+
{
|
529 |
+
"cell_type": "code",
|
530 |
+
"execution_count": 23,
|
531 |
+
"id": "37af6fed-9b27-4d7e-a7e6-1f787ebecd5c",
|
532 |
+
"metadata": {},
|
533 |
+
"outputs": [
|
534 |
+
{
|
535 |
+
"data": {
|
536 |
+
"text/plain": [
|
537 |
+
"0.0"
|
538 |
+
]
|
539 |
+
},
|
540 |
+
"execution_count": 23,
|
541 |
+
"metadata": {},
|
542 |
+
"output_type": "execute_result"
|
543 |
+
}
|
544 |
+
],
|
545 |
+
"source": [
|
546 |
+
"df['sales'].min()"
|
547 |
+
]
|
548 |
+
},
|
549 |
+
{
|
550 |
+
"cell_type": "code",
|
551 |
+
"execution_count": 24,
|
552 |
+
"id": "4081b0fd-db08-492c-bf31-a9727b3cbcc2",
|
553 |
+
"metadata": {},
|
554 |
+
"outputs": [
|
555 |
+
{
|
556 |
+
"data": {
|
557 |
+
"text/plain": [
|
558 |
+
"2498.546"
|
559 |
+
]
|
560 |
+
},
|
561 |
+
"execution_count": 24,
|
562 |
+
"metadata": {},
|
563 |
+
"output_type": "execute_result"
|
564 |
+
}
|
565 |
+
],
|
566 |
+
"source": [
|
567 |
+
"df['sales'].max()"
|
568 |
+
]
|
569 |
+
},
|
570 |
+
{
|
571 |
+
"cell_type": "code",
|
572 |
+
"execution_count": 27,
|
573 |
+
"id": "2971c877-6a2f-4410-9070-9de7b04c8026",
|
574 |
+
"metadata": {},
|
575 |
+
"outputs": [
|
576 |
+
{
|
577 |
+
"data": {
|
578 |
+
"image/png": "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3oPD4cCBAwdqbfeyyy7D0KFD8e233yItLQ3vvfceiouLMXfuXJ9p+uKLL5wZyrFjx3D69Gm88MILAIBbbrkFt9xyi89tEBEBzB8iKX/45ptvMGjQIKSkpOC2226rNQ9Ep06d3Do2U4gK1nBFFLnuvvtu0aBBA3H69GnVdYYMGSLq168vjh8/7hwebvr06YrrLl++XLRr107Uq1fPbag4z+HhhJCGZZs+fbpo06aNiImJEQ6HQ9xxxx1i8+bNznU8h4cTQojy8nIxYcIEcemll4qYmBjRpEkT0alTJzFjxgxx/vx5Tce9bNkyceeddwqHwyHq1asnkpKSxM033yymT58uSkpK3NYFIIYPH664ne+//150795dxMfHi4YNG4ouXbqIjRs31lpv8+bNokOHDiImJkY0b95cvPrqq6rDw/Xs2VOsWrVKXHnllSI2Nla0adNGLF68WNNxyUPRKS2TJ0/WtA0iIiGYP0RS/iBvT21RGtaVQo9NCI3PpYgoLGVnZ+Pyyy/HihUrgp0UIiIKIcwfiH0EiIiIiIgsiIEAEREREZEFMRAgIiIiIrIg9hEgIiIiIrIgPhEgIiIiIrIgBgJERERERBYUsROKVVdX48iRI0hISNA1DTkRUTgQQqC8vBwZGRmIimKdjh7MH4go0mnNIyI2EDhy5AiysrKCnQwiooA6ePAgMjMzg52MsML8gYiswlceEbGBQEJCAgDpBNjt9iCnhojIXGVlZcjKynLe60g75g9EFOm05hERGwjIj3vtdjtv9EQUsdi0RT/mD0RkFb7yCDYsJSIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILEhXIDBt2jTccMMNSEhIQGpqKnr37o1du3a5rXPu3DkMHz4cKSkpiI+PR9++fVFcXOy2zoEDB9CzZ080bNgQqampGDduHCorK93Wyc/Px7XXXovY2FhceumlmDdvnrEjJCKiOsE8gogovOgKBD7//HMMHz4cmzZtwurVq3HhwgV069YNp0+fdq4zZswY/Otf/8LixYvx+eef48iRI+jTp4/z/aqqKvTs2RPnz5/Hxo0b8f7772PevHmYNGmSc519+/ahZ8+e6NKlC7Zu3YrRo0fjkUcewapVq0w4ZCIiCgTmEUREYUb44ejRowKA+Pzzz4UQQpSUlIj69euLxYsXO9fZuXOnACAKCgqEEEJ8+umnIioqShQVFTnXefPNN4XdbhcVFRVCCCHGjx8v2rdv77avAQMGiO7du2tOW2lpqQAgSktLDR8fEVGoCod7XKjmEeFw7oiI/KH1PudXH4HS0lIAQHJyMgBg8+bNuHDhArp27epcp02bNmjevDkKCgoAAAUFBbjiiiuQlpbmXKd79+4oKyvDjh07nOu4bkNeR94GERGFPuYRREShrZ7RD1ZXV2P06NH47W9/i8svvxwAUFRUhJiYGCQlJbmtm5aWhqKiIuc6rjd4+X35PW/rlJWV4ezZs4iLi6uVnoqKClRUVDj/LisrM3poRETkp1DKI5g/EBEpM/xEYPjw4di+fTsWLlxoZnoMmzZtGhITE51LVlZWsJNERGRZoZRHMH8gIlJmKBAYMWIEVqxYgfXr1yMzM9P5enp6Os6fP4+SkhK39YuLi5Genu5cx3OECPlvX+vY7XbFpwEAMGHCBJSWljqXgwcPGjk0IiLyU6jlEZGUP1RVAfn5wIIF0r9VVcFOERGFM12BgBACI0aMwLJly7Bu3Tq0bNnS7f3rrrsO9evXx9q1a52v7dq1CwcOHEDHjh0BAB07dsS2bdtw9OhR5zqrV6+G3W5Hu3btnOu4bkNeR96GktjYWNjtdreFiIjqTqjmEZGSP+TlAdnZQJcuwP33S/9mZ0uvExEZoqcH8uOPPy4SExNFfn6+KCwsdC5nzpxxrvPYY4+J5s2bi3Xr1onvvvtOdOzYUXTs2NH5fmVlpbj88stFt27dxNatW8XKlSuFw+EQEyZMcK7z3//+VzRs2FCMGzdO7Ny5U7zxxhsiOjparFy5UnNaOSoEEUWyULzHhUseEYrnzpelS4Ww2YQA3BebTVqWLg12CokolGi9z+kKBAAoLnPnznWuc/bsWfHEE0+Ixo0bi4YNG4p7771XFBYWum1n//794o477hBxcXGiSZMm4qmnnhIXLlxwW2f9+vXi6quvFjExMeKSSy5x24cW4XijJyLSKhTvceGSR4TiufOmslKIzMzaQYBrMJCVJa1H6iorhVi/Xoj586V/eb4okmm9z9mEEKJun0HUjbKyMiQmJqK0tDRsHwMTEanhPc64cDt3+flSMyBfZs4E0tKApk2BnBwgOjrgSQsbeXnAqFHAoUM1r2VmArNnAy7z2ZEJqqqADRuAwkJei2Ywej613ucMDx9KREREgeGa+f/0k7bPjBlT8/8s5NbIywP69ZOen7g6fFh6fckSniezeAu4evVigKBXXQSwfCJARBSGeI8zLtTPnVLmr5fNJv0b6EJuqNf+VlVJHarVzqXNJhWs9u0LrXSHI7WAy2aTXktJAU6cqHmdwap33s4n4Pu3zScCREREXmzYAPTo4b0AWNcFXbXMXy8hpALDqFFAYiJw9Kj56Q+H5jYbNngPqIQADh6U1uvc2b99hXpQFEhVVdK1oHTdyq+5BgFAzROZjz4CHI7Anbdw/F58nU8zf9sMBIiIyJLuust7wdXMgq6Wwoi3zN8IIaS0d+1a85pZBfVgN7fRWrgrLNS2Pa3rqQmHoCiQfAVcSuRrZ+BA9/kwzDxvdfEbDkSgoSWANe23XQcdl4Mi3EaFICLSg/c44+RzB5SqDr9p5nCdS5fWHvUnM7P2NtavVx8ZyKxFTv+iRcZH0AnEKEZ6RvTRej71nNP167WnVSk9kTy0q5bvZv58869Rf8+br+9Fz29A7ZobN077tRjo8+l53gIyfGg4YSZJRJGM9zjjXAMBpYKrmQVdPYWRiRO1ZfgTJ0rrz5xpvLAVHa2v8OLK7MK1noK93kK3/F0qfcZo0KK0fTODomBRKqAGK4gN9Pei5zegds1pLZB7biuQ59P1vDEQYCZJRBGM9zjjPAMBz4KrWQVdI4URPfv1VcjVW4DQWgurtbZy/nzf29JTsNda6K6ocC/QLl5csz09x6xWc+v6utZgzJ8nDkb5+5QlJUX7tWLmtei6zJxp7KmVkYK0kWvO17XommYj17rR87l+PQMBZpJEFNF4jzNOLRCQC65mFXTropZULlyYVQDTUgtbV4GS5/Fq3a/D4f63WhOOrCz1IEBPUxAzrhWzmfGUJdjXouei56mV0aZKRq85X78BLdd6ZqYQa9b4DmC1Xm9a8wh2FiYiIoLU0c/1X1+Ki4EFC9Q7Dmod/18LecjAWbPcOyL26SN1zPV3uFGZlhF0cnKkjomHD0vFDqW0ZmZK63mjd0QfrR16jx1z//vwYWDGDO2j06h1hD50CJg+XVsaPGm9przR2ln1+HGgf//a6VfqyG20g7r83bz+es0kdr16KV+L8rCh8jCiRukZZcjo+TZ6zamRP2+08+/TT0v3GL2/7eJiYPFijStri63CD2vLiCiS8R5nnNY+At5q4pTaFxutLdayeKu9FkJqDjNzphAjRgjxyitCNGtmvGb2ww99n0O12t9ANDEyo0+E1jbnRpuC+LtfLedb6xMKb83NzK7x9kzP0qXa+xoYaRan9tvT2zfE1yI/wTHriYA/nX9d+xGtWaPn3sSmQZpOABFROOI9zjg9owYFqpmDlkUuAPvTvttI+nv3lgKKmTOlAEPPfn0FLK6MFLKMFh49C2ZmpslXQS5Qo9+YcR7qcrQfzwDBn6YvWvbrz2/Y3344ZgVc/jXBYiCg6QQQEYUj3uOMcw0E5IJroGsx/SmseeOtAyKg3uFT6xIdLdU6q9HSoVYtkAlUB1Nvi6+2+qNHm7cvPUGRt/MbiKdMZjxlUVr0PgFR+o2ZuV+9v2Ez+j4EqvOv/uPSlkfYhBBCX8uj8BDqU8gTEfmD9zjj5HO3YkUpevSwY/ly9UmHevWqaX9dXAyMGWNOGuS23UrkNvb79vme9Tg7W739sM0GNGsGzJsnzT7qT/rHjQNeflnbunomcZLb4wNS0UUrz/PncNTuG6Bk/Xr1/g9VVUB6utTG3qiZM2vazBudWMq1zb+Z15wab9eiUd7Osyczj1fp/Kv1oQDcrzm5H45SHwSle0RWFnDffbXb8GdlSX15zLrWAWD+fGniNVe+z1sZAA15hLaYLfywtoyIIhnvcca5njs9Q/r524zCtamP0SEtXekdvcef2uXoaO/NhGRGJnEyWivsOrRkRYX3px9aaqr9aRYUyL4AwVr8eapkdJQkM58SeRtlSK1Zm7cJwpSeclVWSu32J06UljVrvD8VM/r9+no6qHxvYtMgTSeAiCgc8R5nnHzuTp4sDcjwlVozcz1DPCoxMszp4sXG0z9zpvf0+DOJk2uhSevEaq7HtXSp7/V9nVd/hpzUErz5ai4ViL4AehbP70ap2VxdzJtgVv8co30WtG7H2+/X23uu+/XV+VdrgKl8b2IgoOkEEBGFI97jjJPP3YoVpT4LE66FmoqK2mPUay2QqLVfbtbMfd1mzQI3w6+/tc0jRpiTHl+FLK3bWbNGWl9LAJKSYt78CErbVnrS4fldewv6AtEXwEh/Fl8TeBmZqdlIPxKz+ueYNVqU53Z89c3Req27bkvP00HPc1dRofS9MBDQdAKIiMIR73HGyefu73/XFgjMn+9/IXrRIvc06GmSpEZPocyM2mZfTwTMmsRJa/MQuSBt9gRnRs6TZ/MZ10K+lu86EKMVuQYnRp6yyOdEqXmL1oKrnmFPPWvMP/xQuuY+/ND/UYbMGi1KPgdG7wV6OjWrdTb3dk7dzw8DAU0ngIjINErVNL6GTjGI9zjj9D4RmDrVd+FDrX2xvDRpIsTChTUFHG9PFrzVYmodgtG1UGZGbbOWPgJmNp3S0tRHXvr107aeluFYzW6WsmiR73OfmSldE3r3oXbNKRUgtX43Eyd6b88uF9YXL659DXvuV2/wqdYnwTOoCsTMzlqDWHlYXX+uDc/zLP+ulfoa6G2+5H49cNQgjqhBRHVHaagUz+E41IZO0cplmIgyux2Jd93Fe5wBcv5w8mQprrzSrjpDLiDNimqzeR9JxuGQvvaYGGlm1d//3px0eo68ojYaz8CB6iOX9Oolzf7q78gzAwZI25JHUQGkS/HwYWm0HodDGnFnyBD1GYd9mTgRaNeuZmQXs86jEm8/RaXzbITNBjRpom00oyFDpNGdfPEcFQcA8vOlBZCul86d3UcrqqqS3u/fHzh5Ulva5dmAPcmzA3u+36QJMGdOzXfma0QrPeTRfOQZkV1Hy/nsM23nzfO35DmSUFWV+6y+dUXt96v2uq/Rxpo1A/7xD+nYKirKMH06Rw1ibRkRBZ7Wqi9/ZhjyqIIrBXiPM8g1fxg3zv/aPaCmBs/Mdt6enWEDPRpPx4619xEVJUR8vPtrKSnqI8n4M5GZ6xLo+Rq8nTch3GtitT5x8HdJSdHX9l5LZ/O6GoXI89ZmZlMnteOvrKzdx0Zpycz0fd6aNfN+/sNzYdMgTSeAiMgvRkp/njmTLwqlVQYCxsn5wwcflJqW8ScnS02IzMzI5Y6b8sgiegpJ/owOBAjRqJEQXboYLxj5O5FZXS2eAUezZtL36NoUo67SYrerf79Kbe99BYZmX4++Ftfr0MwZi10X16FwtTbRmTq15jNq58T1XEZOMMCmQcaaBnk+LzI6I0gk4zkiqpGfD3Tpov9zU6cCkyZJ/+/5m+rUCdi4Ufp71y5pXQ/SVDFg0yAD5PwhI6MUR46E5rkzMsmT3Pxh8WKpWYHZk0RpZbMBGRlSc6T//heYOxc4ezY4afGXGZNtJSYCpaXGP+85QVVVldQ8SKnpjiwqCqiuNr5Pf8ycKaXthRfM3/b8+UBsrL6mW/JnnnxSarbmTaNGQL16/n1foUPbhGL16i5BYUDPdIjhzJ+CvFXOEZFWhYXGPjd5MnD55dL/++pbQAFx5EiwU6DOyNdfWCjdouVZU4NFCKnA9fTTwdl/797ST+unn6Tz4Q8zfob+FCqnTgWefVaqF1iwQMqyP//cexAABC8IAAI7E/JrrwGbNun7zOrVUj8CLdXep08bSlZY4xMBmTz3s+fp8OylYoZg1qj7U5Cvy3NEFC6MPhEAgIQEoLzc0Ef5RMA4OX8ASgFEzrl75RWpNtaMDpoUGux26TbhWpMtd9il0JGcDDz2GPDXvwY7Ja60PRGIqrsEhbCqKqlwrPTLkl8bPdqcqoG8PKkrfZcuwP33S/9mZ/tfbaF13/361c4lDh+WXveWBn/OkTxkwYIF0r9Gz6NZ2yEyk5YhQdQYDAKIlDz1FIOASFNWVrs5C4OA0HPypO+nNKHK2k8E5Jr5tWu1NWbzHH9Kr2DWqPsay8tmk54M7Nun/HRCa62n1vHu5CcQcuHe29hnWrZDFEiuT/FSU6XXjh6V/n/IkKCUvvhEwLhIfSJARFRD2xMBawUCrpn57t3Au+/qy8BdBzl2HUjZs3Cg1NzH34K463aMNCvSW5D33M/hw8CDD/r+vOdA0P37q1df3HUX8MUXUpWHq5QU4J13agr4dRFAsQN03Qm3c23WoOImYyBgHAMBIop82gIBmDASW0hyDh86bZo0Zd/UqeYOputtIGWgZiw5eTw3M+ZA1zJosBqtY3nNn6+8nyZN9J8jfweCHj1a37h5avOS+xqm0Z/zSvqE27nWOzVmHS4cPtQ4OX+QhtcL+ldp2cVzfgIuXLiYuXD4UOmJAIJc35OSArz5JvDjj9qaH82fL4375klrrbhc2+o63WOzZtqnzZs6FZgypfZ+Qt0ttwBbtii3ufY1hSQ7QNeNcDvXZk6NGQB8ImAcnwgQUeRj06DQCAT0mjkTGDmypqmE1rnBHQ6p83FurtQkx1NKivTvyZPKhXx5bmohfA+0G45sNqmg2auXe3OuAQPUe/hoba5FvpnVNC4QlJoqAcDrrwd2HDw/MRAwjoEAEUU+BgLhGQgA0jhUo0ZJbe3HjDG/RtJz7DG5Rvb3vwcWLTJ3X6HCZpPOa1yc/vPpbydxMt7ZPNCU2v8nJwOVlbX7roQYBgLGMRAgosjHCcXC18mT0mRDgdKoEXDqVM3fzZoBzZtHbhAASIGP0bG9jE4YZSW+OgBrPYd1ea7Vmip5e/JGREQUQRgIWJEcBMTFAVdcIbWtD9F20CFBHhGKlGkZ2rVpU23bktdT6+via4QhrSMSeZsXg4iIyCIYCFjZ2bPAN98EOxXhKdSGwNQ6H4PZ1GrV5Unq5A7AOTlScHD4sHoflcxMaT1vw3U2aQLMmSM1Y1NKi9a5JjZsYPBLpuOMr2REw4bAmTPBTgUFU1QUUF0dpJ0HfJy2IHEOHxr88Zu4hPsyf777xRVqQ2AuXao8lG1KSmDTVFmpfWhXOZ02W+3hOOXXli7VPlznuHG1z4HS51y37UrrcLohvHD4UOMCNXzoqlXSiMXz50sjGIfAZcIlDJbRo5VvjVwid5FHmJ8/X7pnLF4ciO9f2/Ch0HsD/fzzz8Vdd90lmjZtKgCIZcuWub0/ePBgId1ga5bu3bu7rXPixAlx//33i4SEBJGYmCj+8Ic/iPLycrd1fvjhB3HzzTeL2NhYkZmZKV566SVd6WQgwMW0xXVuB70FzkBbutR3+gOVJiNzYygFUVlZ0uu+AgvPZfFiaZt6AxI9aQ/hJRQDgXDLH7QEAg6HED17ChEVpe8Sky9LMzN3f6dmiaSCptY5CNq1E6JRI/P3b7NJ3++qVUJMnChEv37GptsBpNuR0q0xUpd+/aTztmaNENdcY952s7KEWLRIiOee839bAwYE5vvwnGLK1dKl+q8h77+DAAUCn376qfjzn/8s8vLyhNqNvkePHqKwsNC5nDx50m2dHj16iKuuukps2rRJbNiwQVx66aVi4MCBbjfptLQ08cADD4jt27eLBQsWiLi4OPH2229rTicDAS6mLK65u5ECZyBVVgrRrJnvY8jMDEya9ExS55luudrUdcI3vYVzh6NmW1rWdw1IAlFKq8slPl6UTpggQi0QCLf8ISPDPRCQCxJKl+fixeo/e7U6ALWHYC5fo+avfOJEISoqpDSNHi1d/q7vK81x6Rk4yMdn9NL3DIYaNxbCbq+7n1FUlBCjRknnYM0a7T/7ykqpYGdmWpS+c9db29Spvm/PnllGZWXwnyQlJARu29HRNfU3MjPqZEaPrj136LhxxrYl10spfZ/efsvyA3ilgM7hUE6jkg8/1JZOeX+VldJvYeJEIf70JyFmzJB+I9L9IUCBgNuHoXyj79Wrl+pnfvrpJwFAfPvtt87X/vOf/wibzSYOHz4shBBizpw5onHjxqKiosK5zjPPPCNat26tOW0MBLj4vXje6c2YHdpMeu6ggUiT2efDSHMd+S6tZV2lJl6h/Dz+1ltrVw+5VCc573EhFAi4Cof84eTJUsVCvxpvD7SMfEZPwc/zZ6QUT3u+JgcOnsen99KX11UKkrRsKz5eiMmTpQLLk08a/8ktWuR+/L4CGs96mcWLawdQRhZf37lrGqdO9X5OlYIJs+sokpOl8+95Hcqvr1nj/p2qBb3yMnq0dFye27Pba47N1/dnxvH6+h4WL65Jk5ZztGaN93uA0m9ZqYZfra5LC63Z6po13rdTWSnEihVBDAQSExOFw+EQl112mXjsscfE8ePHne//4x//EElJSW6fuXDhgoiOjhZ5eXlCCCEeeuihWpnFunXrhHTjdq89UsNAgItfi8NhvF25Z4EzUPQUnAORJl93cL1PSIxUDcl3Wi3rKgUkofo8Xj5vXnKUcA0EQip/MHDujGTy3j5j9s9IK6VLv3FjIbp0kQo3npej3mAnIUFqAqJUuPJV0PRc1Lo7ael25Mnzu1i8WN8tYOZM/d+F3gDS23HJ58Pz/KhdO67nQc+1qyXNStszGix7O165Lf2aNbWDFl/kYEzt6ZveVr3+FPK1bt+s+4HW+xz8SbDSjX7BggVi+fLl4scffxTLli0Tbdu2FTfccIOovJjqv/zlL+Kyyy6rtS2HwyHmzJkjhBDi9ttvF8OGDXN7f8eOHQKA+OmnnxTTcu7cOVFaWupcDh48KBgIcDG0OBxSVZonPhGozUhOrEZvHwH5uPy9c7re2SdP9r8htr+LxvMWjoFAyOUPIXLuzPwZ6aFWqDE72FGiVGD0/Ol5a0/tbTtaa+xd075mTe0ASM9tRMs+zHr6ZFYB3Ow0+/O5QKTfM01Tp+oPcoPBrPtB0AIBT3v37hUAxJqLzzECdaOfPHmy8OyEFrBAQA6/Q61JQYMGwU+Dv0soF8KCVXWnJth9BGRm3sG1jhok70PPiERa6a2uNHPRMdJTOAYCnoKeP4TQuQt0QSgUaW3KpHc7Rm93wQrI1Og9rkDXVgdaXaQ/XM6RGfeDkAkEhBCiSZMm4q233hJCBO7Rr99PBOLja/eSadJEagyn9DxK6VtSez5n9uL5jMvhkBrfqYW8/i5qzyPN2KbnnVZuhDp6dGgWwkItpwjmqEGuzLy7ammuo3SuzQ5IfFVX+rqWxo3T3hBbS9Wnh0gIBIQIcv4QYucuXAopkcyKARmFJn/vByETCBw8eFDYbDaxfPlyIURNZ7DvvvvOuc6qVasUO4OdP3/euc6ECROMdRbOyNCeAZsRfi9dql5LqzSsg+cwDN4KG/JY9b7S6dnVXakAHxsrRExM7dfj42uvr/Q8cs0aqRmFnmEv5IBF653WW4FQrXDlef4yM2sP1qult483oZZTBGsegUCSr7VRo4RITNR+rs0sSfmqrtRyLaldK2pD0+gQCYFA0POHED13FFwMyCgSaL3P2YQQQs8EZKdOncKePXsAANdccw1effVVdOnSBcnJyUhOTsbUqVPRt29fpKenY+/evRg/fjzKy8uxbds2xMbGAgDuuOMOFBcX46233sKFCxfw8MMP4/rrr8f8+fMBAKWlpWjdujW6deuGZ555Btu3b8cf/vAHzJw5E8OGDdOUzrKyMiQmJqL05EnYf/hBmtH02DEgJQU4cQJwOIBmzQIzI6w866y8T9d9Ae4z0nbqBGzcqPx3aqq0/tGj/s1eqzbrLKD+utZZc+Vtr1sHHDggzeTapAmQni4taunXOjOv2rmUz5Pa6962a8aswJxZuO6E2rl2pSVtAUq/8x5XWgq73e739swQdvlDCJ07IiIzab7P6Y0w1q9fL4DabS0HDx4szpw5I7p16yYcDoeoX7++aNGihXj00UdFUVGR2zZOnDghBg4cKOLj44XdbhcPP/yw1wljmjVrJl588UVd6WSNDxFFslC8xzF/ICIKDQF7IhAuWONDRJGM9zjjeO6IKNJpvc9F1WGaiIiIiIgoRDAQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCdAcCX3zxBe6++25kZGTAZrPh448/dntfCIFJkyahadOmiIuLQ9euXbF79263dU6ePIkHHngAdrsdSUlJGDp0KE6dOuW2zo8//oicnBw0aNAAWVlZePnll/UfHRER1RnmD0RE4UV3IHD69GlcddVVeOONNxTff/nll/Haa6/hrbfewtdff41GjRqhe/fuOHfunHOdBx54ADt27MDq1auxYsUKfPHFFxg2bJjz/bKyMnTr1g0tWrTA5s2bMX36dEyZMgXvvPOOgUMkIqK6wPyBiCjMCD8AEMuWLXP+XV1dLdLT08X06dOdr5WUlIjY2FixYMECIYQQP/30kwAgvv32W+c6//nPf4TNZhOHDx8WQggxZ84c0bhxY1FRUeFc55lnnhGtW7fWnLbS0lIBQJSWlho9PCKikBXq9zjmD0REwaP1PmdqH4F9+/ahqKgIXbt2db6WmJiIDh06oKCgAABQUFCApKQkXH/99c51unbtiqioKHz99dfOdW655RbExMQ41+nevTt27dqFX3/9VXHfFRUVKCsrc1uIiCg0MH8gIgo9pgYCRUVFAIC0tDS319PS0pzvFRUVITU11e39evXqITk52W0dpW247sPTtGnTkJiY6FyysrL8PyAiIjIF8wciotATMaMGTZgwAaWlpc7l4MGDwU4SERGFAOYPRETKTA0E0tPTAQDFxcVurxcXFzvfS09Px9GjR93er6ysxMmTJ93WUdqG6z48xcbGwm63uy1ERBQamD8QEYUeUwOBli1bIj09HWvXrnW+VlZWhq+//hodO3YEAHTs2BElJSXYvHmzc51169ahuroaHTp0cK7zxRdf4MKFC851Vq9ejdatW6Nx48ZmJpmIiOoA8wciotCjOxA4deoUtm7diq1btwKQOoBt3boVBw4cgM1mw+jRo/HCCy/gk08+wbZt2zBo0CBkZGSgd+/eAIC2bduiR48eePTRR/HNN9/gq6++wogRI3DfffchIyMDAHD//fcjJiYGQ4cOxY4dO/DRRx9h9uzZGDt2rGkHTkRE5mL+QEQUZvQOR7R+/XoBoNYyePBgIYQ0RNxzzz0n0tLSRGxsrLjtttvErl273LZx4sQJMXDgQBEfHy/sdrt4+OGHRXl5uds6P/zwg7j55ptFbGysaNasmXjxxRd1pZPDwxFRJAvFexzzByKi0KD1PmcTQohgBCCBVlZWhsTERJSWlrI9KBFFHN7jjOO5I6JIp/U+FzGjBhERERERkXYMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBTEQICIiIiKyIAYCREREREQWxECAiIiIiMiCGAgQEREREVkQAwEiIiIiIgtiIEBEREREZEEMBIiIiIiILIiBABERERGRBZkeCEyZMgU2m81tadOmjfP9c+fOYfjw4UhJSUF8fDz69u2L4uJit20cOHAAPXv2RMOGDZGamopx48ahsrLS7KQSEVEdYv5ARBRa6gVio+3bt8eaNWtqdlKvZjdjxozBv//9byxevBiJiYkYMWIE+vTpg6+++goAUFVVhZ49eyI9PR0bN25EYWEhBg0ahPr16+Ovf/1rIJJLRER1hPkDEVEIESabPHmyuOqqqxTfKykpEfXr1xeLFy92vrZz504BQBQUFAghhPj0009FVFSUKCoqcq7z5ptvCrvdLioqKjSno7S0VAAQpaWlxg6EiCiEheM9jvkDEVHd0HqfC0gfgd27dyMjIwOXXHIJHnjgARw4cAAAsHnzZly4cAFdu3Z1rtumTRs0b94cBQUFAICCggJcccUVSEtLc67TvXt3lJWVYceOHar7rKioQFlZmdtCREShhfkDEVHoMD0Q6NChA+bNm4eVK1fizTffxL59+5CTk4Py8nIUFRUhJiYGSUlJbp9JS0tDUVERAKCoqMjtJi+/L7+nZtq0aUhMTHQuWVlZ5h4YERH5hfkDEVFoMb2PwB133OH8/yuvvBIdOnRAixYtsGjRIsTFxZm9O6cJEyZg7Nixzr/Lysp4syciCiHMH4iIQkvAhw9NSkrCZZddhj179iA9PR3nz59HSUmJ2zrFxcVIT08HAKSnp9caJUL+W15HSWxsLOx2u9tCREShi/kDEVFwBTwQOHXqFPbu3YumTZviuuuuQ/369bF27Vrn+7t27cKBAwfQsWNHAEDHjh2xbds2HD161LnO6tWrYbfb0a5du0Anl4iI6gjzByKi4DK9adDTTz+Nu+++Gy1atMCRI0cwefJkREdHY+DAgUhMTMTQoUMxduxYJCcnw263Y+TIkejYsSNuuukmAEC3bt3Qrl07PPTQQ3j55ZdRVFSEiRMnYvjw4YiNjTU7uUREVEeYPxARhRbTA4FDhw5h4MCBOHHiBBwOB26++WZs2rQJDocDADBz5kxERUWhb9++qKioQPfu3TFnzhzn56Ojo7FixQo8/vjj6NixIxo1aoTBgwfj+eefNzupRERUh5g/EBGFFpsQQgQ7EYFQVlaGxMRElJaWsj0oEUUc3uOM47kjokin9T4X8D4CREREREQUehgIEBERERFZEAMBIiIiIiILYiBARERERGRBDASIiIiIiCyIgQARERERkQUxECAiIiIisiAGAkREREREFsRAgIiIiIjIghgIEBERERFZEAMBIiIiIiILYiBARERERGRBDASIiIiIiCyIgQARERERkQUxECAiIiIisiAGAkREREREFsRAgIiIiIjIghgIEBERERFZEAMBIiIiIiILYiBARERERGRBDASIiIiIiCyIgQARERERkQUxECAiIiIisiAGAkREREREFsRAgIiIiIjIghgIEBERERFZEAMBIiIiIiILYiBARERERGRBDASIiIiIiCyIgQARERERkQUxECAiIiIisiAGAkREREREFsRAgIiIiIjIghgIEBERERFZEAMBIiIiIiILqhfsBHjzxhtvYPr06Sgq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J9cd8wjmESGRR/g507tfunfvLubOnSu2b98utm7dKu68807RvHlzcerUKec6jz32mMjKyhJr164V3333nbjppptEp06dnO//4x//EE8++aTIz88Xe/fuFR988IGIi4sTr7/+unOdUaNGiZdeekl888034pdffhETJkwQ9evXF99//73X9L344osiMTFRfPzxx+KHH34Q99xzj2jZsqU4e/asEEKIiooKUVhY6LY88sgjIi4uTrz33nthe1yHDx8WjRs3Fo899pj4+eefxU033SQuvfRScfvtt4fk8fzzn/8UU6dOFe+++64AILZs2VJrnZkzZ4pp06aJadOmCQDijTfeCPj38/3334v58+eL7du3i3379okPPvhANGzYULz99tt+fT9CCDFp0iTx6quvihYtWoi4uLiwPpZXX31VFBQUiP3794sOHTqIVq1aiauuuipsj6dFixbi+eefd7svuKaftIvEPCIzM1M0adJEbNu2LSyPyQr5w2233VYn1x3zCOYRoZBHBDUQ8HT06FEBQHz++edCCCFKSkpE/fr1xeLFi53r7Ny5UwAQBQUFqtt54oknRJcuXbzuq127dmLq1Kmq71dXV4v09HQxffp052slJSUiNjZWLFiwQPEz58+fFw6HQzz//PNhfVxvv/22SE1NFVVVVc51fvzxRwFA7N69O6SOx9W+fftUb/Sy9evXCwDi119/db5Wl8dz7733igcffFD1fb3X3dy5c0ViYmJEHIts+fLlwmazifPnz4fl8bRo0ULMnDnT677ImFC695iVR4TbMVktfxAivO+rzCNC73hCLY8IqT4CpaWlAIDk5GQAwObNm3HhwgV07drVuU6bNm3QvHlzFBQUeN2OvA0l1dXVKC8v97rOvn37UFRU5LbvxMREdOjQQXXfn3zyCU6cOFFrZstwO66KigrExMQgKqrm8oiLiwMgPS4LpeMxQ10dz5YtW7Bx40bceuutqusYue4i6VhOnjyJ3Nxc5yPtcD2eF198ESkpKbjmmmswffp0VFZWqm6XtAule49ZeUS4HZPV8gc5LUD43Yci8ViYR5gvZCYUq66uxujRo/Hb3/4Wl19+OQCgqKgIMTExSEpKcls3LS0NRUVFitvZuHEjPvroI/z73/9W3deMGTNw6tQp9O/fX3Udefues1R62/c//vEPdO/eHZmZmWF9XL/73e8wduxYTJ8+HaNGjcLp06fx7LPPAgAOHz4cUsfjr7r4fjIzM3Hs2DFUVlZiypQpeOSRR1TTY+S6i4RjeeaZZ/C3v/0NZ86cwU033YQVK1aE7fE8+eSTuPbaa5GcnIyNGzdiwoQJKCwsxKuvvqq6bfItHO+lnjzziHA8JivlD0B431cj6ViYRwROyDwRGD58OLZv346FCxca3sb27dvRq1cvTJ48Gd26dVNcZ/78+Zg6dSoWLVqE1NRUAEBubi7i4+Ody4YNG3Tv+9ChQ1i1ahWGDh3q9no4Hlf79u3x/vvv45VXXkHDhg2Rnp6Oli1bIi0tDf/617/C7ni8qYvvZ8OGDfjuu+/w1ltvYdasWViwYAEA848nnI9l3Lhx2LJlCz777DNER0dj0KBBeOKJJ8LyeMaOHYvOnTvjyiuvxGOPPYZXXnkFr7/+OioqKgwfB4XnvdSVUh4RjsdkpfwBCO/7qqdwPhbmEQEU7LZJQggxfPhwkZmZKf773/+6vb527VrF9nrNmzcXr776qttrO3bsEKmpqeJPf/qT6n4WLFgg4uLixIoVK9xeLysrE7t373YuZ86cEXv37lVsT3jLLbeIJ598sta2n3/+eeFwOMT58+cj6riKiopEeXm5OHXqlAAgUlJSQup4XOltA1pX34+r//u//xOXXXaZ6vHo/X7k9p+RcCyygwcPCgAiNTU1Io5n+/btAoD4+eefNaWDaouEe6lnHhEJxxTJ+YMQdfcduWIewTyirgU1EKiurhbDhw8XGRkZ4pdffqn1vtzpY8mSJc7Xfv7551qdPrZv3y5SU1PFuHHjVPc1f/580aBBA/Hxxx9rTlt6erqYMWOG87XS0lLFTizV1dWiZcuW4qmnnoqo43L9zO9+9zths9nEd999F1LH40rPjf6RRx6pk+/H09SpU0WLFi1U39f7/bz33nsiJiYmIo5F/sygQYMEAPHBBx+E/fEIIcSHH34ooqKixMmTJzWnhSSRci91zSMi5ZhcPxNp+cPJkyfr7DvyxDyCeURdC2og8Pjjj4vExESRn5/vNoySayT/2GOPiebNm4t169aJ7777TnTs2FF07NjR+f62bduEw+EQDz74oNs2jh496lwnNzdX1KtXT7zxxhtu65SUlHhN34svviiSkpLE8uXLxY8//ih69epVaxgoIYRYs2aNACB27twZMcf1+uuvi82bN4tdu3aJnJwcAUCMHDkyJI/nxIkTYsuWLeLf//63ACAWLlwotmzZIgoLC53rFBYWii1btjiHkIuPjxfvvvuu+OmnnwJ2PH/729/EJ598In755Rfxyy+/iL///e8iISFB/PnPf/b7+/nf//4ntmzZIm644QYBQLz77rti9erVYs+ePWF1LJs2bRKvv/662LJli9i/f7+45557RHR0tMjIyBD79+8Pu+9m48aNYubMmWLr1q1i79694sMPPxQOh0MMGjTI63ZJWSTcS4VwzyMi4ZgiPX/o3bu3iI+PF5988klAj4l5BPOIUMgjghoIAFBc5s6d61zn7Nmz4oknnhCNGzcWDRs2FPfee6/bD3jy5MmK23CN2m699VbFdQYPHuw1fdXV1eK5554TaWlpIjY2Vtx2221i165dtdYbOHCg2xi1kXBcDz30kEhOThYxMTEhfzxz585V/NzkyZN97j+Qx/Paa6+J9u3bi4YNGwq73S6uueYaMWfOHLdh94x+P4MHD46IY/nxxx9Fly5dRHJysoiNjQ3749m8ebPo0KGDSExMFA0aNBBt27YVf/3rX8W5c+e8bpeUhfq9x0geEQnHZMX8IZzuQ0IwjwjV4wnFPMImhBAgIiIiIiJLCZlRg4iIiIiIqO4wECAiIiIisiAGAkREREREFsRAgIiIiIjIghgIEBERERFZEAMBIiIiIiILYiBARERERGRBDASIiIiIiCyIgQARERERkQUxECAiIiIisiAGAkREREREFsRAgIiIiIjIghgIEBERERFZEAMBIiIiIiILYiBARERERGRBDASIiIiIiCyIgQARERERkQUxEKCwNWTIEGRnZ+v+XHZ2NoYMGWJ6eoiIKHQwjyDyjYEABdycOXNgs9nQoUMH3Z89cuQIpkyZgq1bt5qfMJP961//wt133420tDTExMQgOTkZt9xyC1555RWUlZUFO3mGjRkzBtdeey2Sk5PRsGFDtG3bFlOmTMGpU6eCnTQiigDMI8I7j3C1d+9eNGjQADabDd99912wk0Ma1At2Aijy5ebmIjs7G9988w327NmDSy+9VPNnjxw5gqlTpyI7OxtXX32123vvvvsuqqurTU6tftXV1Rg6dCjmzZuHK664Ak888QSysrJQXl6OgoICTJw4EZ9++inWrl0b7KQa8u233yInJwcPP/wwGjRogC1btuDFF1/E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fPTRR5g9e7bbo10iIgotzB+IiMKM0Gn9+vUC0hzUbsvgwYPFmTNnRLdu3YTD4RD169cXLVq0EI8++qgoKipy28aJEyfEwIEDRXx8vLDb7eLhhx8W5eXlbuv88MMP4uabbxaxsbGiWbNm4sUXX9SVztLSUgFAlJaW6j1EIqKQF4r3OOYPREShQet9ziaEEEoBQrgrKytDYmIiSktL2R6UiCIO73HG8dwRUaTTep8LeB8BIiIiIiIKPQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEF6Q4EvvjiC9x9993IyMiAzWbDxx9/7Pa+EAKTJk1C06ZNERcXh65du2L37t1u65w8eRIPPPAA7HY7kpKSMHToUJw6dcptnR9//BE5OTlo0KABsrKy8PLLL+s/OiIiqjPMH4iIwovuQOD06dO46qqr8MYbbyi+//LLL+O1117DW2+9ha+//hqNGjVC9+7dce7cOec6DzzwAHbs2IHVq1djxYoV+OKLLzBs2DDn+2VlZejWrRtatGiBzZs3Y/r06ZgyZQreeecdA4dIRER1gfkDEVGYEX4AIJYtW+b8u7q6WqSnp4vp06c7XyspKRGxsbFiwYIFQgghfvrpJwFAfPvtt851/vOf/wibzSYOHz4shBBizpw5onHjxqKiosK5zjPPPCNat26tOW2lpaUCgCgtLTV6eEREISvU73HMH4iIgkfrfc7UPgL79u1DUVERunbt6nwtMTERHTp0QEFBAQCgoKAASUlJuP76653rdO3aFVFRUfj666+d69xyyy2IiYlxrtO9e3fs2rULv/76q5lJJiKiOsD8gYgo9NQzc2NFRUUAgLS0NLfX09LSnO8VFRUhNTXVPRH16iE5OdltnZYtW9bahvxe48aNa+27oqICFRUVzr/Lysr8PBoiIjIL8wciotATMaMGTZs2DYmJic4lKysr2EkiIqIQwPyBiEiZqYFAeno6AKC4uNjt9eLiYud76enpOHr0qNv7lZWVOHnypNs6Sttw3YenCRMmoLS01LkcPHjQ/wMiIiJTMH8gIgo9pgYCLVu2RHp6OtauXet8raysDF9//TU6duwIAOjYsSNKSkqwefNm5zrr1q1DdXU1OnTo4Fzniy++wIULF5zrrF69Gq1bt1Z87AsAsbGxsNvtbgsREYUG5g9ERKFHdyBw6tQpbN26FVu3bgUgdQDbunUrDhw4AJvNhtGjR+OFF17AJ598gm3btmHQoEHIyMhA7969AQBt27ZFjx498Oijj+Kbb77BV199hREjRuC+++5DRkYGAOD+++9HTEwMhg4dih07duCjjz7C7NmzMXbsWNMOnIiIzMX8gYgozOgdjmj9+vUCQK1l8ODBQghpiLjnnntOpKWlidjYWHHbbbeJXbt2uW3jxIkTYuDAgSI+Pl7Y7Xbx8MMPi/Lycrd1fvjhB3HzzTeL2NhY0axZM/Hiiy/qSieHhyOiSBaK9zjmD0REoUHrfc4mhBDBCEACraysDImJiSgtLeVjYCKKOLzHGcdzR0SRTut9LmJGDSIiIiIiIu0YCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiC2IgQERERERkQQwEiIiIiIgsiIEAEREREZEFMRAgIiIiIrIgBgJERERERBbEQICIiIiIyIIYCBARERERWRADASIiIiIiCzI9EJgyZQpsNpvb0qZNG+f7586dw/Dhw5GSkoL4+Hj07dsXxcXFbts4cOAAevbsiYYNGyI1NRXjxo1DZWWl2UklIqI6xPyBiCi01AvERtu3b481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",
|
579 |
+
"text/plain": [
|
580 |
+
"<Figure size 800x600 with 4 Axes>"
|
581 |
+
]
|
582 |
+
},
|
583 |
+
"metadata": {},
|
584 |
+
"output_type": "display_data"
|
585 |
+
}
|
586 |
+
],
|
587 |
+
"source": [
|
588 |
+
"fig, axs = plt.subplots(2, 2, figsize=(8, 6))\n",
|
589 |
+
"\n",
|
590 |
+
"# Plot scatter plots for each group\n",
|
591 |
+
"axs[0, 0].scatter(df.loc[df['Group'] == '4', 'Date'], df.loc[df['Group'] == '4', 'sales'], color='red', marker='o')\n",
|
592 |
+
"axs[0, 0].set_title('Article Group 1')\n",
|
593 |
+
"\n",
|
594 |
+
"axs[0, 1].scatter(df.loc[df['Group'] == '7', 'Date'], df.loc[df['Group'] == '7', 'sales'], color='blue', marker='o')\n",
|
595 |
+
"axs[0, 1].set_title('Article Group 2')\n",
|
596 |
+
"\n",
|
597 |
+
"axs[1, 0].scatter(df.loc[df['Group'] == '1', 'Date'], df.loc[df['Group'] == '1', 'sales'], color='green', marker='o')\n",
|
598 |
+
"axs[1, 0].set_title('Article Group 3')\n",
|
599 |
+
"\n",
|
600 |
+
"axs[1, 1].scatter(df.loc[df['Group'] == '6', 'Date'], df.loc[df['Group'] == '6', 'sales'], color='yellow', marker='o')\n",
|
601 |
+
"axs[1, 1].set_title('Article Group 4')\n",
|
602 |
+
"\n",
|
603 |
+
"# Adjust spacing between subplots\n",
|
604 |
+
"plt.tight_layout()\n",
|
605 |
+
"\n",
|
606 |
+
"for ax in axs.flat:\n",
|
607 |
+
" ax.set_xlim(df['Date'].min(), df['Date'].max())\n",
|
608 |
+
" ax.set_ylim(df['sales'].min(), df['sales'].max())"
|
609 |
+
]
|
610 |
+
},
|
611 |
+
{
|
612 |
+
"cell_type": "code",
|
613 |
+
"execution_count": 1,
|
614 |
+
"id": "c0dfb883-aa55-45b1-81ea-12afc089d5fd",
|
615 |
+
"metadata": {},
|
616 |
+
"outputs": [
|
617 |
+
{
|
618 |
+
"name": "stderr",
|
619 |
+
"output_type": "stream",
|
620 |
+
"text": [
|
621 |
+
"/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/tqdm/auto.py:22: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
622 |
+
" from .autonotebook import tqdm as notebook_tqdm\n",
|
623 |
+
"/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torchvision/io/image.py:11: UserWarning: Failed to load image Python extension: dlopen(/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torchvision/image.so, 0x0006): Library not loaded: @rpath/libpng16.16.dylib\n",
|
624 |
+
" Referenced from: <5F6B6919-410D-397C-98F2-12C5934F9DBE> /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/torchvision/image.so\n",
|
625 |
+
" Reason: tried: '/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/Users/malfet/miniforge3/envs/py_39_torch-1.10.2/lib/libpng16.16.dylib' (no such file), '/usr/lib/libpng16.16.dylib' (no such file, not in dyld cache)\n",
|
626 |
+
" warn(f\"Failed to load image Python extension: {e}\")\n"
|
627 |
+
]
|
628 |
+
}
|
629 |
+
],
|
630 |
+
"source": [
|
631 |
+
"## Imports\n",
|
632 |
+
"import pickle\n",
|
633 |
+
"import warnings\n",
|
634 |
+
"#import streamlit as st\n",
|
635 |
+
"from pathlib import Path\n",
|
636 |
+
"\n",
|
637 |
+
"import numpy as np\n",
|
638 |
+
"import pandas as pd\n",
|
639 |
+
"import matplotlib.pyplot as plt\n",
|
640 |
+
"import datetime\n",
|
641 |
+
"\n",
|
642 |
+
"import torch\n",
|
643 |
+
"from torch.distributions import Normal\n",
|
644 |
+
"from pytorch_forecasting import (\n",
|
645 |
+
" TimeSeriesDataSet,\n",
|
646 |
+
" TemporalFusionTransformer,\n",
|
647 |
+
")"
|
648 |
+
]
|
649 |
+
},
|
650 |
+
{
|
651 |
+
"cell_type": "code",
|
652 |
+
"execution_count": 2,
|
653 |
+
"id": "720b4e43-5b2c-489f-9b61-779d618b5f45",
|
654 |
+
"metadata": {},
|
655 |
+
"outputs": [],
|
656 |
+
"source": [
|
657 |
+
"def raw_preds_to_df(raw,quantiles = None):\n",
|
658 |
+
" \"\"\"\n",
|
659 |
+
" raw is output of model.predict with return_index=True\n",
|
660 |
+
" quantiles can be provided like [0.1,0.5,0.9] to get interpretable quantiles\n",
|
661 |
+
" in the output, time_idx is the first prediction time index (one step after knowledge cutoff)\n",
|
662 |
+
" pred_idx the index of the predicted date i.e. time_idx + h - 1\n",
|
663 |
+
" \"\"\"\n",
|
664 |
+
" index = raw[2]\n",
|
665 |
+
" preds = raw[0].prediction\n",
|
666 |
+
" dec_len = preds.shape[1]\n",
|
667 |
+
" n_quantiles = preds.shape[-1]\n",
|
668 |
+
" preds_df = pd.DataFrame(index.values.repeat(dec_len * n_quantiles, axis=0),columns=index.columns)\n",
|
669 |
+
" preds_df = preds_df.assign(h=np.tile(np.repeat(np.arange(1,1+dec_len),n_quantiles),len(preds_df)//(dec_len*n_quantiles)))\n",
|
670 |
+
" preds_df = preds_df.assign(q=np.tile(np.arange(n_quantiles),len(preds_df)//n_quantiles))\n",
|
671 |
+
" preds_df = preds_df.assign(pred=preds.flatten().numpy())\n",
|
672 |
+
" if quantiles is not None:\n",
|
673 |
+
" preds_df['q'] = preds_df['q'].map({i:q for i,q in enumerate(quantiles)})\n",
|
674 |
+
"\n",
|
675 |
+
" preds_df['pred_idx'] = preds_df['time_idx'] + preds_df['h'] - 1\n",
|
676 |
+
" return preds_df"
|
677 |
+
]
|
678 |
+
},
|
679 |
+
{
|
680 |
+
"cell_type": "code",
|
681 |
+
"execution_count": 3,
|
682 |
+
"id": "7a0abc6e-5310-4e86-b622-a27c757a05f4",
|
683 |
+
"metadata": {},
|
684 |
+
"outputs": [],
|
685 |
+
"source": [
|
686 |
+
"def prepare_dataset(parameters, df, rain = \"Default\", temperature = 0.0, datepicker = datetime.date(2022, 10, 24), mapping = {\n",
|
687 |
+
" \"Yes\" : 1,\n",
|
688 |
+
" \"No\" : 0\n",
|
689 |
+
"}):\n",
|
690 |
+
" if rain != \"Default\":\n",
|
691 |
+
" df[\"MTXWTH_Day_precip\"] = rain_mapping[rain]\n",
|
692 |
+
" \n",
|
693 |
+
" df[\"MTXWTH_Temp_min\"] = df[\"MTXWTH_Temp_min\"] + temperature\n",
|
694 |
+
" df[\"MTXWTH_Temp_max\"] = df[\"MTXWTH_Temp_max\"] + temperature\n",
|
695 |
+
"\n",
|
696 |
+
" lowerbound = datepicker - datetime.timedelta(days = 35) \n",
|
697 |
+
" upperbound = datepicker + datetime.timedelta(days = 30) \n",
|
698 |
+
"\n",
|
699 |
+
" df = df.loc[(df[\"Date\"].dt.date>lowerbound) & (df[\"Date\"].dt.date<=upperbound)]\n",
|
700 |
+
" print(df)\n",
|
701 |
+
" df = TimeSeriesDataSet.from_parameters(parameters, df)\n",
|
702 |
+
" return df.to_dataloader(train=False, batch_size=256,num_workers = 0)"
|
703 |
+
]
|
704 |
+
},
|
705 |
+
{
|
706 |
+
"cell_type": "code",
|
707 |
+
"execution_count": 4,
|
708 |
+
"id": "62785ac5-d144-486a-aa15-790e8624fcf0",
|
709 |
+
"metadata": {},
|
710 |
+
"outputs": [
|
711 |
+
{
|
712 |
+
"name": "stdout",
|
713 |
+
"output_type": "stream",
|
714 |
+
"text": [
|
715 |
+
" sales DayInYear time_idx Wahl Baustelle MontagLangesWE \\\n",
|
716 |
+
"270386 1920.2408 263 2455 0.0 0.0 0.0 \n",
|
717 |
+
"270387 1814.0908 264 2456 0.0 0.0 0.0 \n",
|
718 |
+
"270388 1749.4744 265 2457 0.0 0.0 0.0 \n",
|
719 |
+
"270389 1878.0510 266 2458 0.0 0.0 0.0 \n",
|
720 |
+
"270390 1853.9646 267 2459 0.0 0.0 0.0 \n",
|
721 |
+
"... ... ... ... ... ... ... \n",
|
722 |
+
"286850 1693.3114 323 2515 0.0 0.0 0.0 \n",
|
723 |
+
"286851 1898.4318 324 2516 0.0 0.0 0.0 \n",
|
724 |
+
"286852 1581.6030 325 2517 0.0 0.0 0.0 \n",
|
725 |
+
"286853 1569.0580 326 2518 0.0 0.0 0.0 \n",
|
726 |
+
"286854 0.0000 327 2519 nan nan nan \n",
|
727 |
+
"\n",
|
728 |
+
" FreitagLangesWE nosale holiday AufSommerzeit ... \\\n",
|
729 |
+
"270386 0.0 0 none 0.0 ... \n",
|
730 |
+
"270387 0.0 0 none 0.0 ... \n",
|
731 |
+
"270388 0.0 0 none 0.0 ... \n",
|
732 |
+
"270389 0.0 0 none 0.0 ... \n",
|
733 |
+
"270390 0.0 0 none 0.0 ... \n",
|
734 |
+
"... ... ... ... ... ... \n",
|
735 |
+
"286850 0.0 0 none 0.0 ... \n",
|
736 |
+
"286851 0.0 0 NotCondensed_Totensonntag 0.0 ... \n",
|
737 |
+
"286852 0.0 0 none 0.0 ... \n",
|
738 |
+
"286853 0.0 0 none 0.0 ... \n",
|
739 |
+
"286854 nan 1 none 0.0 ... \n",
|
740 |
+
"\n",
|
741 |
+
" Branch Weekday Date MTXWTH_Day_precip MTXWTH_Temp_max \\\n",
|
742 |
+
"270386 15 1 2022-09-20 0.0 16.95 \n",
|
743 |
+
"270387 15 2 2022-09-21 0.0 17.99 \n",
|
744 |
+
"270388 15 3 2022-09-22 0.0 17.96 \n",
|
745 |
+
"270389 15 4 2022-09-23 0.0 17.75 \n",
|
746 |
+
"270390 15 5 2022-09-24 0.0 14.59 \n",
|
747 |
+
"... ... ... ... ... ... \n",
|
748 |
+
"286850 15 5 2022-11-19 0.0 4.47 \n",
|
749 |
+
"286851 15 6 2022-11-20 1.0 2.53 \n",
|
750 |
+
"286852 15 0 2022-11-21 0.0 1.44 \n",
|
751 |
+
"286853 15 1 2022-11-22 0.0 1.99 \n",
|
752 |
+
"286854 15 2 2022-11-23 0.0 4.82 \n",
|
753 |
+
"\n",
|
754 |
+
" MTXWTH_Temp_min Start End ShiftLength weight \n",
|
755 |
+
"270386 7.05 6.0 13.983333 480.0 1 \n",
|
756 |
+
"270387 6.05 6.0 13.983333 480.0 1 \n",
|
757 |
+
"270388 10.03 6.0 13.983333 480.0 1 \n",
|
758 |
+
"270389 8.39 6.0 13.983333 480.0 1 \n",
|
759 |
+
"270390 11.31 6.0 11.983333 360.0 1 \n",
|
760 |
+
"... ... ... ... ... ... \n",
|
761 |
+
"286850 -4.95 6.0 11.983333 360.0 1 \n",
|
762 |
+
"286851 -2.96 7.0 10.983333 240.0 1 \n",
|
763 |
+
"286852 -3.72 6.0 13.983333 480.0 1 \n",
|
764 |
+
"286853 -2.58 6.0 13.983333 480.0 1 \n",
|
765 |
+
"286854 2.40 7.0 17.983333 660.0 0 \n",
|
766 |
+
"\n",
|
767 |
+
"[260 rows x 22 columns]\n"
|
768 |
+
]
|
769 |
+
},
|
770 |
+
{
|
771 |
+
"name": "stderr",
|
772 |
+
"output_type": "stream",
|
773 |
+
"text": [
|
774 |
+
"/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/sklearn/base.py:329: UserWarning: Trying to unpickle estimator StandardScaler from version 1.2.2 when using version 1.1.3. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",
|
775 |
+
"https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",
|
776 |
+
" warnings.warn(\n"
|
777 |
+
]
|
778 |
+
}
|
779 |
+
],
|
780 |
+
"source": [
|
781 |
+
"with open('data/parameters.pkl', 'rb') as f:\n",
|
782 |
+
" parameters = pickle.load(f)\n",
|
783 |
+
"df = pd.read_pickle('data/test_data.pkl')\n",
|
784 |
+
"df = df.loc[(df[\"Branch\"] == \"15\") & (df[\"Group\"].isin([\"6\",\"7\",\"4\",\"1\"]))]\n",
|
785 |
+
"_dataloader = prepare_dataset(parameters, df.copy())"
|
786 |
+
]
|
787 |
+
},
|
788 |
+
{
|
789 |
+
"cell_type": "code",
|
790 |
+
"execution_count": 5,
|
791 |
+
"id": "fda01d15-fd6a-4b87-abfd-7d9011af53e4",
|
792 |
+
"metadata": {},
|
793 |
+
"outputs": [
|
794 |
+
{
|
795 |
+
"name": "stderr",
|
796 |
+
"output_type": "stream",
|
797 |
+
"text": [
|
798 |
+
"/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pytorch_lightning/utilities/parsing.py:262: UserWarning: Attribute 'loss' is an instance of `nn.Module` and is already saved during checkpointing. It is recommended to ignore them using `self.save_hyperparameters(ignore=['loss'])`.\n",
|
799 |
+
" rank_zero_warn(\n",
|
800 |
+
"/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pytorch_lightning/utilities/parsing.py:262: UserWarning: Attribute 'logging_metrics' is an instance of `nn.Module` and is already saved during checkpointing. It is recommended to ignore them using `self.save_hyperparameters(ignore=['logging_metrics'])`.\n",
|
801 |
+
" rank_zero_warn(\n"
|
802 |
+
]
|
803 |
+
}
|
804 |
+
],
|
805 |
+
"source": [
|
806 |
+
"_model = TemporalFusionTransformer.load_from_checkpoint('model/tft_check.ckpt', map_location=torch.device('cpu'))\n",
|
807 |
+
"out = _model.predict(_dataloader, mode=\"raw\", return_x=True, return_index=True)\n",
|
808 |
+
"preds = raw_preds_to_df(out, quantiles = None)\n",
|
809 |
+
"\n",
|
810 |
+
"#preds = preds[[\"pred_idx\", \"Group\", \"pred\"]]"
|
811 |
+
]
|
812 |
+
},
|
813 |
+
{
|
814 |
+
"cell_type": "code",
|
815 |
+
"execution_count": 6,
|
816 |
+
"id": "bdcabe69-bc3b-46c7-a17f-138ec756c1c2",
|
817 |
+
"metadata": {},
|
818 |
+
"outputs": [
|
819 |
+
{
|
820 |
+
"data": {
|
821 |
+
"text/html": [
|
822 |
+
"<div>\n",
|
823 |
+
"<style scoped>\n",
|
824 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
825 |
+
" vertical-align: middle;\n",
|
826 |
+
" }\n",
|
827 |
+
"\n",
|
828 |
+
" .dataframe tbody tr th {\n",
|
829 |
+
" vertical-align: top;\n",
|
830 |
+
" }\n",
|
831 |
+
"\n",
|
832 |
+
" .dataframe thead th {\n",
|
833 |
+
" text-align: right;\n",
|
834 |
+
" }\n",
|
835 |
+
"</style>\n",
|
836 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
837 |
+
" <thead>\n",
|
838 |
+
" <tr style=\"text-align: right;\">\n",
|
839 |
+
" <th></th>\n",
|
840 |
+
" <th>time_idx</th>\n",
|
841 |
+
" <th>Group</th>\n",
|
842 |
+
" <th>Branch</th>\n",
|
843 |
+
" <th>h</th>\n",
|
844 |
+
" <th>q</th>\n",
|
845 |
+
" <th>pred</th>\n",
|
846 |
+
" <th>pred_idx</th>\n",
|
847 |
+
" </tr>\n",
|
848 |
+
" </thead>\n",
|
849 |
+
" <tbody>\n",
|
850 |
+
" <tr>\n",
|
851 |
+
" <th>0</th>\n",
|
852 |
+
" <td>2490</td>\n",
|
853 |
+
" <td>1</td>\n",
|
854 |
+
" <td>15</td>\n",
|
855 |
+
" <td>1</td>\n",
|
856 |
+
" <td>0</td>\n",
|
857 |
+
" <td>1826.949707</td>\n",
|
858 |
+
" <td>2490</td>\n",
|
859 |
+
" </tr>\n",
|
860 |
+
" <tr>\n",
|
861 |
+
" <th>1</th>\n",
|
862 |
+
" <td>2490</td>\n",
|
863 |
+
" <td>1</td>\n",
|
864 |
+
" <td>15</td>\n",
|
865 |
+
" <td>2</td>\n",
|
866 |
+
" <td>0</td>\n",
|
867 |
+
" <td>1856.215088</td>\n",
|
868 |
+
" <td>2491</td>\n",
|
869 |
+
" </tr>\n",
|
870 |
+
" <tr>\n",
|
871 |
+
" <th>2</th>\n",
|
872 |
+
" <td>2490</td>\n",
|
873 |
+
" <td>1</td>\n",
|
874 |
+
" <td>15</td>\n",
|
875 |
+
" <td>3</td>\n",
|
876 |
+
" <td>0</td>\n",
|
877 |
+
" <td>1871.929688</td>\n",
|
878 |
+
" <td>2492</td>\n",
|
879 |
+
" </tr>\n",
|
880 |
+
" <tr>\n",
|
881 |
+
" <th>3</th>\n",
|
882 |
+
" <td>2490</td>\n",
|
883 |
+
" <td>1</td>\n",
|
884 |
+
" <td>15</td>\n",
|
885 |
+
" <td>4</td>\n",
|
886 |
+
" <td>0</td>\n",
|
887 |
+
" <td>1866.095825</td>\n",
|
888 |
+
" <td>2493</td>\n",
|
889 |
+
" </tr>\n",
|
890 |
+
" <tr>\n",
|
891 |
+
" <th>4</th>\n",
|
892 |
+
" <td>2490</td>\n",
|
893 |
+
" <td>1</td>\n",
|
894 |
+
" <td>15</td>\n",
|
895 |
+
" <td>5</td>\n",
|
896 |
+
" <td>0</td>\n",
|
897 |
+
" <td>1787.610840</td>\n",
|
898 |
+
" <td>2494</td>\n",
|
899 |
+
" </tr>\n",
|
900 |
+
" <tr>\n",
|
901 |
+
" <th>...</th>\n",
|
902 |
+
" <td>...</td>\n",
|
903 |
+
" <td>...</td>\n",
|
904 |
+
" <td>...</td>\n",
|
905 |
+
" <td>...</td>\n",
|
906 |
+
" <td>...</td>\n",
|
907 |
+
" <td>...</td>\n",
|
908 |
+
" <td>...</td>\n",
|
909 |
+
" </tr>\n",
|
910 |
+
" <tr>\n",
|
911 |
+
" <th>115</th>\n",
|
912 |
+
" <td>2490</td>\n",
|
913 |
+
" <td>7</td>\n",
|
914 |
+
" <td>15</td>\n",
|
915 |
+
" <td>26</td>\n",
|
916 |
+
" <td>0</td>\n",
|
917 |
+
" <td>1655.261475</td>\n",
|
918 |
+
" <td>2515</td>\n",
|
919 |
+
" </tr>\n",
|
920 |
+
" <tr>\n",
|
921 |
+
" <th>116</th>\n",
|
922 |
+
" <td>2490</td>\n",
|
923 |
+
" <td>7</td>\n",
|
924 |
+
" <td>15</td>\n",
|
925 |
+
" <td>27</td>\n",
|
926 |
+
" <td>0</td>\n",
|
927 |
+
" <td>1794.728027</td>\n",
|
928 |
+
" <td>2516</td>\n",
|
929 |
+
" </tr>\n",
|
930 |
+
" <tr>\n",
|
931 |
+
" <th>117</th>\n",
|
932 |
+
" <td>2490</td>\n",
|
933 |
+
" <td>7</td>\n",
|
934 |
+
" <td>15</td>\n",
|
935 |
+
" <td>28</td>\n",
|
936 |
+
" <td>0</td>\n",
|
937 |
+
" <td>1600.507812</td>\n",
|
938 |
+
" <td>2517</td>\n",
|
939 |
+
" </tr>\n",
|
940 |
+
" <tr>\n",
|
941 |
+
" <th>118</th>\n",
|
942 |
+
" <td>2490</td>\n",
|
943 |
+
" <td>7</td>\n",
|
944 |
+
" <td>15</td>\n",
|
945 |
+
" <td>29</td>\n",
|
946 |
+
" <td>0</td>\n",
|
947 |
+
" <td>1595.128540</td>\n",
|
948 |
+
" <td>2518</td>\n",
|
949 |
+
" </tr>\n",
|
950 |
+
" <tr>\n",
|
951 |
+
" <th>119</th>\n",
|
952 |
+
" <td>2490</td>\n",
|
953 |
+
" <td>7</td>\n",
|
954 |
+
" <td>15</td>\n",
|
955 |
+
" <td>30</td>\n",
|
956 |
+
" <td>0</td>\n",
|
957 |
+
" <td>1557.557007</td>\n",
|
958 |
+
" <td>2519</td>\n",
|
959 |
+
" </tr>\n",
|
960 |
+
" </tbody>\n",
|
961 |
+
"</table>\n",
|
962 |
+
"<p>120 rows × 7 columns</p>\n",
|
963 |
+
"</div>"
|
964 |
+
],
|
965 |
+
"text/plain": [
|
966 |
+
" time_idx Group Branch h q pred pred_idx\n",
|
967 |
+
"0 2490 1 15 1 0 1826.949707 2490\n",
|
968 |
+
"1 2490 1 15 2 0 1856.215088 2491\n",
|
969 |
+
"2 2490 1 15 3 0 1871.929688 2492\n",
|
970 |
+
"3 2490 1 15 4 0 1866.095825 2493\n",
|
971 |
+
"4 2490 1 15 5 0 1787.610840 2494\n",
|
972 |
+
".. ... ... ... .. .. ... ...\n",
|
973 |
+
"115 2490 7 15 26 0 1655.261475 2515\n",
|
974 |
+
"116 2490 7 15 27 0 1794.728027 2516\n",
|
975 |
+
"117 2490 7 15 28 0 1600.507812 2517\n",
|
976 |
+
"118 2490 7 15 29 0 1595.128540 2518\n",
|
977 |
+
"119 2490 7 15 30 0 1557.557007 2519\n",
|
978 |
+
"\n",
|
979 |
+
"[120 rows x 7 columns]"
|
980 |
+
]
|
981 |
+
},
|
982 |
+
"execution_count": 6,
|
983 |
+
"metadata": {},
|
984 |
+
"output_type": "execute_result"
|
985 |
+
}
|
986 |
+
],
|
987 |
+
"source": [
|
988 |
+
"preds"
|
989 |
]
|
990 |
},
|
991 |
{
|
992 |
"cell_type": "code",
|
993 |
+
"execution_count": 8,
|
994 |
+
"id": "ab7c16c2-6fcc-40bd-a866-1fecd122dfc1",
|
995 |
"metadata": {},
|
996 |
"outputs": [
|
997 |
{
|
998 |
"data": {
|
999 |
+
"text/html": [
|
1000 |
+
"<div>\n",
|
1001 |
+
"<style scoped>\n",
|
1002 |
+
" .dataframe tbody tr th:only-of-type {\n",
|
1003 |
+
" vertical-align: middle;\n",
|
1004 |
+
" }\n",
|
1005 |
+
"\n",
|
1006 |
+
" .dataframe tbody tr th {\n",
|
1007 |
+
" vertical-align: top;\n",
|
1008 |
+
" }\n",
|
1009 |
+
"\n",
|
1010 |
+
" .dataframe thead th {\n",
|
1011 |
+
" text-align: right;\n",
|
1012 |
+
" }\n",
|
1013 |
+
"</style>\n",
|
1014 |
+
"<table border=\"1\" class=\"dataframe\">\n",
|
1015 |
+
" <thead>\n",
|
1016 |
+
" <tr style=\"text-align: right;\">\n",
|
1017 |
+
" <th></th>\n",
|
1018 |
+
" <th>time_idx</th>\n",
|
1019 |
+
" <th>sales</th>\n",
|
1020 |
+
" <th>Group</th>\n",
|
1021 |
+
" </tr>\n",
|
1022 |
+
" </thead>\n",
|
1023 |
+
" <tbody>\n",
|
1024 |
+
" <tr>\n",
|
1025 |
+
" <th>270300</th>\n",
|
1026 |
+
" <td>2369</td>\n",
|
1027 |
+
" <td>1600.9030</td>\n",
|
1028 |
+
" <td>1</td>\n",
|
1029 |
+
" </tr>\n",
|
1030 |
+
" <tr>\n",
|
1031 |
+
" <th>270301</th>\n",
|
1032 |
+
" <td>2370</td>\n",
|
1033 |
+
" <td>1811.1958</td>\n",
|
1034 |
+
" <td>1</td>\n",
|
1035 |
+
" </tr>\n",
|
1036 |
+
" <tr>\n",
|
1037 |
+
" <th>270302</th>\n",
|
1038 |
+
" <td>2371</td>\n",
|
1039 |
+
" <td>1784.2916</td>\n",
|
1040 |
+
" <td>1</td>\n",
|
1041 |
+
" </tr>\n",
|
1042 |
+
" <tr>\n",
|
1043 |
+
" <th>270303</th>\n",
|
1044 |
+
" <td>2372</td>\n",
|
1045 |
+
" <td>1757.3488</td>\n",
|
1046 |
+
" <td>1</td>\n",
|
1047 |
+
" </tr>\n",
|
1048 |
+
" <tr>\n",
|
1049 |
+
" <th>270304</th>\n",
|
1050 |
+
" <td>2373</td>\n",
|
1051 |
+
" <td>1741.0982</td>\n",
|
1052 |
+
" <td>1</td>\n",
|
1053 |
+
" </tr>\n",
|
1054 |
+
" <tr>\n",
|
1055 |
+
" <th>...</th>\n",
|
1056 |
+
" <td>...</td>\n",
|
1057 |
+
" <td>...</td>\n",
|
1058 |
+
" <td>...</td>\n",
|
1059 |
+
" </tr>\n",
|
1060 |
+
" <tr>\n",
|
1061 |
+
" <th>287065</th>\n",
|
1062 |
+
" <td>2730</td>\n",
|
1063 |
+
" <td>1643.1700</td>\n",
|
1064 |
+
" <td>7</td>\n",
|
1065 |
+
" </tr>\n",
|
1066 |
+
" <tr>\n",
|
1067 |
+
" <th>287066</th>\n",
|
1068 |
+
" <td>2731</td>\n",
|
1069 |
+
" <td>1597.3518</td>\n",
|
1070 |
+
" <td>7</td>\n",
|
1071 |
+
" </tr>\n",
|
1072 |
+
" <tr>\n",
|
1073 |
+
" <th>287067</th>\n",
|
1074 |
+
" <td>2732</td>\n",
|
1075 |
+
" <td>1683.6228</td>\n",
|
1076 |
+
" <td>7</td>\n",
|
1077 |
+
" </tr>\n",
|
1078 |
+
" <tr>\n",
|
1079 |
+
" <th>287068</th>\n",
|
1080 |
+
" <td>2733</td>\n",
|
1081 |
+
" <td>1785.2180</td>\n",
|
1082 |
+
" <td>7</td>\n",
|
1083 |
+
" </tr>\n",
|
1084 |
+
" <tr>\n",
|
1085 |
+
" <th>287069</th>\n",
|
1086 |
+
" <td>2734</td>\n",
|
1087 |
+
" <td>1589.9020</td>\n",
|
1088 |
+
" <td>7</td>\n",
|
1089 |
+
" </tr>\n",
|
1090 |
+
" </tbody>\n",
|
1091 |
+
"</table>\n",
|
1092 |
+
"<p>1464 rows × 3 columns</p>\n",
|
1093 |
+
"</div>"
|
1094 |
+
],
|
1095 |
"text/plain": [
|
1096 |
+
" time_idx sales Group\n",
|
1097 |
+
"270300 2369 1600.9030 1\n",
|
1098 |
+
"270301 2370 1811.1958 1\n",
|
1099 |
+
"270302 2371 1784.2916 1\n",
|
1100 |
+
"270303 2372 1757.3488 1\n",
|
1101 |
+
"270304 2373 1741.0982 1\n",
|
1102 |
+
"... ... ... ...\n",
|
1103 |
+
"287065 2730 1643.1700 7\n",
|
1104 |
+
"287066 2731 1597.3518 7\n",
|
1105 |
+
"287067 2732 1683.6228 7\n",
|
1106 |
+
"287068 2733 1785.2180 7\n",
|
1107 |
+
"287069 2734 1589.9020 7\n",
|
1108 |
+
"\n",
|
1109 |
+
"[1464 rows x 3 columns]"
|
1110 |
]
|
1111 |
},
|
1112 |
+
"execution_count": 8,
|
1113 |
"metadata": {},
|
1114 |
"output_type": "execute_result"
|
1115 |
}
|
1116 |
],
|
1117 |
"source": [
|
1118 |
+
"df[[\"time_idx\",\"sales\", \"Group\"]]"
|
1119 |
+
]
|
1120 |
+
},
|
1121 |
+
{
|
1122 |
+
"cell_type": "code",
|
1123 |
+
"execution_count": 16,
|
1124 |
+
"id": "b5812d1f-f42d-4031-b9b7-32fac2bbe425",
|
1125 |
+
"metadata": {},
|
1126 |
+
"outputs": [
|
1127 |
+
{
|
1128 |
+
"name": "stdout",
|
1129 |
+
"output_type": "stream",
|
1130 |
+
"text": [
|
1131 |
+
" sales DayInYear time_idx Wahl Baustelle MontagLangesWE \\\n",
|
1132 |
+
"0 1600.9030 177 2369 0.0 0.0 0.0 \n",
|
1133 |
+
"1 1811.1958 178 2370 0.0 0.0 0.0 \n",
|
1134 |
+
"2 1784.2916 179 2371 0.0 0.0 0.0 \n",
|
1135 |
+
"3 1757.3488 180 2372 0.0 0.0 0.0 \n",
|
1136 |
+
"4 1741.0982 181 2373 0.0 0.0 0.0 \n",
|
1137 |
+
"... ... ... ... ... ... ... \n",
|
1138 |
+
"1459 1643.1700 173 2730 0.0 0.0 0.0 \n",
|
1139 |
+
"1460 1597.3518 174 2731 0.0 0.0 0.0 \n",
|
1140 |
+
"1461 1683.6228 175 2732 0.0 0.0 0.0 \n",
|
1141 |
+
"1462 1785.2180 176 2733 0.0 0.0 0.0 \n",
|
1142 |
+
"1463 1589.9020 177 2734 0.0 0.0 0.0 \n",
|
1143 |
+
"\n",
|
1144 |
+
" FreitagLangesWE nosale holiday AufSommerzeit ... Date \\\n",
|
1145 |
+
"0 0.0 0 none 0.0 ... 2022-06-26 \n",
|
1146 |
+
"1 0.0 0 none 0.0 ... 2022-06-27 \n",
|
1147 |
+
"2 0.0 0 none 0.0 ... 2022-06-28 \n",
|
1148 |
+
"3 0.0 0 none 0.0 ... 2022-06-29 \n",
|
1149 |
+
"4 0.0 0 none 0.0 ... 2022-06-30 \n",
|
1150 |
+
"... ... ... ... ... ... ... \n",
|
1151 |
+
"1459 0.0 0 none 0.0 ... 2023-06-22 \n",
|
1152 |
+
"1460 0.0 0 none 0.0 ... 2023-06-23 \n",
|
1153 |
+
"1461 0.0 0 none 0.0 ... 2023-06-24 \n",
|
1154 |
+
"1462 0.0 0 none 0.0 ... 2023-06-25 \n",
|
1155 |
+
"1463 0.0 0 none 0.0 ... 2023-06-26 \n",
|
1156 |
+
"\n",
|
1157 |
+
" MTXWTH_Day_precip MTXWTH_Temp_max MTXWTH_Temp_min Start End \\\n",
|
1158 |
+
"0 0.0 28.52 17.47 7.0 10.983333 \n",
|
1159 |
+
"1 0.0 25.75 16.70 6.0 13.983333 \n",
|
1160 |
+
"2 0.0 23.57 14.17 6.0 13.983333 \n",
|
1161 |
+
"3 0.0 26.81 13.09 6.0 13.983333 \n",
|
1162 |
+
"4 0.0 27.26 15.00 6.0 13.983333 \n",
|
1163 |
+
"... ... ... ... ... ... \n",
|
1164 |
+
"1459 0.0 26.93 13.06 6.0 16.983333 \n",
|
1165 |
+
"1460 1.0 23.99 15.98 6.0 16.983333 \n",
|
1166 |
+
"1461 0.0 25.99 12.04 6.0 15.983333 \n",
|
1167 |
+
"1462 0.0 28.99 15.02 7.0 15.983333 \n",
|
1168 |
+
"1463 0.0 27.96 17.01 6.0 16.983333 \n",
|
1169 |
+
"\n",
|
1170 |
+
" ShiftLength weight pred_idx pred \n",
|
1171 |
+
"0 240.0 1 NaN NaN \n",
|
1172 |
+
"1 480.0 1 NaN NaN \n",
|
1173 |
+
"2 480.0 1 NaN NaN \n",
|
1174 |
+
"3 480.0 1 NaN NaN \n",
|
1175 |
+
"4 480.0 1 NaN NaN \n",
|
1176 |
+
"... ... ... ... ... \n",
|
1177 |
+
"1459 660.0 1 NaN NaN \n",
|
1178 |
+
"1460 660.0 1 NaN NaN \n",
|
1179 |
+
"1461 600.0 1 NaN NaN \n",
|
1180 |
+
"1462 540.0 1 NaN NaN \n",
|
1181 |
+
"1463 660.0 1 NaN NaN \n",
|
1182 |
+
"\n",
|
1183 |
+
"[1344 rows x 24 columns]\n"
|
1184 |
+
]
|
1185 |
+
}
|
1186 |
+
],
|
1187 |
+
"source": [
|
1188 |
+
"new = pd.merge(df, preds, left_on=[\"time_idx\", \"Group\"], right_on=[\"pred_idx\", \"Group\"], how = \"left\")\n",
|
1189 |
+
"print(new[new[\"pred\"].isna()])"
|
1190 |
+
]
|
1191 |
+
},
|
1192 |
+
{
|
1193 |
+
"cell_type": "code",
|
1194 |
+
"execution_count": 12,
|
1195 |
+
"id": "f4577535-4d1c-4500-96df-7df83c61011e",
|
1196 |
+
"metadata": {},
|
1197 |
+
"outputs": [
|
1198 |
+
{
|
1199 |
+
"name": "stdout",
|
1200 |
+
"output_type": "stream",
|
1201 |
+
"text": [
|
1202 |
+
"0 1826.949707\n",
|
1203 |
+
"1 1856.215088\n",
|
1204 |
+
"2 1871.929688\n",
|
1205 |
+
"3 1866.095825\n",
|
1206 |
+
"4 1787.610840\n",
|
1207 |
+
"5 1659.851440\n",
|
1208 |
+
"6 1749.331543\n",
|
1209 |
+
"7 1878.842407\n",
|
1210 |
+
"8 1868.011841\n",
|
1211 |
+
"9 1886.265625\n",
|
1212 |
+
"10 1882.206055\n",
|
1213 |
+
"11 1794.047852\n",
|
1214 |
+
"12 1664.293335\n",
|
1215 |
+
"13 1855.808838\n",
|
1216 |
+
"14 1866.882690\n",
|
1217 |
+
"15 1880.703613\n",
|
1218 |
+
"16 1893.997437\n",
|
1219 |
+
"17 1886.795654\n",
|
1220 |
+
"18 1808.130371\n",
|
1221 |
+
"19 1699.440552\n",
|
1222 |
+
"20 1854.313721\n",
|
1223 |
+
"21 1858.726685\n",
|
1224 |
+
"22 1814.451782\n",
|
1225 |
+
"23 1863.013184\n",
|
1226 |
+
"24 1884.281982\n",
|
1227 |
+
"25 1781.215820\n",
|
1228 |
+
"26 1679.599243\n",
|
1229 |
+
"27 1804.118652\n",
|
1230 |
+
"28 1800.697144\n",
|
1231 |
+
"29 1794.221802\n",
|
1232 |
+
"Name: 1, dtype: float32\n",
|
1233 |
+
"30 1528.776611\n",
|
1234 |
+
"31 1543.648682\n",
|
1235 |
+
"32 1544.217407\n",
|
1236 |
+
"33 1533.632935\n",
|
1237 |
+
"34 1547.297485\n",
|
1238 |
+
"35 1568.251465\n",
|
1239 |
+
"36 1432.989502\n",
|
1240 |
+
"37 1559.411621\n",
|
1241 |
+
"38 1555.778076\n",
|
1242 |
+
"39 1562.257935\n",
|
1243 |
+
"40 1563.604248\n",
|
1244 |
+
"41 1542.455200\n",
|
1245 |
+
"42 1595.332031\n",
|
1246 |
+
"43 1542.713867\n",
|
1247 |
+
"44 1494.202271\n",
|
1248 |
+
"45 1556.931152\n",
|
1249 |
+
"46 1561.306152\n",
|
1250 |
+
"47 1575.157959\n",
|
1251 |
+
"48 1546.359741\n",
|
1252 |
+
"49 1665.563232\n",
|
1253 |
+
"50 1547.409302\n",
|
1254 |
+
"51 1537.488281\n",
|
1255 |
+
"52 1533.096191\n",
|
1256 |
+
"53 1506.796509\n",
|
1257 |
+
"54 1532.159912\n",
|
1258 |
+
"55 1509.309326\n",
|
1259 |
+
"56 1635.444092\n",
|
1260 |
+
"57 1473.974487\n",
|
1261 |
+
"58 1466.395752\n",
|
1262 |
+
"59 1451.778198\n",
|
1263 |
+
"Name: 4, dtype: float32\n",
|
1264 |
+
"60 2009.041016\n",
|
1265 |
+
"61 2052.925537\n",
|
1266 |
+
"62 2075.127686\n",
|
1267 |
+
"63 2073.555420\n",
|
1268 |
+
"64 1894.730835\n",
|
1269 |
+
"65 1712.648071\n",
|
1270 |
+
"66 2012.644165\n",
|
1271 |
+
"67 2078.718262\n",
|
1272 |
+
"68 2063.913574\n",
|
1273 |
+
"69 2102.091309\n",
|
1274 |
+
"70 2095.394043\n",
|
1275 |
+
"71 1910.086914\n",
|
1276 |
+
"72 1771.222168\n",
|
1277 |
+
"73 2049.833252\n",
|
1278 |
+
"74 2064.734375\n",
|
1279 |
+
"75 2089.499023\n",
|
1280 |
+
"76 2110.970947\n",
|
1281 |
+
"77 2104.520020\n",
|
1282 |
+
"78 1933.123291\n",
|
1283 |
+
"79 1808.569946\n",
|
1284 |
+
"80 2050.945801\n",
|
1285 |
+
"81 2056.272217\n",
|
1286 |
+
"82 2002.636841\n",
|
1287 |
+
"83 2061.285889\n",
|
1288 |
+
"84 2097.291260\n",
|
1289 |
+
"85 1900.992188\n",
|
1290 |
+
"86 1744.634521\n",
|
1291 |
+
"87 1993.816650\n",
|
1292 |
+
"88 1990.942261\n",
|
1293 |
+
"89 2046.452393\n",
|
1294 |
+
"Name: 6, dtype: float32\n",
|
1295 |
+
"90 1626.679443\n",
|
1296 |
+
"91 1618.315674\n",
|
1297 |
+
"92 1620.280151\n",
|
1298 |
+
"93 1627.040161\n",
|
1299 |
+
"94 1673.808228\n",
|
1300 |
+
"95 1787.030273\n",
|
1301 |
+
"96 1562.161865\n",
|
1302 |
+
"97 1642.268433\n",
|
1303 |
+
"98 1618.766113\n",
|
1304 |
+
"99 1619.909424\n",
|
1305 |
+
"100 1619.908691\n",
|
1306 |
+
"101 1666.063477\n",
|
1307 |
+
"102 1777.630371\n",
|
1308 |
+
"103 1620.351807\n",
|
1309 |
+
"104 1619.798706\n",
|
1310 |
+
"105 1613.335693\n",
|
1311 |
+
"106 1611.184326\n",
|
1312 |
+
"107 1621.388306\n",
|
1313 |
+
"108 1673.271851\n",
|
1314 |
+
"109 1810.889648\n",
|
1315 |
+
"110 1619.840698\n",
|
1316 |
+
"111 1615.521118\n",
|
1317 |
+
"112 1616.226562\n",
|
1318 |
+
"113 1593.204102\n",
|
1319 |
+
"114 1606.631958\n",
|
1320 |
+
"115 1655.261475\n",
|
1321 |
+
"116 1794.728027\n",
|
1322 |
+
"117 1600.507812\n",
|
1323 |
+
"118 1595.128540\n",
|
1324 |
+
"119 1557.557007\n",
|
1325 |
+
"Name: 7, dtype: float32\n"
|
1326 |
+
]
|
1327 |
+
}
|
1328 |
+
],
|
1329 |
+
"source": [
|
1330 |
+
"datepicker = datetime.date(2022, 10, 24)\n",
|
1331 |
+
"def add_dates(group):\n",
|
1332 |
+
" #group[\"date_imputed\"] = [datepicker + datetime.timedelta(days=x) for x in range(30)]\n",
|
1333 |
+
" print(group)\n",
|
1334 |
+
" return group\n",
|
1335 |
+
"\n",
|
1336 |
+
"preds[\"date_imputed\"] = preds.groupby(\"Group\").pred.transform(add_dates)"
|
1337 |
]
|
1338 |
},
|
1339 |
{
|
1340 |
"cell_type": "code",
|
1341 |
"execution_count": null,
|
1342 |
+
"id": "a8af2ca0-b8bb-4e08-8963-d463a7122033",
|
1343 |
"metadata": {},
|
1344 |
"outputs": [],
|
1345 |
"source": []
|
|
|
1347 |
],
|
1348 |
"metadata": {
|
1349 |
"kernelspec": {
|
1350 |
+
"display_name": "TFT_HF",
|
1351 |
"language": "python",
|
1352 |
+
"name": "tft_hf"
|
1353 |
},
|
1354 |
"language_info": {
|
1355 |
"codemirror_mode": {
|
|
|
1361 |
"name": "python",
|
1362 |
"nbconvert_exporter": "python",
|
1363 |
"pygments_lexer": "ipython3",
|
1364 |
+
"version": "3.9.12"
|
1365 |
}
|
1366 |
},
|
1367 |
"nbformat": 4,
|