Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
{
"cells": [
{
"cell_type": "markdown",
"id": "d2efdfdb",
"metadata": {},
"source": [
"# ORCO RIVER BASIN\n",
"\n",
"13/10/2021\n",
"\n",
"In this notebook results of different feature selections are compared for the Candoglia basin (of which we have around 18 years of data)\n",
"\n",
"Input data is clipped from ERA5 metereological reanalysis quantile mapped and downscaled.\n",
"\n",
"10 days average (for the previous year) of pecipitation, temperature and potential evapotranspiration are selected as input.\n",
"\n",
"\n",
"The settings are the following:\n",
"\n",
" A) 180 features are selected with PCA, the same numeriosity as setting C) ;\n",
"\n",
" B) 36 features are selectedwith PCA, the same numeriosity as setting D) ;\n",
" \n",
" C) metereological inputs spatial statistics are used as input: mean, the 5th, 25th, 75th and 95th quantiles are selected.\n",
" \n",
" D) metereological inputs are spatially averaged.\n",
"\n",
"\n"
]
},
{
"cell_type": "markdown",
"id": "19d31cfb",
"metadata": {},
"source": [
"import sys\n",
"sys.path.append('/time_unit')"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "c18c0d19",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<module 'nested_CV' from 'C:\\\\Users\\\\mmazzolini\\\\OneDrive - Scientific Network South Tyrol\\\\Documents\\\\conda\\\\Runoff_prediction\\\\nested_CV.py'>"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import sys, importlib\n",
"importlib.reload(sys.modules['nested_CV'])\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "efcc49ff",
"metadata": {},
"outputs": [],
"source": [
"from sf_runoff import daily_climatology, spatial_avg_daily_input, spatial_stats_daily_input, compute_anomalies, create_it_matrix\n",
"from nested_CV import SVR_nested_CV_gridsearch, SVR_PCA_nested_CV_gridsearch\n",
"from test import evaluate_prediction, plot_prediction, plot_anomalies\n",
"from test import nested_CV_PCA_SVR_predict, nested_CV_SVR_predict\n",
"from classic_CV_predict import classic_CV_PCA_SVR_predict, classic_CV_SVR_predict\n",
"\n",
"\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import pandas as pd\n",
"import numpy as np\n",
"from scipy.stats import gaussian_kde\n",
"\n",
"from sklearn.svm import SVR\n",
"from sklearn.preprocessing import StandardScaler\n",
"from sklearn.pipeline import make_pipeline\n",
"from sklearn.compose import TransformedTargetRegressor\n",
"from sklearn.model_selection import GridSearchCV,TimeSeriesSplit\n",
"from sklearn.metrics import mean_squared_error\n",
"from sklearn.decomposition import PCA\n",
"\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import os\n",
"import pdb\n",
"import seaborn as sns"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "cd514cbe",
"metadata": {},
"outputs": [],
"source": [
"path=r'C:\\Users\\mmazzolini\\OneDrive - Scientific Network South Tyrol\\Documents\\conda\\daily_input\\\\'\n",
"\n",
"daily_input = pd.read_csv(path+'SAN_BENIGNO_ORCO_2002_2019.csv', index_col=0, parse_dates=True)\n",
"\n",
"daily_input_TPE = spatial_avg_daily_input(daily_input)\n",
"\n",
"daily_input_stat = spatial_stats_daily_input(daily_input)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a024e5fe",
"metadata": {},
"outputs": [],
"source": [
"t_unit=10\n",
"\n",
"\n",
"#define the possible parameters value (where Gridsearch is applied)\n",
"\n",
"C_range=np.logspace(-1.5, 1.5, 10)\n",
"epsilon_range=np.logspace(-5, -2, 5)\n",
"#n_range = [17, 50, 200]\n",
"components_range = [5*4*36]\n",
"#do not enlarge t_range for now\n",
"t_range=[36]\n",
"t_length=t_range[0]\n",
"n_splits=5\n",
"test_size=365"
]
},
{
"cell_type": "markdown",
"id": "e7d5c48a",
"metadata": {},
"source": [
"# A) PCA+SVR"
]
},
{
"cell_type": "markdown",
"id": "18861993",
"metadata": {},
"source": [
"### TRAIN A PCA+SVR MODEL "
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "aacb3a01",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: best epsilon found on the grid limit: epsilon = 1e-05\n",
"\n",
"C=0.6812920690579611\n",
"eps=1e-05\n",
"n=720\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABCAAAAHwCAYAAAB36h7tAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjQuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/MnkTPAAAACXBIWXMAAAsTAAALEwEAmpwYAACHTUlEQVR4nOzdd5gkVd328e+9u4DkIKBEiSqogIAEI2ACA2AEDAQDJsz6iIqP2QcxgYryogQzBhARiSJgRElLWIIgcQVBFAFBYXfnfv+omqUZZne7d/pMdU3fH6++prs6/E7VDtO3p06dI9tERERERERERJQ0rekGRERERERERMTUlw6IiIiIiIiIiCguHRARERERERERUVw6ICIiIiIiIiKiuHRARERERERERERx6YCIiIiIiIiIiOLSARERERERERERxaUDIiJaQ9K/O24jkv7T8fjVkj4mac6Y1/2r4/27SZop6W5Jd0g6S9J6ko7oeP0DYz7j1AZ3OSIiInrUY174l6TfS9p+nM85VtJcSWuO2f4xSd/teGxJl0ma1rHtU5KOLbqjES2UDoiIaA3by43egJuAF3ds+179sh92vs72SgCSNgK+DbwXWBFYH/gaMGL7zR2f+5kxn7HLZO9nRERELL5e8gKwKnA28OPOz5C0LPAy4C7g1V2UXRPYs287ETFFpQMiIobFFsD1ts9y5R7bx9u+qemGRURERDNszwW+B6wlabWOp14G/Av4BLBPFx91CPBxSTP63siIKSQdEBExLC4CHi/pS5J2lLRc0w2KiIiIZklaEtgb+AdwZ8dT+wA/AI6jyg9bLuKjTgDuBvYt0MyIKSMdEBEx1byyvp5z9HY2gO3rgB2AtYAfAXfU13amIyIiImL4vLKeJ+o/wBuBl9ejIZC0LrAj8H3btwFnsehREAY+AvyvpKWKtTqi5dIBERFTzY9sr9Rx23H0Cdvn2X6l7dWAZwDPBD7cWEsjIiKiKT+q54l6FHA5sFXHc68FrrQ9s378PeBVkpZY2AfaPoVqzon9+97aiCkiHRARMZRsn081XPKJTbclIiIimmH7DuBNwMckrVFv3hvYQNLfJP0N+CLVZJXdTEx9ENXJjWVKtDei7dIBERFDQdLTJb1R0ur148cDuwLnNduyiIiIaJLtq4DTgf+pl+PcENiGagLrLahOVnyfLiajtH0OcFk3r40YRpmlNSKmmj0k7T5m2wZUM1nvCnyqXlrrDuCHVLNWR0RExHD7HPArqqW6f2b7ss4nJR0G/EbSKl181kHkBEfEuGS76TZERERERERExBSXSzAiIiIiIiIiorh0QEREREREREREcemAiIiIiIiIiIji0gEREREREREREcVlFYwYSDOWXKuR2VF3fvQWTZRlt5GVG6n7ZP496TWXW+aBSa8JMDJPjdR9YO70Rure98ASk17z3pFmvlIeaKgv/YW3/aBvv1Rz7rhuQn/zllh1g2Z+wSMGyB6P2b2R7PCxJZv5XlvvoM0aqTtt210mv+Yqa056zapwM9/hMXX18/u6rdkhIyAiIiIiIiIioriMgIiIiGjayLymWxARERFt0tLskA6IiIiIpnmk6RZEREREm7Q0O6QDIiIiomkj7QwRERER0ZCWZofMARERERERERERxWUERERERMPc0mGUERER0Yy2Zod0QERERDStpcMoIyIioiEtzQ7pgIiIiGhaS89iRERERENamh3SAREREdG0li6lFREREQ1paXbIJJQRERERERERUVxGQERERDStpcMoIyIioiEtzQ7pgIiIiGhaSyeSioiIiIa0NDukAyIiIqJhbV1KKyIiIprR1uyQDoiIiIimtfQsRkRERDSkpdkhk1BGRERERERERHEZAREREdG0lg6jjIiIiIa0NDukAyIiIqJpLV3LOyIiIhrS0uyQDoiIiIimtfQsRkRERDSkpdkhc0BERERERERERHEZAREREdG0ls5kHREREQ1paXZIB0RERETTWjqMMiIiIhrS0uyQDoiIiIimtfQsRkRERDSkpdkhHRARERENs9s5k3VEREQ0o63ZIZNQRkRERERERERxGQERERHRtJZexxkRERENaWl2SAdERERE01p6HWdEREQ0pKXZIR0QERERTWvpWYyIiIhoSEuzQ9cdEJJeCnwWWB1QfbPtFQq1LSIiYjiMtHMiqUVJdoiIiCikpdmhl0koDwF2tb2i7RVsL58AMbVIOlrS7ZIuX4z3biXpMknXSvqyJNXb95X0d0kz69sb+t/yiIgYUMkOQyD5ISIiutXLJRi32b6yWEtiEBwLfBX49mK89+vA/sB5wCnAzsCp9XM/tH1APxoYw+lXa2/MsU/Yjr8vszyr3XcP+846j51mX9N0syL6p6XDKLuQ7DAcjiX5IQbMSVfe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RBTQ1uzQdQeE7Rt7aGtERER0aaRwiJA0HTgceC4wGzhf0km2rxjndZ8FTu9H3WSHiIiIMtqaHXqZAyIiIiIK8AT/14VtgGttX2f7AeA4YLdxXvd24Hjg9v7tXURERPRbW7NDOiAiIiJaTtL+ki7ouO0/5iVrATd3PJ5db+v8jLWAlwBHlG1tRERENK2p7NDLHBARERFRwESv47R9JHDkQl6i8d425vGhwAdsz5PGe3lEREQMirZmh3RARERENGwSZrKeDazT8Xht4JYxr9kaOK4OEKsCL5A01/aJpRsXERERvWlrdkgHRERERMMmYSbr84GNJa0P/BXYE3jVmDasP3pf0rHAyel8iIiIGExtzQ7pgIiIiJjibM+VdADVDNXTgaNtz5L05vr5zPsQERER85XKDumAiIiIaFjppbQAbJ8CnDJm27jhwfa+xRsUERERi62t2SEdEBEREQ2bhGGUERERMYW0NTukAyIiIqJhkzCRVEREREwhbc0O6YCIiIhoWFvPYkREREQz2podpjXdgIiIiIiIiIiY+jICIiIiomGTMZFURERETB1tzQ7pgIiIiGiYW3odZ0RERDSjrdkhHRARERENa+tZjIiIiGhGW7ND5oCIiIiIiIiIiOIyAiIiIqJhbZ3JOiIiIprR1uyQDoiIiIiGtfU6zoiIiGhGW7NDOiAiIiIa1tazGBEREdGMtmaHdEBEREQ0rK0hIiIiIprR1uyQSSgjIiIiIiIioriMgIiIiGhYO89hRERERFPamh3U1qEbEQsiaX/bR6bu1KqZulO77jDta0QMnmH7GzRMdYdpX4et7jDt61SSSzBiKto/dadkzdSd2nWHaV8jYvAM29+gYao7TPs6bHWHaV+njHRARERERERERERx6YCIiIiIiIiIiOLSARFTUVPXZA1T3WHa19SdujWbrBsRg2XY/gYNU91h2tdhqztM+zplZBLKiIiIiIiIiCguIyAiIiIiIiIiorh0QEREREREREREcemAiIiIiIiIiIji0gEREREREREREcWlAyKmBEmrSXqypCdJWq7p9kwWSbsOU92O+lNu9mFJm3XcX0LSQZJOkvQZScsUrPtMSY+r7z9d0vskvbBUvSZJWkbS/0h6v6RHSNq3PsaHDNPfjYioJDsMR92O+skO/aub7JDssNiyCka0mqRNgS8D6wHrAhcDqwPnAu+0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\n",
"text/plain": [
"<Figure size 1080x504 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"C,eps,n=SVR_PCA_nested_CV_gridsearch(daily_input, C_range, epsilon_range, components_range, t_range,t_unit,n_splits,test_size)\n",
"print(f'C={C}')\n",
"print(f'eps={eps}')\n",
"print(f'n={n}')"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a571f823",
"metadata": {},
"outputs": [],
"source": [
"C=0.5994842503189409\n",
"eps=0.005623413251903491\n",
"n=720"
]
},
{
"cell_type": "markdown",
"id": "c4d61ea5",
"metadata": {},
"source": [
"### PREDICT RUNOFF ON TEST SET AND QUANTIFY THE PERFORMANCE"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "db450a92",
"metadata": {
"scrolled": true
},
"outputs": [
{
"ename": "ValueError",
"evalue": "When 'gamma' is a string, it should be either 'scale' or 'auto'. Got 'gamma' instead.",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mValueError\u001b[0m Traceback (most recent call last)",
"\u001b[1;32mC:\\Users\\MMAZZO~1\\AppData\\Local\\Temp/ipykernel_5320/3516289875.py\u001b[0m in \u001b[0;36m<module>\u001b[1;34m\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[0mradius_for_ensemble\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m----> 2\u001b[1;33m \u001b[0mpredictions\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mnested_CV_PCA_SVR_predict\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mdaily_input\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mC\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0meps\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mt_length\u001b[0m\u001b[1;33m,\u001b[0m\u001b[0mt_unit\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mn_splits\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mtest_size\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mradius_for_ensemble\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
"\u001b[1;32m~\\OneDrive - Scientific Network South Tyrol\\Documents\\conda\\Runoff_prediction\\test.py\u001b[0m in \u001b[0;36mnested_CV_PCA_SVR_predict\u001b[1;34m(daily_input, C, eps, n, t_length, t_unit, n_splits, test_size, radius_for_ensemble)\u001b[0m\n\u001b[0;32m 131\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 132\u001b[0m \u001b[1;31m#fit the model\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 133\u001b[1;33m \u001b[0msvr_model_tuned\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 134\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 135\u001b[0m \u001b[1;31m# get the test dates (end of the month)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\pipeline.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, **fit_params)\u001b[0m\n\u001b[0;32m 344\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_final_estimator\u001b[0m \u001b[1;33m!=\u001b[0m \u001b[1;34m'passthrough'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 345\u001b[0m \u001b[0mfit_params_last_step\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mfit_params_steps\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0msteps\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 346\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_final_estimator\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mXt\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfit_params_last_step\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 347\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 348\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, **fit_params)\u001b[0m\n\u001b[0;32m 205\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mregressor_\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mclone\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mregressor\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 206\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 207\u001b[1;33m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mregressor_\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mX\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0my_trans\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m**\u001b[0m\u001b[0mfit_params\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 208\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 209\u001b[0m \u001b[1;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;32m~\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\svm\\_base.py\u001b[0m in \u001b[0;36mfit\u001b[1;34m(self, X, y, sample_weight)\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0m_gamma\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m1.0\u001b[0m \u001b[1;33m/\u001b[0m \u001b[0mX\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mshape\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 213\u001b[0m \u001b[1;32melse\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 214\u001b[1;33m raise ValueError(\n\u001b[0m\u001b[0;32m 215\u001b[0m \u001b[1;34m\"When 'gamma' is a string, it should be either 'scale' or \"\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 216\u001b[0m \u001b[1;34m\"'auto'. Got '{}' instead.\"\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mformat\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mself\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mgamma\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
"\u001b[1;31mValueError\u001b[0m: When 'gamma' is a string, it should be either 'scale' or 'auto'. Got 'gamma' instead."
]
}
],
"source": [
"radius_for_ensemble = 1\n",
"predictions = nested_CV_PCA_SVR_predict(daily_input, C, eps, n, t_length,t_unit, n_splits, test_size, radius_for_ensemble)"
]
},
{
"cell_type": "markdown",
"id": "d7871f25",
"metadata": {},
"source": [
"predictions=pd.read_csv('tial.csv',date_parser=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1ebc45d0",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"plot_prediction(predictions)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "5302ec81",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"r2_PCA180 = evaluate_prediction(predictions)\n",
"#r2_PCA = evaluate_prediction(predictions.iloc[:,1:])"
]
},
{
"cell_type": "markdown",
"id": "fad3f100",
"metadata": {},
"source": [
"### ANALYSE RESULTS AS ANOMALIES"
]
},
{
"cell_type": "markdown",
"id": "f8c1bbc4",
"metadata": {},
"source": [
"### 1) PREDICT THE WHOLE SERIES WITH CLASSIC CV"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9740603c",
"metadata": {},
"outputs": [],
"source": [
"predictions_for_clim = classic_CV_PCA_SVR_predict(daily_input, C, eps, n, t_length,t_unit, n_splits)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "efb89688",
"metadata": {},
"outputs": [],
"source": [
"climatologies =predictions_for_clim.groupby(by=predictions_for_clim.index.day_of_year).mean().loc[:,['prediction','true_runoff']]\n",
"climatologies['doty']=climatologies.index\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "acf4e400",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"sns.set_theme(style=\"whitegrid\")\n",
"ax,fig=plt.subplots(figsize=(20,10))\n",
"sns.lineplot(data=climatologies,x='doty',y='prediction',label='prediction climatology')\n",
"sns.lineplot(data=climatologies,x='doty',y='true_runoff',label='real climatology')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "288e06d0",
"metadata": {},
"source": [
"### 2) COMPUTE THE ANOMALIES AND PLOT THEM"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "59b6fec9",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"a=compute_anomalies(climatologies, predictions)\n",
"a['split']=predictions.split\n",
"plot_anomalies(a)"
]
},
{
"cell_type": "markdown",
"id": "aa869ed8",
"metadata": {},
"source": [
"## B) PCA+SVR "
]
},
{
"cell_type": "markdown",
"id": "1d127443",
"metadata": {},
"source": [
"### TRAIN A PCA+SVR MODEL "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "551facfd",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"components_range2=[36*4]\n",
"C2,eps2,n2=SVR_PCA_nested_CV_gridsearch(daily_input, C_range, epsilon_range, components_range2, t_range,t_unit,n_splits,test_size)\n",
"print(f'C={C2}')\n",
"print(f'epsilon={eps2}')\n",
"print(f'n={n2}')"
]
},
{
"cell_type": "markdown",
"id": "9603ed4e",
"metadata": {},
"source": [
"### PREDICT RUNOFF ON TEST SET AND QUANTIFY THE PERFORMANCE"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6b4b27fd",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"radius_for_ensemble = 1\n",
"predictions2 = nested_CV_PCA_SVR_predict(daily_input, C2, eps2, n2, t_length,t_unit, n_splits, test_size, radius_for_ensemble)"
]
},
{
"cell_type": "markdown",
"id": "8db54673",
"metadata": {},
"source": [
"predictions=pd.read_csv('tial.csv',date_parser=True)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b0deb0bf",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"plot_prediction(predictions2)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "20db70b7",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"r2_PCA36 = evaluate_prediction(predictions2)\n",
"#r2_PCA = evaluate_prediction(predictions.iloc[:,1:])"
]
},
{
"cell_type": "markdown",
"id": "fe1c754b",
"metadata": {},
"source": [
"### ANALYSE RESULTS AS ANOMALIES"
]
},
{
"cell_type": "markdown",
"id": "495f4dd6",
"metadata": {},
"source": [
"### 1) PREDICT THE WHOLE SERIES WITH CLASSIC CV"
]
},
{
"cell_type": "markdown",
"id": "ed58e307",
"metadata": {},
"source": [
"predictions_for_clim2 = classic_CV_PCA_SVR_predict(daily_input, C2, eps2, n2, 12, n_splits)\n",
"climatologies2 =predictions_for_clim2.groupby(by=predictions_for_clim2.index.day_of_year).mean().loc[:,['prediction','true_runoff']]\n",
"climatologies2['doty']=climatologies2.index\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "fec90bb9",
"metadata": {},
"outputs": [],
"source": [
"climatologies2=climatologies"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "73b51ec5",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"sns.set_theme(style=\"whitegrid\")\n",
"ax,fig=plt.subplots(figsize=(20,10))\n",
"sns.lineplot(data=climatologies2,x='doty',y='prediction',label='prediction climatology')\n",
"sns.lineplot(data=climatologies2,x='doty',y='true_runoff',label='real climatology')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "0fbd86a4",
"metadata": {},
"source": [
"### 2) COMPUTE THE ANOMALIES AND PLOT THEM"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7da5ed6b",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"a2=compute_anomalies(climatologies2, predictions2)\n",
"a2['split']=predictions2.split\n",
"plot_anomalies(a2)"
]
},
{
"cell_type": "markdown",
"id": "b95dfd1e",
"metadata": {},
"source": [
"# C) SVR \n",
"## WITH SPATIAL STATISTICS AS INPUT"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "6bf784d0",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 1 folds for each of 50 candidates, totalling 50 fits\n"
]
},
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\mmazzolini\\.conda\\envs\\ado\\lib\\site-packages\\sklearn\\compose\\_target.py:152: UserWarning: The provided functions or transformer are not strictly inverse of each other. If you are sure you want to proceed regardless, set 'check_inverse=False'\n",
" warnings.warn(\"The provided functions or transformer are\"\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"Warning: best epsilon found on the grid limit: epsilon = 1e-05\n",
"\n",
"C3=0.6812920690579611\n",
"eps3=1e-05\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1080x504 with 4 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"C3, eps3 = SVR_nested_CV_gridsearch(daily_input_stat, C_range,epsilon_range, t_range,t_unit,n_splits,test_size)\n",
"print(f'C3={C3}')\n",
"print(f'eps3={eps3}') "
]
},
{
"cell_type": "markdown",
"id": "af9e9cae",
"metadata": {},
"source": [
"C3=0.5994842503189409\n",
"eps3=0.001"
]
},
{
"cell_type": "markdown",
"id": "f880d618",
"metadata": {},
"source": [
"C3=0.5994842503189409\n",
"eps3=0.001"
]
},
{
"cell_type": "markdown",
"id": "c2ff44a9",
"metadata": {},
"source": [
"### PREDICT RUNOFF ON TEST SET AND QUANTIFY THE PERFORMANCE"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "7868a11c",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"radius_for_ensemble = 1\n",
"predictions3 = nested_CV_SVR_predict(daily_input_stat, C3, eps3, t_length,t_unit, n_splits, test_size, radius_for_ensemble)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "12333e95",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"#predictions=pd.read_csv('tial.csv',date_parser=True)\n",
"plot_prediction(predictions3)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "136457d5",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"r2_STATS= evaluate_prediction(predictions3)"
]
},
{
"cell_type": "markdown",
"id": "228f771a",
"metadata": {},
"source": [
"### ANALYSE RESULTS AS ANOMALIES"
]
},
{
"cell_type": "markdown",
"id": "ae5e6ce8",
"metadata": {},
"source": [
"### 1) PREDICT THE WHOLE SERIES WITH CLASSIC CV"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "76be74df",
"metadata": {},
"outputs": [],
"source": [
"predictions_for_clim3 = classic_CV_SVR_predict(daily_input_stat, C3, eps3, t_length,t_unit, n_splits)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "2e030086",
"metadata": {},
"outputs": [],
"source": [
"climatologies3 =predictions_for_clim3.groupby(by=predictions_for_clim3.index.day_of_year).mean().loc[:,['prediction','true_runoff']]\n",
"climatologies3['doty']=climatologies3.index\n"
]
},
{
"cell_type": "markdown",
"id": "d5a2766c",
"metadata": {},
"source": [
"climatologies3=climatologies"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "419702a5",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"sns.set_theme(style=\"whitegrid\")\n",
"ax,fig=plt.subplots(figsize=(20,10))\n",
"sns.lineplot(data=climatologies3,x='doty',y='prediction',label='prediction climatology')\n",
"sns.lineplot(data=climatologies3,x='doty',y='true_runoff',label='real climatology')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "f6fe45d0",
"metadata": {},
"source": [
"### 2) COMPUTE THE ANOMALIES AND PLOT THEM"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c3c36932",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"a3=compute_anomalies(climatologies3, predictions3)\n",
"a3['split']=predictions3.split\n",
"\n",
"plot_anomalies(a3)"
]
},
{
"cell_type": "markdown",
"id": "642f12f6",
"metadata": {},
"source": [
"# D) SVR \n",
"## WITH SPATIAL AVERAGE AS INPUT"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a5b3e797",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"C4, eps4 = SVR_nested_CV_gridsearch(daily_input_TPE, C_range,epsilon_range, t_range,t_unit,n_splits,test_size)\n",
"print(f'C4={C4}')\n",
"print(f'eps4={eps4}')"
]
},
{
"cell_type": "markdown",
"id": "a1fe9df7",
"metadata": {},
"source": [
"C4=0.21544346900318834\n",
"eps4=0.01"
]
},
{
"cell_type": "markdown",
"id": "b984283a",
"metadata": {},
"source": [
"### PREDICT RUNOFF ON TEST SET AND QUANTIFY THE PERFORMANCE"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a94c90cd",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"radius_for_ensemble = 1\n",
"predictions4 = nested_CV_SVR_predict(daily_input_stat, C4, eps4, t_length,t_unit, n_splits, test_size, radius_for_ensemble)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "9430259b",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"#predictions=pd.read_csv('tial.csv',date_parser=True)\n",
"plot_prediction(predictions4)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "730c1573",
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"r2_TPE = evaluate_prediction(predictions4)"
]
},
{
"cell_type": "markdown",
"id": "cba91f4b",
"metadata": {},
"source": [
"### ANALYSE RESULTS AS ANOMALIES"
]
},
{
"cell_type": "markdown",
"id": "82918fe4",
"metadata": {},
"source": [
"### 1) PREDICT THE WHOLE SERIES WITH CLASSIC CV"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0ac95a06",
"metadata": {},
"outputs": [],
"source": [
"predictions_for_clim4 = classic_CV_SVR_predict(daily_input_stat, C4, eps4, t_length,t_unit, n_splits)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f5be5957",
"metadata": {},
"outputs": [],
"source": [
"climatologies4 =predictions_for_clim4.groupby(by=predictions_for_clim4.index.day_of_year).mean().loc[:,['prediction','true_runoff']]\n",
"climatologies4['doty']=climatologies4.index\n"
]
},
{
"cell_type": "markdown",
"id": "185e42b0",
"metadata": {},
"source": [
"climatologies4=climatologies"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "12ea330c",
"metadata": {
"scrolled": true
},
"outputs": [],
"source": [
"sns.set_theme(style=\"whitegrid\")\n",
"ax,fig=plt.subplots(figsize=(20,10))\n",
"sns.lineplot(data=climatologies4,x='doty',y='prediction',label='prediction climatology')\n",
"sns.lineplot(data=climatologies4,x='doty',y='true_runoff',label='real climatology')\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"id": "32a8fbaa",
"metadata": {},
"source": [
"### 2) COMPUTE THE ANOMALIES AND PLOT THEM"
]
},