Newer
Older
{
"cell_type": "code",
"execution_count": null,
"id": "75167b57",
"metadata": {},
"outputs": [],
"source": [
"## TRAINING and TEST SET : miRNA DATA , MODEL: XGBoost"
]
},
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
{
"cell_type": "code",
"execution_count": 26,
"id": "f097ad55",
"metadata": {},
"outputs": [],
"source": [
"import warnings\n",
"warnings.filterwarnings('ignore')\n",
"import pandas as pd\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.metrics import RocCurveDisplay\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"from imblearn.over_sampling import SMOTE\n",
"from sklearn.linear_model import Lasso\n",
"import xgboost as xgb\n",
"from sklearn.model_selection import GridSearchCV\n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"#np.random.seed(7)"
]
},
{
"cell_type": "markdown",
"id": "73b6611a",
"metadata": {},
"source": [
"# Data Preprocessing"
]
},
{
"cell_type": "code",
"execution_count": 88,
"id": "0eeb7a35",
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\"DS/miRNA_DS_preprocessed_data.csv\") # read the data"
]
},
{
"cell_type": "code",
"execution_count": 89,
"id": "6e7836e1",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(230, 239)"
]
},
"execution_count": 89,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.shape"
]
},
{
"cell_type": "code",
"execution_count": 90,
"id": "683b63ce",
"metadata": {},
"outputs": [],
"source": [
"df = df.T # transpose the data"
]
},
{
"cell_type": "code",
"execution_count": 91,
"id": "2e78017d",
"metadata": {},
"outputs": [],
"source": [
"#Transform the input data\n",
"df.rename(columns=df.iloc[0], inplace = True)\n",
"df.drop(df.index[0], inplace = True)\n",
"df=df.reset_index()"
]
},
{
"cell_type": "code",
"execution_count": 92,
"id": "4c50c510",
"metadata": {},
"outputs": [],
"source": [
"metadata = pd.read_csv(\"DS/miRNA_DS_metadata_col_info.csv\") # read the class information"
]
},
{
"cell_type": "code",
"execution_count": 93,
"id": "6730cf89",
"metadata": {},
"outputs": [],
"source": [
"df= df.merge(metadata, left_on=\"index\", right_on= \"Unnamed: 0\") # merge the expresison data with class info"
]
},
{
"cell_type": "code",
"execution_count": 94,
"id": "7a8ad8ad",
"metadata": {},
"outputs": [],
"source": [
"df['title0'] = df['title0'].replace('(?i)mucosa|normal|healthy', 0, regex=True) # replace the class name \n"
]
},
{
"cell_type": "code",
"execution_count": 95,
"id": "a8cf8643",
"metadata": {},
"outputs": [],
"source": [
"df['title0'] = df['title0'].replace('(?i)Tumor|Cancer|carcinoma', 1, regex=True)"
]
},
{
"cell_type": "code",
"execution_count": 96,
"id": "f5d203aa",
"metadata": {},
"outputs": [],
"source": [
"df = df[pd.to_numeric(df['title0'], errors='coerce').notnull()]#remove all non-numeric data from the column."
]
},
{
"cell_type": "code",
"execution_count": 97,
"id": "523bdaa6",
"metadata": {},
"outputs": [],
"source": [
"df= df.drop(['index', 'Unnamed: 0'], axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 98,
"id": "46a6fb36",
"metadata": {},
"outputs": [],
"source": [
"df= df.rename(columns={\"title0\": \"index\"})"
]
},
{
"cell_type": "code",
"execution_count": 99,
"id": "e26f88c5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"index\n",
"1 119\n",
"0 119\n",
"Name: count, dtype: int64"
]
},
"execution_count": 99,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['index'].value_counts()"
]
},
{
"cell_type": "code",
"execution_count": 100,
"id": "fbaf2507",
"metadata": {},
"outputs": [],
"source": [
"df= df.apply(pd.to_numeric)"
]
},
{
"cell_type": "code",
"execution_count": 101,
"id": "f3f7adb5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"index\n",
"1 119\n",
"0 119\n",
"Name: count, dtype: int64"
]
},
"execution_count": 101,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df['index'].value_counts()"
]
},
{
"cell_type": "markdown",
"id": "203eb696",
"metadata": {},
"source": [
"# t-SNE"
]
},
{
"cell_type": "code",
"execution_count": 102,
"id": "e1027be2",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAksAAAHHCAYAAACvJxw8AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1tklEQVR4nO3deXgUVdYG8LcTQlgTDNlJSFhkXxQRBIZNUUDUKIoIKuDCDIoLgqiMSgCVqIAwIuI2gltQFBTHTxlZggsgKoKCAhIMi0ACCiQikJjkfn/UdJNOeqmqrr3f3/P0A+l0d92udFeduvfcc11CCAEiIiIi8inC7AYQERERWRmDJSIiIqIAGCwRERERBcBgiYiIiCgABktEREREATBYIiIiIgqAwRIRERFRAAyWiIiIiAJgsEREREQUAIMlIiKDrVu3Di6XC+vWrTO7KUQkA4MlIjLVhg0bMG3aNJw4cUL2c06ePIns7Gx06NAB9evXR+PGjXHeeefh3nvvxaFDhzyPmzZtGlwuF5KSknDq1Kkar5OZmYkrrrjC6z6Xy+X3Nm7cuIDtWrx4sdfj69Spg1atWuGuu+5CUVGR7PcXyMcff4xp06Zp8lpEJE8tsxtAROFtw4YNmD59OsaMGYNGjRoFffxff/2FPn36YOfOnRg9ejTuvvtunDx5Ej/++CNyc3NxzTXXIDU11es5R44cwcKFCzFp0iRZbbr00ksxatSoGve3atVK1vNnzJiBZs2a4cyZM/jyyy+xcOFCfPzxx9i+fTvq1asn6zX8+fjjj7FgwQIGTEQGYrBERLbywQcfYMuWLXjrrbcwcuRIr9+dOXMGZWVlNZ5z3nnnYdasWbjzzjtRt27doNto1aoVbrrpJtVtHDx4MLp27QoAuP3229G4cWM888wzWLFiBUaMGKH6dYnIHByGIyLTTJs2DZMnTwYANGvWzDN8tXfvXr/P2bNnDwCgV69eNX5Xp04dxMTE1Lh/6tSpKCoqwsKFC7VpuEIXX3wxAKCgoCDg4959911ccMEFqFu3LuLj43HTTTfh4MGDnt+PGTMGCxYsAOA9XEhE+mLPEhGZZujQofj555+xZMkSzJ07F/Hx8QCAhIQEv8/JyMgAALz++ut45JFHZAULvXv3xsUXX4ynn34ad9xxR9DepTNnzuC3336rcX9MTAxq164ddHvVuQO8xo0b+33M4sWLccstt+DCCy9ETk4OioqK8K9//Qvr16/Hli1b0KhRI/zjH//AoUOHsGrVKrzxxhuK20FEKgkiIhPNmjVLABAFBQWyHn/q1CnRunVrAUBkZGSIMWPGiH//+9+iqKioxmOzs7MFAHH06FHx2WefCQDimWee8fw+IyNDDBkyxOs5APzelixZErBtixYtEgDE6tWrxdGjR8WBAwfE22+/LRo3bizq1q0rfv31VyGEEHl5eQKAyMvLE0IIUVZWJhITE0WHDh3E6dOnPa/30UcfCQBi6tSpnvvGjx8veOgmMhaH4YjIVurWrYtNmzZ5hu8WL16M2267DSkpKbj77rtRWlrq83l9+vRB//798fTTT+P06dMBt5GVlYVVq1bVuPXv319WGwcMGICEhASkp6fjhhtuQIMGDfD++++jSZMmPh//7bff4siRI7jzzjtRp04dz/1DhgxBmzZt8H//93+ytktE+uAwHBFZ0rFjx7yStevWrYvY2FgAQGxsLJ5++mk8/fTT2LdvH9asWYPZs2fjueeeQ2xsLB5//HGfrzlt2jT07dsXL7zwAu677z6/205LS8OAAQNUt33BggVo1aoVatWqhaSkJLRu3RoREf6vTfft2wcAaN26dY3ftWnTBl9++aXqthBR6NizRESWNHToUKSkpHhu9957r8/HZWRk4NZbb8X69evRqFEjvPXWW35fs0+fPujXr5+s3qVQdOvWDQMGDEC/fv3Qtm3bgIESEVkfe5aIyFT+ErTnzJmD48ePe36uXjupunPOOQctWrTA9u3bAz5u2rRp6NevH1588UXljdWJO2l9165dnplzbrt27fL8HvC/v4hIPwyWiMhU9evXB4AaFbwvuOACn4///vvv0aRJE8/MObd9+/bhp59+8jmUVVXfvn3Rr18/PPXUUxBCqG+4hrp27YrExES88MILuPXWWxEdHQ0A+OSTT7Bjxw5MnTrV89iq+0tOEU8iCh2DJSIylTsoevjhh3HDDTcgKioKV155pScoqG7VqlXIzs7GVVddhYsuuggNGjTAL7/8gldffRWlpaWyKltnZ2cHTNb++eef8eabb9a4PykpCZdeeqm8N6ZAVFQUnnrqKdxyyy3o27cvRowY4SkdkJmZ6ZVf5d5f99xzDwYOHIjIyEjccMMNmreJiKowezoeEdFjjz0mmjRpIiIiIoKWEfjll1/E1KlTxUUXXSQSExNFrVq1REJCghgyZIhYu3at12Orlg6orm/fvgKAotIBffv2Dfg+3KUDvvnmm4CPq146wO2dd94R559/voiOjhZxcXHixhtv9JQbcCsvLxd33323SEhIEC6Xi2UEiAzgEsIi/dBEREREFsQpGkREREQBMFgiIiIiCoDBEhEREVEADJaIiIiIAmCwRERERBQAgyUiIiKiAFiUUgOVlZU4dOgQGjZsyKUIiIiIbEIIgT/++AOpqakB13BksKSBQ4cOIT093exmEBERkQoHDhxAWlqa398zWNJAw4YNAUg7OyYmxuTWEBERkRwlJSVIT0/3nMf9YbCkAffQW0xMDIMlIiIimwmWQsMEbyIiIqIAGCwRERERBcBgiYiIiCgA5iwZpLKyEmVlZWY3g0wSFRWFyMhIs5tBREQqMFgyQFlZGQoKClBZWWl2U8hEjRo1QnJyMmtxERHZjK2Cpc8//xyzZs3C5s2bcfjwYbz//vu4+uqrPb8XQiA7Oxsvv/wyTpw4gV69emHhwoU499xzA77uggULMGvWLBQWFqJz586YP38+unXrpkmbhRA4fPgwIiMjkZ6eHrDoFTmTEAKnTp3CkSNHAAApKSkmt4iIiJSwVbD0559/onPnzrj11lsxdOjQGr9/+umn8eyzz+K1115Ds2bN8Oijj2LgwIH46aefUKdOHZ+v+c4772DixIl44YUX0L17d8ybNw8DBw7Erl27kJiYGHKby8vLcerUKaSmpqJevXohvx7ZU926dQEAR44cQWJiIofkiIhsxCWEEGY3Qg2Xy+XVsySEQGpqKiZNmoT7778fAFBcXIykpCQsXrwYN9xwg8/X6d69Oy688EI899xzAKTcovT0dNx999146KGHZLWlpKQEsbGxKC4urlFn6cyZMygoKEBmZqbnhEnh6fTp09i7dy+aNWvmN3gnIiLjBDp/V+WYMaGCggIUFhZiwIABnvtiY2PRvXt3bNy40edzysrKsHnzZq/nREREYMCAAX6fAwClpaUoKSnxugXDPBXiZ4CIyJ4cEywVFhYCAJKSkrzuT0pK8vyuut9++w0VFRWKngMAOTk5iI2N9dy4LhwREYWqogJYtw5YskT6t6LC7BaRm2OCJSNNmTIFxcXFntuBAwfMbhIREdnY8uVAZibQvz8wcqT0b2amdD+ZzzHBUnJyMgCgqKjI6/6ioiLP76qLj49HZGSkoucAQHR0tGcdOKeuBzdmzBi4XC48+eSTXvd/8MEHhg0nLVu2DP369UNsbCwaNGiATp06YcaMGTh27Jgh2yciMsLy5cB11wG//up9/8GD0v0MmMznmGCpWbNmSE5Oxpo1azz3lZSUYNOmTejRo4fP59SuXRsXXHCB13MqKyuxZs0av88xjQn9s3Xq1MFTTz2F48eP676t6h5++GEMHz4cF154IT755BNs374dc+bMwffff4833njD8PYo8ddff5ndBCKyiYoK4N57AV9Trdz3TZjAITmz2SpYOnnyJLZu3YqtW7cCkJK6t27div3798PlcmHChAl4/PHH8eGHH2Lbtm0YNWoUUlNTvWoxXXLJJZ6ZbwAwceJEvPzyy3jttdewY8cO3HHHHfjzzz9xyy23GPzuAjCpf3bAgAFITk5GTk6O38csW7YM7du3R3R0NDIzMzFnzhyv32dmZmLmzJm49dZb0bBhQzRt2hQvvfRSwO1+/fXXmDlzJubMmYNZs2ahZ8+eyMzMxKWXXoply5Zh9OjRAIA9e/YgKysLSUlJaNCgAS688EKsXr1a8fZ//fVXjBgxAnFxcahfvz66du2KTZs2eX6/YsUKdOnSBXXq1EHz5s0xffp0lJeXe37vcrmwcOFCXHXVVahfvz6eeOKJwDuWiExjtbygL76o2aNUlRDAgQPS48hEwkby8vIEgBq30aNHCyGEqKysFI8++qhISkoS0dHR4pJLLhG7du3yeo2MjAyRnZ3tdd/8+fNF06ZNRe3atUW3bt3EV199pahdxcXFAoAoLi6u8bvTp0+Ln376SZw+fVrRa3osWyaEyyWE9J05e3O5pNuyZepeN4jRo0eLrKwssXz5clGnTh1x4MABIYQQ77//vnB/bL799lsREREhZsyYIXbt2iUWLVok6tatKxYtWuR5nYyMDBEXFycWLFggdu/eLXJyckRERITYuXOn323fc889okGDBqKsrCxgG7du3SpeeOEFsW3bNvHzzz+LRx55RNSpU0fs27dP9vb/+OMP0bx5c9G7d2/xxRdfiN27d4t33nlHbNiwQQghxOeffy5iYmLE4sWLxZ49e8Snn34qMjMzxbRp0zzbACASExPFq6++Kvbs2eO1/apC/iwQUUiWLRMiLc37UJqWptthVJbc3JqHd1+33Fzz2uhkgc7f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IiIiIgqAwRIRERFRAAyWiMjyXC4XPvjgA7ObEdC6devgcrlw4sQJs5tCRBpjsEREphgzZgxcLhdcLheioqKQlJSESy+9FK+++ioqKyu9Hnv48GEMHjzYpJbK07NnTxw+fBixsbG6bufzzz/HlVdeidTUVFsEkUROwGCJiEwzaNAgHD58GHv37sUnn3yC/v37495778UVV1yB8vJyz+OSk5MtvyZe7dq1kZycDJfLpet2/vzzT3Tu3BkLFizQdTtEdBaDJSIyTXR0NJKTk9GkSRN06dIF//znP7FixQp88sknWLx4sedxVXtQ9u7dC5fLhaVLl6J3796oW7cuLrzwQvz888/45ptv0LVrVzRo0ACDBw/2WrgaAF555RW0bdsWderUQZs2bfD88897fud+3eXLl6N///6oV68eOnfujI0bN3oes2/fPlx55ZU455xzUL9+fbRv3x4ff/wxAN/DcMuWLUP79u0RHR2NzMxMzJkzx6s9mZmZmDlzJm699VY0bNgQTZs2xUsvvRRwnw0ePBiPP/44rrnmGiW7mohCwGCJiCzl4osvRufOnbF8+fKAj8vOzsYjjzyC7777DrVq1cLIkSPxwAMP4F//+he++OIL5OfnY+rUqZ7Hv/XWW5g6dSqeeOIJ7NixAzNnzsSjjz6K1157zet1H374Ydx///3YunUrWrVqhREjRnh6ucaPH4/S0lJ8/vnn2LZtG5566ik0aNDAZ/s2b96M66+/HjfccAO2bduGadOm4dFHH/UKAgFgzpw56Nq1K7Zs2YI777wTd9xxB3bt2qVizxGRbgxZrpeIqJrRo0eLrKwsn78bPny4aNu2rednAOL9998XQghRUFAgAIhXXnnF8/slS5YIAGLNmjWe+3JyckTr1q09P7do0ULk5uZ6beexxx4TPXr08Pu6P/74owAgduzYIYQQomPHjmLatGk+2+xeMf348eNCCCFGjhwpLr30Uq/HTJ48WbRr187zc0ZGhrjppps8P1dWVorExESxcOFCn9uorup+ISL9sGeJiCxHCBE096dTp06e/yclJQEAOnbs6HXfkSNHAEh5Pnv27MFtt92GBg0aeG6PP/449uzZ4/d1U1JSAMDzOvfccw8ef/xx9OrVC9nZ2fjhhx/8tm/Hjh3o1auX1329evXC7t27UVFR4XN7LpcLycnJnu0RkTUwWCIiy9mxYweaNWsW8DFRUVGe/7sDq+r3uWfVnTx5EgDw8ssvY+vWrZ7b9u3b8dVXXwV9Xffr3H777fjll19w8803Y9u2bejatSvmz5+v9m3W2F71dhORNTBYIiJLWbt2LbZt24Zrr71Ws9dMSkpCamoqfvnlF7Rs2dLrFiwoqy49PR3jxo3D8uXLMWnSJLz88ss+H9e2bVusX7/e677169ejVatWiIyMVP1eiMh4tcxuABGFr9LSUhQWFqKiogJFRUVYuXIlcnJycMUVV2DUqFGabmv69Om45557EBsbi0GDBqG0tBTffvstjh8/jokTJ8p6jQkTJmDw4MFo1aoVjh8/jry8PLRt29bnYydNmoQLL7wQjz32GIYPH46NGzfiueee85qBp8bJkyeRn5/v+bmgoABbt25FXFwcmjZtGtJrE5FvDJaIyDQrV65ESkoKatWqhXPOOQedO3fGs88+i9GjRyMiQtuO79tvvx316tXDrFmzMHnyZNSvXx8dO3bEhAkTZL9GRUUFxo8fj19//RUxMTEYNGgQ5s6d6/OxXbp0wdKlSzF16lQ89thjSElJwYwZMzBmzJiQ3se3336L/v37e352B3qjR4+uMdOOiLThEkIIsxtBREREZFXMWSIiIiIKgMESERERUQAMloiIiIgCYLBEREREFACDJSIiIqIAGCwRERERBcBgiYiIiCgABktEREREATBYIiIiIgqAwRIRERFRAAyWiIiIiAJgsEREREQUwP8DRCqI3p7YSUsAAAAASUVORK5CYII=",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.manifold import TSNE\n",
"#t-SNE\n",
"tsne = TSNE(n_components=2,perplexity=30)\n",
"embedded_data = tsne.fit_transform(df)\n",
"\n",
"# Step 2: Separate data points by class\n",
"class_1_indices = np.where(df['index'] == 0)[0]\n",
"class_2_indices = np.where(df['index'] == 1)[0]\n",
"\n",
"class_1_data = embedded_data[class_1_indices]\n",
"class_2_data = embedded_data[class_2_indices]\n",
"\n",
"# Step 3: Plot the t-SNE plot with different colors for each class\n",
"plt.scatter(class_1_data[:, 0], class_1_data[:, 1], color='red', label='Non-Cancer')\n",
"plt.scatter(class_2_data[:, 0], class_2_data[:, 1], color='blue', label='Cancer')\n",
"\n",
"plt.title('t-SNE Plot')\n",
"plt.xlabel('Dimension 1')\n",
"plt.ylabel('Dimension 2')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "580d9e86",
"metadata": {},
"source": [
"#### t-distributed stochastic neighbor embedding (t-SNE) is a statistical method for visualizing high-dimensional data by giving each datapoint a location in a two dimensional map. In the plot above we used perplexity of 30 for visualizing the t-SNE, but we didnt do any dimensionality reduction with it. Blue points are Cancer and the red are non-cancer."
]
},
{
"cell_type": "code",
"execution_count": 103,
"id": "6a50f416",
"metadata": {},
"outputs": [],
"source": [
"X=df.drop(\"index\",axis=1)\n",
"y=df['index']"
]
},
{
"cell_type": "code",
"execution_count": 104,
"id": "e644ab0e",
"metadata": {},
"outputs": [],
"source": [
"y=y.astype('int')"
]
},
{
"cell_type": "markdown",
"id": "6cee6462",
"metadata": {},
"source": [
"# Test train split"
]
},
{
"cell_type": "code",
"execution_count": 105,
"id": "1da48142",
"metadata": {},
"outputs": [],
"source": [
"# split data into training and testing data-sets\n",
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=7)"
]
},
{
"cell_type": "code",
"execution_count": 106,
"id": "129430e6",
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"(index\n",
" 0 30\n",
" 1 30\n",
" Name: count, dtype: int64,\n",
" index\n",
" 0 89\n",
" 1 89\n",
" Name: count, dtype: int64)"
]
},
"execution_count": 106,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_test.value_counts(),y_train.value_counts()"
]
},
{
"cell_type": "markdown",
"id": "1cfe2a06",
"metadata": {},
"source": [
"# Cross validation"
]
},
{
"cell_type": "code",
"execution_count": 107,
"id": "d3550b5e",
"metadata": {
"scrolled": true
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fitting 5 folds for each of 36 candidates, totalling 180 fits\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.6s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.6s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.7s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.4s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.3s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.5s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 1.0s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n",
"[CV 2/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n",
"[CV 3/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n",
"[CV 5/5] END gamma=0.1, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.5s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.3s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.3s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.5s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.5s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.3s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.917 total time= 0.2s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.3s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.4s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.4s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.4s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.5s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.3s\n",
"[CV 1/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.5s\n",
"[CV 2/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n",
"[CV 3/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n",
"[CV 5/5] END gamma=0.01, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=1.000 total time= 0.1s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.1s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.1s\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"[CV 1/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.1, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.5s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.3s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=1.000 total time= 0.5s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.917 total time= 0.6s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.3s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.01, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.4s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.4s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=3, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.4s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.944 total time= 0.2s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.889 total time= 0.2s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.972 total time= 0.2s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.971 total time= 0.2s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=100, subsample=1.0;, score=0.943 total time= 0.2s\n",
"[CV 1/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.944 total time= 0.4s\n",
"[CV 2/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.889 total time= 0.3s\n",
"[CV 3/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.972 total time= 0.5s\n",
"[CV 4/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.971 total time= 0.5s\n",
"[CV 5/5] END gamma=0.001, learning_rate=0.001, max_depth=5, n_estimators=200, subsample=1.0;, score=0.943 total time= 0.3s\n"
]
},
{
"data": {
"text/html": [
"<style>#sk-container-id-3 {color: black;background-color: white;}#sk-container-id-3 pre{padding: 0;}#sk-container-id-3 div.sk-toggleable {background-color: white;}#sk-container-id-3 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-3 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-3 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-3 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-3 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-3 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-3 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-3 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-3 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-3 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-3 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-3 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-3 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-3 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-3 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-3 div.sk-item {position: relative;z-index: 1;}#sk-container-id-3 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-3 div.sk-item::before, #sk-container-id-3 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-3 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-3 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-3 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-3 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-3 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-3 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-3 div.sk-label-container {text-align: center;}#sk-container-id-3 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-3 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-3\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n",
" callbacks=None, colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None,\n",
" early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None,\n",
" feature_types=None, gamma=None,\n",
" gpu_id=None, grow_policy=None,\n",
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_b...\n",
" max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None,\n",
" max_leaves=None, min_child_weight=None,\n",
" missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None,\n",
" num_parallel_tree=None, predictor=None,\n",
" random_state=42, ...),\n",
" param_grid={'gamma': [0.1, 0.01, 0.001],\n",
" 'learning_rate': [0.1, 0.01, 0.001],\n",
" 'max_depth': [3, 5], 'n_estimators': [100, 200],\n",
" 'subsample': [1.0]},\n",
" verbose=3)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item sk-dashed-wrapped\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-5\" type=\"checkbox\" ><label for=\"sk-estimator-id-5\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">GridSearchCV</label><div class=\"sk-toggleable__content\"><pre>GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n",
" callbacks=None, colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None,\n",
" early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None,\n",
" feature_types=None, gamma=None,\n",
" gpu_id=None, grow_policy=None,\n",
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_b...\n",
" max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None,\n",
" max_leaves=None, min_child_weight=None,\n",
" missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None,\n",
" num_parallel_tree=None, predictor=None,\n",
" random_state=42, ...),\n",
" param_grid={'gamma': [0.1, 0.01, 0.001],\n",
" 'learning_rate': [0.1, 0.01, 0.001],\n",
" 'max_depth': [3, 5], 'n_estimators': [100, 200],\n",
" 'subsample': [1.0]},\n",
" verbose=3)</pre></div></div></div><div class=\"sk-parallel\"><div class=\"sk-parallel-item\"><div class=\"sk-item\"><div class=\"sk-label-container\"><div class=\"sk-label sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-6\" type=\"checkbox\" ><label for=\"sk-estimator-id-6\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">estimator: XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None, feature_types=None,\n",
" gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
" predictor=None, random_state=42, ...)</pre></div></div></div><div class=\"sk-serial\"><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-7\" type=\"checkbox\" ><label for=\"sk-estimator-id-7\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None, feature_types=None,\n",
" gamma=None, gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=None, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
" predictor=None, random_state=42, ...)</pre></div></div></div></div></div></div></div></div></div></div>"
],
"text/plain": [
"GridSearchCV(estimator=XGBClassifier(base_score=None, booster=None,\n",
" callbacks=None, colsample_bylevel=None,\n",
" colsample_bynode=None,\n",
" colsample_bytree=None,\n",
" early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None,\n",
" feature_types=None, gamma=None,\n",
" gpu_id=None, grow_policy=None,\n",
" importance_type=None,\n",
" interaction_constraints=None,\n",
" learning_rate=None, max_b...\n",
" max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=None,\n",
" max_leaves=None, min_child_weight=None,\n",
" missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None,\n",
" num_parallel_tree=None, predictor=None,\n",
" random_state=42, ...),\n",
" param_grid={'gamma': [0.1, 0.01, 0.001],\n",
" 'learning_rate': [0.1, 0.01, 0.001],\n",
" 'max_depth': [3, 5], 'n_estimators': [100, 200],\n",
" 'subsample': [1.0]},\n",
" verbose=3)"
]
},
"execution_count": 107,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model = xgb.XGBClassifier(random_state=42)\n",
"\n",
"# Defining parameter range\n",
"param_grid = {\n",
" 'max_depth': [3,5],\n",
" 'learning_rate': [0.1 ,0.01, 0.001],\n",
" 'n_estimators': [100,200],\n",
" 'gamma': [ 0.1,0.01,0.001],\n",
" 'subsample': [1.0]\n",
"}\n",
"\n",
"\n",
"grid = GridSearchCV(model, param_grid, refit=True, verbose=3)\n",
"\n",
"# Fitting the model for grid search\n",
"grid.fit(X_train, y_train)\n"
]
},
{
"cell_type": "markdown",
"id": "0f4c5633",
"metadata": {},
"source": [
"# Best hyperparameter :"
]
},
{
"cell_type": "code",
"execution_count": 108,
"id": "556e249c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'gamma': 0.1, 'learning_rate': 0.1, 'max_depth': 3, 'n_estimators': 100, 'subsample': 1.0}\n",
"XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None, feature_types=None,\n",
" gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=0.1, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=3, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
" predictor=None, random_state=42, ...)\n"
]
}
],
"source": [
"# print best parameter after tuning\n",
"print(grid.best_params_)\n",
" \n",
"# print how our model looks after hyper-parameter tuning\n",
"print(grid.best_estimator_)"
]
},
{
"cell_type": "code",
"execution_count": 109,
"id": "0686e808",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<style>#sk-container-id-4 {color: black;background-color: white;}#sk-container-id-4 pre{padding: 0;}#sk-container-id-4 div.sk-toggleable {background-color: white;}#sk-container-id-4 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-4 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-4 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-4 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-4 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-4 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-4 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-4 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-4 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-4 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-4 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-4 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-4 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-4 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-4 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-4 div.sk-item {position: relative;z-index: 1;}#sk-container-id-4 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-4 div.sk-item::before, #sk-container-id-4 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-4 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-4 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-4 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-4 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-4 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-4 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-4 div.sk-label-container {text-align: center;}#sk-container-id-4 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-4 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-4\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None, feature_types=None,\n",
" gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=0.1, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=3, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
" predictor=None, random_state=42, ...)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-8\" type=\"checkbox\" checked><label for=\"sk-estimator-id-8\" class=\"sk-toggleable__label sk-toggleable__label-arrow\">XGBClassifier</label><div class=\"sk-toggleable__content\"><pre>XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None, feature_types=None,\n",
" gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=0.1, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=3, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
" predictor=None, random_state=42, ...)</pre></div></div></div></div></div>"
],
"text/plain": [
"XGBClassifier(base_score=None, booster=None, callbacks=None,\n",
" colsample_bylevel=None, colsample_bynode=None,\n",
" colsample_bytree=None, early_stopping_rounds=None,\n",
" enable_categorical=False, eval_metric=None, feature_types=None,\n",
" gamma=0.1, gpu_id=None, grow_policy=None, importance_type=None,\n",
" interaction_constraints=None, learning_rate=0.1, max_bin=None,\n",
" max_cat_threshold=None, max_cat_to_onehot=None,\n",
" max_delta_step=None, max_depth=3, max_leaves=None,\n",
" min_child_weight=None, missing=nan, monotone_constraints=None,\n",
" n_estimators=100, n_jobs=None, num_parallel_tree=None,\n",
" predictor=None, random_state=42, ...)"
]
},
"execution_count": 109,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"model_xgb = grid.best_estimator_\n",
"model_xgb.fit(X_train,y_train)"
]
},
{
"cell_type": "code",
"execution_count": 110,
"id": "ac776bef",
"metadata": {},
"outputs": [],
"source": [
"y_proba = model_xgb.fit(X_train, y_train).predict_proba(X_test)[:,1]"
]
},
{
"cell_type": "markdown",
"id": "3ea57532",
"metadata": {},
"source": [
"# classification report"
]
},
{
"cell_type": "code",
"execution_count": 111,
"id": "18becbe2",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" precision recall f1-score support\n",
"\n",
" 0 0.97 0.97 0.97 30\n",
" 1 0.97 0.97 0.97 30\n",
"\n",
" accuracy 0.97 60\n",
" macro avg 0.97 0.97 0.97 60\n",
"weighted avg 0.97 0.97 0.97 60\n",
"\n"
]
}
],
"source": [
"from sklearn.metrics import classification_report, confusion_matrix\n",
"grid_predictions = grid.predict(X_test)\n",
"print(classification_report(y_test, grid_predictions))"
]
},
{
"cell_type": "markdown",
"id": "5906ed11",
"metadata": {},
"source": [
"#### The model demonstrated outstanding performance on the test dataset, with high precision, recall, and F1-score of 0.97 for both classes and an overall accuracy of 0.97."
]
},
{
"cell_type": "code",
"execution_count": 112,
"id": "c0193b78",
"metadata": {},
"outputs": [],
"source": [
"classes = model_xgb.classes_"
]
},
{
"cell_type": "code",
"execution_count": 113,
"id": "d723c69f",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0, 1])"
]
},
"execution_count": 113,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"classes"
]
},
{
"cell_type": "code",
"execution_count": 114,
"id": "4643393d",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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O1dZWVlatmxZOGIEAACXEHRrfc2aNVq2bJkGDBigsWPH6oYbblCnTp3Url07LV++XKNHjw5HnAAA2BOjq9aDrshPnjypDh06SKqbDz958qQk6frrr9fmzZtDGx0AACFy/sludrZoFHQi79Chgw4cOCBJ6tq1q9566y1JdZX6+ZeoAACAhhF0Ih87dqw+//xzSdK0adO0aNEiJSYmavLkyXr44YdDHiAAACHRwIvdNm/erGHDhikrK0uGYWj16tV+348ZM0aGYfhtQ4YMCfrHCnqOfPLkyb7/zsvL01dffaXdu3erU6dO6tWrV9ABAAAQiyorK5Wbm6u77rpLI0eOvOgxQ4YM0dKlS32fPR5P0NexdR+5JLVr107t2rWzexoAAMLKkM23nwV5/NChQzV06NCfPMbj8SgzM7P+QSnARL5w4cKAT3j//ffXOxgAAKJdeXm532ePx1OvSlqSNm7cqJYtW6pZs2b61a9+pSeffFLNmzcP6hwBJfLnn38+oJMZhhGRRH5r555qZFzR4NcFGsL7R4siHQIQNuVnTDXr3EAXC9HtZ9nZ2X67Z8+erTlz5gR9uiFDhmjkyJHKyclRaWmpZsyYoaFDh2r79u2Kj48P+DwBJfLzq9QBAHCsED2itayszO9x5PWtxu+44w7ff/fs2VO9evVSx44dtXHjRt10000BnyfoVesAALhZamqq31bfRP73OnTooBYtWqikpCSocbYXuwEA4AhR/tKUw4cP6/vvv1erVq2CGkciBwC4gt2nswU7tqKiwq+6PnDggIqKipSenq709HTNnTtXt912mzIzM1VaWqpHHnlEnTp10uDBg4O6DokcAIAw2LVrlwYOHOj7PGXKFElSfn6+Fi9erD179uiNN97QqVOnlJWVpUGDBumJJ54IulVPIgcAuEMDt9YHDBggy7r0oPfff99GMD+q12K3LVu26M4771S/fv105MgRSdIf/vAHbd26NSRBAQAQcryPvM7bb7+twYMHKykpSZ999pmqq6slSadPn9bTTz8d8gABAMClBZ3In3zySS1ZskSvvPKKrrjix4ewXHfddfr0009DGhwAAKESq68xDXqOvLi4WP37979gf1pamk6dOhWKmAAACL0QPdkt2gRdkWdmZl70ZvWtW7eqQ4cOIQkKAICQY468zvjx4/XAAw9o586dMgxDR48e1fLlyzV16lT97ne/C0eMAADgEoJurU+bNk2maeqmm27S2bNn1b9/f3k8Hk2dOlWTJk0KR4wAANjW0A+EaShBJ3LDMPTYY4/p4YcfVklJiSoqKtS9e3clJyeHIz4AAEIjyh/RWl/1fiBMQkKCunfvHspYAABAkIJO5AMHDpRhXHrl3ocffmgrIAAAwsLuLWSxUpH37t3b73Ntba2Kior0xRdfKD8/P1RxAQAQWrTW6zz//PMX3T9nzhxVVFTYDggAAASuXs9av5g777xTr7/+eqhOBwBAaMXofeQhe/vZ9u3blZiYGKrTAQAQUtx+9oORI0f6fbYsS8eOHdOuXbs0c+bMkAUGAAAuL+hEnpaW5vc5Li5OXbp00bx58zRo0KCQBQYAAC4vqETu9Xo1duxY9ezZU82aNQtXTAAAhF6MrloParFbfHy8Bg0axFvOAACOE6uvMQ161XqPHj20f//+cMQCAACCFHQif/LJJzV16lStXbtWx44dU3l5ud8GAEDUirFbz6Qg5sjnzZunhx56SDfffLMk6ZZbbvF7VKtlWTIMQ16vN/RRAgBgV4zOkQecyOfOnat7771XH330UTjjAQAAQQg4kVtW3Z8iN954Y9iCAQAgXHggjPSTbz0DACCqub21LkmdO3e+bDI/efKkrYAAAEDggkrkc+fOveDJbgAAOAGtdUl33HGHWrZsGa5YAAAInxhtrQd8Hznz4wAARJ+gV60DAOBIMVqRB5zITdMMZxwAAIQVc+QAADhZjFbkQT9rHQAARA8qcgCAO8RoRU4iBwC4QqzOkdNaBwDAwajIAQDuQGsdAADnorUOAACiDhU5AMAdaK0DAOBgMZrIaa0DAOBgVOQAAFcwftjsjI9GJHIAgDvEaGudRA4AcAVuPwMAAFGHihwA4A601gEAcLgoTcZ20FoHAMDBqMgBAK4Qq4vdSOQAAHeI0TlyWusAADgYFTkAwBVorQMA4GS01gEAQLShIgcAuEKsttapyAEA7mCFYAvC5s2bNWzYMGVlZckwDK1evdo/HMvSrFmz1KpVKyUlJSkvL0/79u0L+scikQMA3KGBE3llZaVyc3O1aNGii34/f/58LVy4UEuWLNHOnTvVpEkTDR48WFVVVUFdh9Y6AABhMHToUA0dOvSi31mWpQULFujxxx/X8OHDJUnLli1TRkaGVq9erTvuuCPg61CRAwBc4fwcuZ1NksrLy/226urqoGM5cOCAjh8/rry8PN++tLQ09e3bV9u3bw/qXCRyAIA7hKi1np2drbS0NN9WUFAQdCjHjx+XJGVkZPjtz8jI8H0XKFrrAAAEoaysTKmpqb7PHo8ngtFQkQMAXMKwLNubJKWmpvpt9UnkmZmZkqQTJ0747T9x4oTvu0CRyAEA7tDAq9Z/Sk5OjjIzM7VhwwbfvvLycu3cuVP9+vUL6ly01gEACIOKigqVlJT4Ph84cEBFRUVKT09X27Zt9eCDD+rJJ5/UVVddpZycHM2cOVNZWVkaMWJEUNchkQMAXKGhn+y2a9cuDRw40Pd5ypQpkqT8/HwVFhbqkUceUWVlpe655x6dOnVK119/vdatW6fExMSgrkMiBwC4QwO/NGXAgAGyrEsPMgxD8+bN07x582wExRw5AACORkUOAHCFWH1pCokcAOAOMfo+chI5AMAVYrUiZ44cAAAHoyIHALgDrXUAAJwtWtvjdtBaBwDAwajIAQDuYFl1m53xUYhEDgBwBVatAwCAqENFDgBwB1atAwDgXIZZt9kZH41orQMA4GBU5AhIj74V+qf7vtVVPc+qeeY5zbmrvbavS4t0WEC9rHyxpT5+r6nKSjxKSDTV/ZqzGvfYUWV3qvYdc/Rggl6Zl6UvP0lWbY2hPgPLNeHJI2p25bkIRg5bYrS1TkWOgCQ2NrX/y0S9NKNNpEMBbNuzPVnDxnynBWv3qWBlqbznpBmjOqrqbN2vxKqzcZoxqqMMQ/q3P5bouXf36VxNnGbl58iM0vYqLu/8qnU7WzSKaCLfvHmzhg0bpqysLBmGodWrV0cyHPyEXR+l6o35rbSNKhwx4OkV+zXoNyfVvkuVOl5dpYcWHNI3RxK0b0+SJOnLT5roRFmCHlpwSDndqpTTrUoPv/C19n3eWEVbkyMcPert/H3kdrYoFNFEXllZqdzcXC1atCiSYQBwucryeElSSlOvJKm2xpAM6YqEH39xX+GxZMRJX35CIkd0iegc+dChQzV06NCAj6+urlZ19Y9zWOXl5eEIC4CLmKa0ZHZrXX1thdp3rZIkde1TqcTGpl57Kktjpx2VZOi1p1rJ9Bo6+Q1Li5yKB8JEgYKCAqWlpfm27OzsSIcEwOFemtFGX3+VpOmLv/bta9rcq8dfPqid61M14qpeurVLT1WWx6tTz7MyHPVbE36sEGxRyFF/Wk6fPl1TpkzxfS4vLyeZA6i3l2a01s71qXp2VYmuzKr1+67PgDMq3L5Xp7+PV3wjKTnNqztyr1arttWXOBsQGY5K5B6PRx6PJ9JhAHA4y5IWPdZa29al6Zk/lSizbc0lj01rXjdvXrQ1Wae+a6RfDmJKz6litbXuqESOyEls7FVWzo+/7DKza9Th6r/qzKl4fXskIYKRAcF7aUYbfbSqmeYs3a+kZNM3790kxStPUt1v6/dXpqvtVVVKa35Oe3c30eJZrXXrPd/63WsOh+HtZ3Czzrl/1TNvl/o+3zv3qCTp/73ZTM9ObhupsIB6WftGC0nSw7dd5bf/oecPadBvTkqSDpd6tLSglc6cildGdo1G3X9CI+/5tsFjBS4noom8oqJCJSUlvs8HDhxQUVGR0tPT1bYtySGa7NmerMFZuZEOAwiJ948WXfaYcY8d07jHjoU/GDQYWuthsGvXLg0cOND3+fxCtvz8fBUWFkYoKgBATIrRR7RGNJEPGDBAVpTOOQAA4ATMkQMAXIHWOgAATmZadZud8VGIRA4AcIcYnSPnYYMAADgYFTkAwBUM2ZwjD1kkoUUiBwC4Q4w+2Y3WOgAADkZFDgBwBW4/AwDAyVi1DgAAog0VOQDAFQzLkmFjwZqdseFEIgcAuIP5w2ZnfBSitQ4AgINRkQMAXIHWOgAAThajq9ZJ5AAAd+DJbgAAINpQkQMAXIEnuwEA4GS01gEAQLShIgcAuIJh1m12xkcjEjkAwB1orQMAgGhDRQ4AcAceCAMAgHPF6iNaaa0DAOBgVOQAAHeI0cVuJHIAgDtYsvdO8ejM47TWAQDucH6O3M4WjDlz5sgwDL+ta9euIf+5qMgBAAiTq6++Wh988IHvc6NGoU+7JHIAgDtYsjlHHvyQRo0aKTMzs/7XDACtdQCAO5xf7GZnk1ReXu63VVdXX/KS+/btU1ZWljp06KDRo0fr0KFDIf+xSOQAAAQhOztbaWlpvq2goOCix/Xt21eFhYVat26dFi9erAMHDuiGG27QmTNnQhoPrXUAgDuYkgyb4yWVlZUpNTXVt9vj8Vz08KFDh/r+u1evXurbt6/atWunt956S+PGjbMRiD8SOQDAFUL1ZLfU1FS/RB6opk2bqnPnziopKal3DBdDax0AgAZQUVGh0tJStWrVKqTnJZEDANwhRIvdAjV16lRt2rRJBw8e1LZt23TrrbcqPj5eo0aNCumPRWsdAOAODfyI1sOHD2vUqFH6/vvvdeWVV+r666/Xjh07dOWVV9Y/hosgkQMAEAYrV65skOuQyAEA7sBLUwAAcLAQ3X4WbUjkAABXCNXtZ9GGVesAADgYFTkAwB2YIwcAwMFMSzJsJGMzOhM5rXUAAByMihwA4A601gEAcDKbiVzRmchprQMA4GBU5AAAd6C1DgCAg5mWbLXHWbUOAABCjYocAOAOllm32RkfhUjkAAB3YI4cAAAHY44cAABEGypyAIA70FoHAMDBLNlM5CGLJKRorQMA4GBU5AAAd6C1DgCAg5mmJBv3gpvReR85rXUAAByMihwA4A601gEAcLAYTeS01gEAcDAqcgCAO8ToI1pJ5AAAV7AsU5aNN5jZGRtOJHIAgDtYlr2qmjlyAAAQalTkAAB3sGzOkUdpRU4iBwC4g2lKho157iidI6e1DgCAg1GRAwDcgdY6AADOZZmmLBut9Wi9/YzWOgAADkZFDgBwB1rrAAA4mGlJRuwlclrrAAA4GBU5AMAdLEuSnfvIo7MiJ5EDAFzBMi1ZNlrrFokcAIAIskzZq8i5/QwAAIQYFTkAwBVorQMA4GQx2lp3dCI//9fROdXauscfiGblZ6LzlwcQCuUVdf++G6LatZsrzqk2dMGEkKMT+ZkzZyRJW/VehCMBwqdZ50hHAITfmTNnlJaWFpZzJyQkKDMzU1uP288VmZmZSkhICEFUoWNY0dr0D4Bpmjp69KhSUlJkGEakw3GF8vJyZWdnq6ysTKmpqZEOBwgp/n03PMuydObMGWVlZSkuLnzrr6uqqlRTU2P7PAkJCUpMTAxBRKHj6Io8Li5Obdq0iXQYrpSamsovOsQs/n03rHBV4n8rMTEx6hJwqHD7GQAADkYiBwDAwUjkCIrH49Hs2bPl8XgiHQoQcvz7hhM5erEbAABuR0UOAICDkcgBAHAwEjkAAA5GIgcAwMFI5AjYokWL1L59eyUmJqpv37765JNPIh0SEBKbN2/WsGHDlJWVJcMwtHr16kiHBASMRI6AvPnmm5oyZYpmz56tTz/9VLm5uRo8eLC++eabSIcG2FZZWanc3FwtWrQo0qEAQeP2MwSkb9++uvbaa/XSSy9JqnvOfXZ2tiZNmqRp06ZFODogdAzD0KpVqzRixIhIhwIEhIocl1VTU6Pdu3crLy/Pty8uLk55eXnavn17BCMDAJDIcVnfffedvF6vMjIy/PZnZGTo+PHjEYoKACCRyAEAcDQSOS6rRYsWio+P14kTJ/z2nzhxQpmZmRGKCgAgkcgRgISEBPXp00cbNmzw7TNNUxs2bFC/fv0iGBkAoFGkA4AzTJkyRfn5+brmmmv0i1/8QgsWLFBlZaXGjh0b6dAA2yoqKlRSUuL7fODAARUVFSk9PV1t27aNYGTA5XH7GQL20ksv6ZlnntHx48fVu3dvLVy4UH379o10WIBtGzdu1MCBAy/Yn5+fr8LCwoYPCAgCiRwAAAdjjhwAAAcjkQMA4GAkcgAAHIxEDgCAg5HIAQBwMBI5AAAORiIHAMDBSOQAADgYiRywacyYMRoxYoTv84ABA/Tggw82eBwbN26UYRg6derUJY8xDEOrV68O+Jxz5sxR7969bcV18OBBGYahoqIiW+cBcHEkcsSkMWPGyDAMGYahhIQEderUSfPmzdO5c+fCfu133nlHTzzxREDHBpJ8AeCn8NIUxKwhQ4Zo6dKlqq6u1nvvvacJEyboiiuu0PTp0y84tqamRgkJCSG5bnp6ekjOAwCBoCJHzPJ4PMrMzFS7du30u9/9Tnl5efrzn/8s6cd2+FNPPaWsrCx16dJFklRWVqbbb79dTZs2VXp6uoYPH66DBw/6zun1ejVlyhQ1bdpUzZs31yOPPKK/f13B37fWq6ur9eijjyo7O1sej0edOnXSa6+9poMHD/pe1NGsWTMZhqExY8ZIqntNbEFBgXJycpSUlKTc3Fz96U9/8rvOe++9p86dOyspKUkDBw70izNQjz76qDp37qzGjRurQ4cOmjlzpmpray847uWXX1Z2drYaN26s22+/XadPn/b7/tVXX1W3bt2UmJiorl276ve//33QsQCoHxI5XCMpKUk1NTW+zxs2bFBxcbHWr1+vtWvXqra2VoMHD1ZKSoq2bNmijz/+WMnJyRoyZIhv3LPPPqvCwkK9/vrr2rp1q06ePKlVq1b95HX/5V/+Rf/5n/+phQsXau/evXr55ZeVnJys7Oxsvf3225Kk4uJiHTt2TC+88IIkqaCgQMuWLdOSJUv05ZdfavLkybrzzju1adMmSXV/cIwcOVLDhg1TUVGR7r77bk2bNi3o/01SUlJUWFio//mf/9ELL7ygV155Rc8//7zfMSUlJXrrrbe0Zs0arVu3Tp999pnuu+8+3/fLly/XrFmz9NRTT2nv3r16+umnNXPmTL3xxhtBxwOgHiwgBuXn51vDhw+3LMuyTNO01q9fb3k8Hmvq1Km+7zMyMqzq6mrfmD/84Q9Wly5dLNM0ffuqq6utpKQk6/3337csy7JatWplzZ8/3/d9bW2t1aZNG9+1LMuybrzxRuuBBx6wLMuyiouLLUnW+vXrLxrnRx99ZEmy/u///s+3r6qqymrcuLG1bds2v2PHjRtnjRo1yrIsy5o+fbrVvXt3v+8fffTRC8719yRZq1atuuT3zzzzjNWnTx/f59mzZ1vx8fHW4cOHffv+67/+y4qLi7OOHTtmWZZldezY0VqxYoXfeZ544gmrX79+lmVZ1oEDByxJ1meffXbJ6wKoP+bIEbPWrl2r5ORk1dbWyjRN/fa3v9WcOXN83/fs2dNvXvzzzz9XSUmJUlJS/M5TVVWl0tJSnT59WseOHfN7B3ujRo10zTXXXNBeP6+oqEjx8fG68cYbA467pKREZ8+e1a9//Wu//TU1NfrZz34mSdq7d+8F74Lv169fwNc4780339TChQtVWlqqiooKnTt3TqmpqX7HtG3bVq1bt/a7jmmaKi4uVkpKikpLSzVu3DiNHz/ed8y5c+eUlpYWdDwAgkciR8waOHCgFi9erISEBGVlZalRI/9/7k2aNPH7XFFRoT59+mj58uUXnOvKK6+sVwxJSUlBj6moqJAk/eUvf/FLoFLdvH+obN++XaNHj9bcuXM1ePBgpaWlaeXKlXr22WeDjvWVV1654A+L+Pj4kMUK4NJI5IhZTZo0UadOnQI+/uc//7nefPNNtWzZ8oKq9LxWrVpp586d6t+/v6S6ynP37t36+c9/ftHje/bsKdM0tWnTJuXl5V3w/fmOgNfr9e3r3r27PB6PDh06dMlKvlu3br6Fe+ft2LHj8j/k39i2bZvatWunxx57zLfv66+/vuC4Q4cO6ejRo8rKyvJdJy4uTl26dFFGRoaysrK0f/9+jR49OqjrAwgNFrsBPxg9erRatGih4cOHa8uWLTpw4IA2btyo+++/X4cPH5YkPfDAA/rXf/1XrV69Wl999ZXuu+++n7wHvH379srPz9ddd92l1atX+8751ltvSZLatWsnwzC0du1affvtt6qoqFBKSoqmTp2qyZMn64033lBpaak+/fRTvfjii74FZPfee6/27dunhx9+WMXFxVqxYoUKCwuD+nmvuuoqHTp0SCtXrlRpaakWLlx40YV7iYmJys/P1+eff64tW7bo/vvv1+23367MzExJ0ty5c1VQUKCFCxfqf//3f/Xf//3fWrp0qZ577rmg4gFQPyRy4AeNGzfW5s2b1bZtW40cOVLdunXTuHHjVFVV5avQH3roIf3zP/+z8vPz1a9fP6WkpOjWW2/9yfMuXrxY//iP/6j77rtPXbt21fjx41VZWSlJat26tebOnatp06YpIyNDEydOlCQ98cQTmjlzpgoKCtStWzcNGTJEf/nLX5STkyOpbt767bff1urVq5Wbm6slS5bo6aefDurnveWWWzR58mRNnDhRvXv31rZt2zRz5swLjuvUqZNGjhypm2++WYMGDVKvXr38bi+7++679eqrr2rp0qXq2bOnbrzxRhUWFvpiBRBehnWpVToAACDqUZEDAOBgJHIAAByMRA4AgIORyAEAcDASOQAADkYiBwDAwUjkAAA4GIkcAAAHI5EDAOBgJHIAAByMRA4AgIP9f45NnocraQ11AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 640x480 with 2 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"#######CONFUSION MATRIX ###########\n",
"from sklearn import metrics\n",
"y_test_pred_xgb = model_xgb.predict(X_test)\n",
"confusion_matrix_test = metrics.confusion_matrix(y_test, y_test_pred_xgb)\n",
"cm_display = metrics.ConfusionMatrixDisplay(confusion_matrix = confusion_matrix_test)\n",
"cm_display.plot()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 115,
"id": "5ad4efb1",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Accuracy : 0.9666666666666667\n",
"Sensitivity : 0.9666666666666667\n",
"Specificity : 0.9666666666666667\n"
]
}
],
"source": [
"total1=sum(sum(confusion_matrix_test))\n",
"#####from confusion matrix calculate accuracy\n",
"accuracy1=(confusion_matrix_test[0,0]+confusion_matrix_test[1,1])/total1\n",
"print ('Accuracy : ', accuracy1)\n",
"\n",
"sensitivity1 = confusion_matrix_test[0,0]/(confusion_matrix_test[0,0]+confusion_matrix_test[0,1])\n",
"print('Sensitivity : ', sensitivity1 )\n",
"\n",
"specificity1 = confusion_matrix_test[1,1]/(confusion_matrix_test[1,0]+confusion_matrix_test[1,1])\n",
"print('Specificity : ', specificity1)"
]
},
{
"cell_type": "markdown",
"id": "d9587421",
"metadata": {},
"source": [
"#### The model achieved impressive consistency across accuracy, sensitivity, and specificity, with all metrics scoring 0.96, indicating its strong performance in correctly classifying both positive and negative samples."
]
},
{
"cell_type": "markdown",
"id": "6603d82c",
"metadata": {},
"source": [
"# ROC curve"
]
},
{
"cell_type": "code",
"execution_count": 116,
"id": "0e2a2694",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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mMC6deuoX7++oz8jI4MGDRoQFxfHnj17CAgI4NSpU7Ro0YLNmzfTsmVLx/SGv+/c1rJlSxYtWgRkvXNbYmIiy5Yt45tvvqFRo0b89ttvjofZLi9n1qxZMx599FH27t3LpEmTqFOnTpbLmUVERNChQwfHcmalSpVyLGe2ZcsWHnjgAdq1a8cdd9xBoUKF+O6771iyZAlff/01jz/+OAB9+vTho48+YsSIEdx2222UKlWKpk2b5uZXICJy46xdVEJEJP/asGGD4enpafTt2zfL93///XfDw8PD6N+/v6Pv0qVLxrhx44yGDRsagYGBRqFChYzSpUsbjzzyiDFr1iwjPT3dcWxWy5kVKlTIqFChgvHyyy8biYmJV91zwoQJRpUqVQwvLy8jODjY6NWrV6Yl0i6bO3euUbt2bcPHx8coXry40alTJ+Po0aOO98+cOWP06dPHqFKlilG4cGEjKCjIiIiIML766qtM14mLizMefvhhIyAgwAC0tJmI5Gka8RURERERt6A5viIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNxCIasLyG12u53jx48TEBCgrTZFRERE8iDDMEhMTCQ0NNSxSY8ruF3wPX78OGFhYVaXISIiIiL/4siRI5QtW9Zl13O74BsQEACYv5GBgYEWVyMiIiIi/5SQkEBYWJgjt7mK2wXfy9MbAgMDFXxFRERE8jBXT0vVw20iIiIi4hYUfEVERETELSj4ioiIiIhbUPAVEREREbeg4CsiIiIibkHBV0RERETcgoKviIiIiLgFBV8RERERcQsKviIiIiLiFhR8RURERMQtKPiKiIiIiFtQ8BURERERt6DgKyIiIiJuQcFXRERERNyCgq+IiIiIuAVLg++vv/5Kq1atCA0NxWaz8f333//rOStWrKBOnTr4+Phw2223MX369ByvU0RERETyP0uD78WLF6lZsyYTJ068oeNjY2N5+OGHuf/++9myZQsvvvgizz77LIsXL87hSkVEREQkvytk5c1btmxJy5Ytb/j4yZMnU758ecaOHQtA1apVWbVqFe+//z7NmzfPqTL/lWFAUpJltxcREREpUC5ezJnrWhp8nbV27VoiIyMz9TVv3pwXX3zxmuekpKSQkpLiaCckJLi0JsOAu++GNWtcelkRERERt1SINNJz6Nr5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X+6SwnJKQkICQUFBHD8eT0hIoNXliEhBt2SJGXjvvtts/33pMhERydLlvBYfH09goOvy2g2P+K5YscJlNxURKfCSk80H2N5/H8LCzI0oihUztx/+l0EEERHJGU5vYCEiIv9i507o2BG2bTPbrVqBj4+1NYmIiPNbFouIyDUYBowfD3XrmqG3ZEmYPx8mToS/PR8hIiLW0IiviIgrJCXB449DTIzZbtkSpk2D4GBr6xIREQeN+IqIuIKfHxQpYk5pGD8eFi5U6BURyWMUfEVEsispCeLjzV/bbPDxx7BxI/TtqwfYRETyoGwF399++43OnTvTsGFDjh07BsDMmTNZtWqVS4sTEcmzNm825/L26GHO7QUoXhzuvNPaukRE5JqcDr7ffPMNzZs3x8/Pj82bN5OSkgJAfHw8o0aNcnmBIiJ5it0OY8aYWwzv2QOrVkFcnNVViYjIDXA6+L755ptMnjyZKVOm4OXl5ehv3LgxmzZtcmlxIiJ5ytGj8OCD8MorkJYGbdqYqzeEhFhdmYiI3ACng+/evXu59957r+oPCgri/PnzrqhJRCTv+fprqFEDli83lyabMgW++QZKlLC6MhERuUFOB9/SpUuzf//+q/pXrVpFhQoVXFKUiEiekpQEAwbAuXNQr545v/fZZ/UAm4hIPuN08O3RowcvvPAC69evx2azcfz4cWbNmsXAgQPp1atXTtQoImItf3/4/HNzC+I1a6BSJasrEhGRbHB6A4tBgwZht9t54IEHSEpK4t5778XHx4eBAwfSr1+/nKhRRCR3pafD6NEQFgZPPWX23X+/+RIRkXzLZhiX1+FxTmpqKvv37+fChQvccccdFClSxNW15YiEhASCgoI4fjyekJBAq8sRkbwmNha6dIHVq6FwYfjzTz28JiKSyy7ntfj4eAIDXZfXsr1lsbe3N3fccYfLChERsZRhwKxZ0Ls3JCZCYCBMmqTQKyJSgDgdfO+//35s13mgY/ny5TdVkIhIrjt/3gy8X35pths3hi++gPBwK6sSEREXczr41qpVK1M7LS2NLVu2sGPHDrp16+aqukREckdSEtSpY05x8PSE11+HQYOgULZ/ICYiInmU03+zv//++1n2v/7661y4cOGmCxIRyVX+/tC+PcybZ051iIiwuiIREckh2X647Z/2799PgwYNOHv2rCsul2P0cJuIsG8feHjA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elXozsrzzz/Pli1brvu61lQHb29v6taty7Jlyxx9drudZcuWOaaEXI+vry9lypQhPT2db775htatW191TOHChQkJCeHcuXMsXrz4qmN27Nhx3VH33Kbg6wqJifD009CuHZw7Zz689v9/0YiIiFjhiSeewNPTk4kTJwJQrlw53nnnHcaNG8fQoUPZs2cPBw4c4L333uOVV17hpZdeIiIiAoCIiAhH3yuvvMLatWv53//+x7Jly3jiiSeYMWNGlvfs0KEDpUuX5rHHHmP16tUcPHiQb775xvEgVdOmTdmwYQOff/45f/75J9HR0ezYseOGP1PHjh2ZPHkyS5YsoVOnTo7+gIAABg4cyIABA5gxYwYHDhxg06ZNjB8//pq1gjmXde3atY65q2DO3V2yZAlr1qxh9+7dPPfcc1eNmGalT58+nD17lg4dOvDHH39w4MABFi9eTPfu3cnIyKBYsWLccsstfPLJJ+zfv5/ly5cTFRX1r9ctXrz4VUH6n69Cha79A/yoqCimTJnCjBkz2L17N7169eLixYt0797dcUzXrl0ZPHiwo71+/Xq+/fZbDh48yG+//UaLFi2w2+288sorjmMWL15MTEwMsbGxLFmyhPvvv58qVapkui6YDxA2a9bsXz9nrnHpGhH5gMuXM1u71jAqVjSXKbPZDGPoUMNITXXNtUVEJNdcb2mlvC6rZcIMwzBGjx5tlCxZ0rhw4YKj74cffjDuueceo3Dhwoavr69Rt25dY+rUqVled+7cuca9995rBAQEGIULFzZq1KhhjBgx4rrLmR06dMh4/PHHjcDAQMPf39+oV6+esX79esf7w4cPN4KDg42goCBjwIABRt++fa9azuyFF17I8tq7du0yAOPWW2817P9Y881utxvjxo0zKleubHh5eRklS5Y0mjdvbqxcufKataalpRmhoaFGTEyMo++vv/4yWrdubRQpUsQoVaqUMWzYMKNr166Zfn+vVeO+ffuMNm3aGEWLFjX8/PyMKlWqGC+++KKj1iVLlhhVq1Y1fHx8jBo1ahgrVqwwAOO77767Zo2uMH78eKNcuXKGt7e30aBBA8fycn//PN26dXO0V6xY4ajzlltuMbp06WIcO3Ys0zlz5841KlSoYHh7exulS5c2+vTpY5w/fz7TMUePHjW8vLyMI0eOZFmXFcuZ2QwjmzPY86mEhASCgoI4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",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from sklearn.metrics import roc_curve, auc\n",
"# Calculate the false positive rate (FPR), true positive rate (TPR), and thresholds\n",
"fpr, tpr, thresholds = roc_curve(y_test, y_proba)\n",
"\n",
"# Calculate the area under the ROC curve (AUC)\n",
"roc_auc = auc(fpr, tpr)\n",
"\n",
"# Plot the ROC curve\n",
"plt.figure(figsize=(8, 6))\n",
"plt.plot(fpr, tpr, color='blue', label='ROC curve (area = %0.2f)' % roc_auc)\n",
"plt.plot([0, 1], [0, 1], color='red', linestyle='--')\n",
"plt.xlim([0.0, 1.0])\n",
"plt.ylim([0.0, 1.05])\n",
"plt.xlabel('False Positive Rate')\n",
"plt.ylabel('True Positive Rate')\n",
"plt.title('XGBoost')\n",
"plt.legend(loc='lower right')\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"id": "371daa84",
"metadata": {},
"source": [
"### The ROC curve above shows that the XGBoost model has an AUC of 0.99 which indicates that the model preformed good in classification of non cancer and cancer."
]
},
{
"cell_type": "code",
"execution_count": 117,
"id": "338beef4",
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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19eEhISY119/PdVrOnz4sGnTpo3x8/MzgYGB5plnnjHLly9PV8C/VvA1xpgxY8YYwEybNs3Zlp73JK3P+d/vz4wZM8zdd99tAgMDjZeXl6lcubKZMmXKNWsVyYkKZHWPskh+4ubmxvvvv0+tWrXo3bs3P/30E3Xr1qVv374p9luyZAlgjQvOqNjYWM6cOQNATEwM33zzDcuXL2fw4MEp9nv55Zd55ZVXCA8Pp3fv3uzdu5f33nuPjRs3sm7dOjw9PYF/vjqtV68eY8eO5eTJk7zzzjusW7eOrVu3UqRIEQAeeOABdu3aRf/+/QkLC+PUqVOsXLmSI0eOEBYWxoQJE+jfvz+FChVi6NChAAQFBWX49WVEYmIix44do2jRoinalyxZgo+PDx07dkzzuLJly9KkSRNWr17N5cuX8fX1ZfHixfj6+vK///0vU7XExsayatUq7rzzTsqUKZOpc1xLYmIiERERNGnShDfffBM/Pz/CwsKYPHkyS5cu5cEHH0xRy5IlS3jkkUfw8PAAYM6cOfTo0YOIiAhef/11YmNjee+992jSpAlbt2696lfbHTp0oEiRIgwcONA5zKZQoUIA7Nq1izvuuAN/f3+ef/55PD09ef/997nrrrv44YcfaNCgQYpz9enTh8DAQIYPH86lS5du+D158MEHqVChAmPGjMH8/6i9lStXcvDgQXr27EnJkiXZtWsX06ZNY9euXfz888/XHdawf/9+/ve///HYY4/Ro0cPZsyYwSOPPEKdOnWoUqXKNY89d+4cLVq0oEOHDnTs2JHPPvuMF154gWrVqtGyZUsALl26RLNmzThx4gQDBgygZMmSzJs3j++///6G3w+Abt26MWTIEFasWOEc/pOe96RDhw7s27ePTz75hLfffpvixYsDEBgYCMB7771HlSpVuP/++ylQoABLliyhT58+OByOVH+/ieRodidvkbxo8ODBBjAeHh5m8+bNqZ5v3769Acz58+dTtF++fNmcPn3a+fh372xyT2Baj969exuHw+Hc99SpU8bLy8s0b97cJCUlOdsnTZpkADNjxgxjjDHx8fGmRIkSpmrVquby5cvO/b7++msDmOHDhxtjrGEApOOr7qwe6tC8eXPne7Njxw7TrVs3A5i+ffum2LdIkSKmRo0a1zzf008/bQDz22+/GWOMKVq06HWPuZbt27cbwAwYMCBd+2e0xxcwL774Yop9HQ6HKVWqlHnggQdStH/66acGMD/++KMxxpgLFy6YIkWKmF69eqXYLyoqygQEBKRq/6+rfdvQrl074+XlZQ4cOOBsO378uClcuLC58847nW3JvZRNmjRJ0QOdHtfq8e3cuXOq/dP6ij/5m5fk9+PfNf23x/e/+506dcp4e3ubZ5991tl2tR5f/vMtQ1xcnClZsmSKz2f8+PEGMIsWLXK2Xb582VSqVMklPb7GGBMQEGBq1arl3E7ve3KtoQ5pnSMiIsKUK1fumvWK5DSa1UEkCyT3loSEhFC1atVUz8fExAA4e86STZ06lcDAQOejSZMmqY594oknWLlyJStXruTzzz+nb9++vP/++0RGRjr3+e6774iPj+eZZ55JcfNNr1698Pf3Z+nSpYB109apU6fo06cPPj4+zv1at25NpUqVnPv5+vri5eXFmjVrOHfuXGbflhu2YsUK53tTrVo15syZQ8+ePVPd1HfhwgUKFy58zXMlP5/8WcTExFz3mGtJPs+NnON6evfunWLbzc2NBx98kGXLlnHx4kVn+4IFCyhVqpTz52flypWcP3+ezp07c+bMGefDw8ODBg0aZKq3MSkpiRUrVtCuXTvKlSvnbA8ODqZLly6sXbvW+Z4k69Wrl7MH2hWeeuqpVG2+vr7O31+5coUzZ85w++23A7Bly5brnvO2227jjjvucG4HBgZy6623cvDgweseW6hQoRTf4nh5eVG/fv0Uxy5fvpxSpUpx//33O9t8fHxS3Zx5IwoVKpRidocbfU/+e47o6GjOnDlD06ZNOXjwINHR0S6qXCTrKfiKuNjRo0cZMWIEVatW5ejRo7zxxhup9kkOR/8OK2ANJ0gOtVe7K7tChQqEh4cTHh5Ohw4dmDRpEn369GHChAns2LEDgD///BOAW2+9NcWxXl5elCtXzvn81fYDqFSpkvN5b29vXn/9db755huCgoK48847eeONN4iKikr3+/Jfp0+fJioqyvn473uRlgYNGrBy5UqWL1/Om2++SZEiRTh37hxeXl4p9itcuPB1p3VKfj75s/D397+hqaD8/f1TnNfVChQoQOnSpVO1d+rUicuXL7N48WLA+platmwZDz74oPNr/T/++AOAZs2apfiPVWBgICtWrODUqVMZruf06dPExsam+bNTuXJlHA4HR48eTdFetmzZDF/n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REREJJu4GZN8W7s9GjRoQL169Zg0aRIADoeD0NBQ+vfvz4svvnjd45OSkihatCiTJk2ie/fu190/JiaGgIAAjh+PJjjY/4brl1xk1CjYsAFmzoSgILurERERkatIzmvR0dH4+7sur9k6nVl8fDybN29m8ODBzjZ3d3fCw8PZsGFDus4RGxtLQkICxYoVS/P5uLg44uLinNsxWnY2/1iyBMqWhapVre0hQ8Dd3Zq6TERERPIdW4c6nDlzhqSkJIL+0/sWFBREVFRUus7xwgsvEBISQnh4eJrPjx07loCAAOcjNDT0huuWHC42Fnr3hvvvh65drRvawFp+WKFXREQk37J9jO+NeO2115g/fz5ffvklPj4+ae4zePBgoqOjnY+jR49mc5WSrbZsgdq1YepUazs8XGFXREREAJuHOhQvXhwPDw9OnjyZov3kyZOULFnymse++eabvPbaa3z33XdUr179qvt5e3vj7e3tknolB3M44M03YdgwSEiA4GD46CMr+IqIiIhgc4+vl5cXderUYdWqVc42h8PBqlWraNiw4VWPe+ONNxg1ahTLly+nbt262VGq5GTnzlkB94UXrNDbvr01e4NCr4iIiPyLrT2+AJGRkfTo0YO6detSv359JkyYwKVLl+jZsycA3bt3p1SpUowdOxaA119/neHDhzNv3jzCwsKcY4ELFSpEoUKFbHsdYiN/fyvw+vnBu+/Co49qeIOIiIikYnvw7dSpE6dPn2b48OFERUVRs2ZNli9f7rzh7ciRI7i7/9Mx/d577xEfH8///ve/FOcZMWIEL7/8cnaWLna6cAE8PcHHx7ppbe5ciIuDChXsrkxERERyKNvn8c1umsc3D/j5Z2u2hjZt/lmFTURERPKMrJrHN1fP6iD5TGIijBwJTZrAwYOwaBFoXmYRERFJJwVfyR0OHYKmTWHECEhKgi5dYNs2a3yviIiISDoo+ErOZgzMmQM1asD69VbQ/fhja0xvkSJ2VyciIiK5iO03t4lc099/Q//+1s1sjRtboTcszO6qREREJBdS8JWcrXhxeP99+OMPePFFKKAfWREREckcpQjJWeLj4eWXrRvYWrWy2jp1srUkERERyRsUfCXn2LvXmqZs82YoUQL274fChe2uSkRERPII3dwm9jMGpk+H2rWt0Fu0KEyZotArIiIiLqUeX7HXmTPQq5c1Jy9A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mxIlSpjRo0fb9RIkAzL6eY8YMcIULlzYfPLJJ+bgwYNmxYoVpnz58qZjx452vQTJgAsXLpitW7earVu3GsC89dZbZuvWrebPP/80xhjz4osvmm7dujn3T57O7LnnnjO7d+82kydP1nRmySZOnGjKlCljvLy8TP369c3PP//sfK5p06amR48eKfb/9NNPTcWKFY2Xl5epUqWKWbp0aTZXLDciI5/3zTffbIBUjxEjRmR/4ZIpGf3z/W8KvrlPRj/v9evXmwYNGhhvb29Trlw58+qrr5rExMRsrloyKyOfd0JCgnn55ZdN+fLljY+PjwkNDTV9+vQx586dy/7CJcO+//77NP89Tv6Me/ToYZo2bZrqmJo1axovLy9Trlw5M3PmzAxf180YfR8gIiIiInlfnhrjKyIiIiJyNQq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4iIiIjkCwq+IiIiIpIvKPiKiIiISL6g4CsiIiIi+YKCr4gIMGvWLIoUKWJ3GZnm5ubGokWLrrnPI488Qrt27bKlHhGRnEjBV0TyjEceeQQ3N7dUj/3799tdGrNmzXLW4+7uTunSpenZsyenTp1yyflPnDhBy5YtATh8+DBubm5s27YtxT7vvPMOs2bNcsn1rubll192vk4PDw9CQ0N54oknOHv2bIbOo5AuIlmhgN0FiIi4UosWLZg5c2aKtsDAQJuqScnf35+9e/ficDjYvn07PXv25Pjx43z77bc3fO6SJUted5+AgIAbvk56VKlShe+++46kpCR2797No48+SnR0NAsWLMiW64uIXI16fEUkT/H29qZkyZIpHh4eHrz11ltUq1aNggULEhoaSp8+fbh48eJVz7N9+3buvvtuChcujL+/P3Xq1GHTpk3O59euXcsdd9yBr68voaGhPP3001y6dOmatbm5uVGyZElCQkJo2bIlTz/9NN999x2XL1/G4XAwcuRISpcujbe3NzVr1mT58uXOY+Pj4+nXrx/BwcH4+Phw8803M3bs2BTnTh7qULZsWQBq1aqFm5sbd911F5CyF3XatGmEhITgcDhS1Ni2bVseffRR5/ZXX31F7dq18fHxoVy5crzyyiskJiZe83UWKFCAkiVLUqpUKcLDw3nwwQdZuXKl8/mkpCQee+wxypYti6+vL7feeivvvPOO8/mXX36Z2bNn89VXXzl7j9esWQPA0aNH6dixI0WKFKFYsWK0bduWw4cPX7MeEZFkCr4iki+4u7vz7rvvsmvXLmbPns3q1at5/vnnr7p/165dKV26NBs3bmTz5s28+OKLeHp6AnDgwAFatGjBAw88wG+//caCBQtYu3Yt/fr1y1BNvr6+OBwOEhMTeeeddxg/fjxvvvkmv/32GxEREdx///388ccfALz77rssXryYTz/9lL179zJ37lzCwsLSPO+vv/4KwHfffceJEyf44osvUu3z4IMP8vfff/P99987286ePcvy5cvp2rUrAD/99BPdu3dnwIAB/P7777z//vvMmjWLV199Nd2v8fDhw3z77bd4eXk52xwOB6VLl2bhwoX8/vvvDB8+nCFDhvDpp58CMGjQIDp27EiLFi04ceIEJ06coFGjRiQkJBAREUHhwoX56aefWLduHYUKFaJFixbEx8enuyYRyceMiEge0aNHD+Ph4WEKFizofPzvf/9Lc9+FCxeam266ybk9c+ZMExAQ4NwuXLiwmTVrVprHPvbYY+aJJ55I0fbTTz8Zd3d3c/ny5TSP+e/59+3bZypWrGjq1q1rjDEmJCTEvPrqqymOqVevnunTp48xxpj+/fubZs2aGYfDkeb5AfPll18aY4w5dOiQAczWrVtT7NOjRw/Ttm1b53bbtm3No48+6tx+//33TUhIiElKSjLGGHPPPfeYMWPGpDjHnDlzTHBwcJo1GGPMiBEjjLu7uylYsKDx8fExgAHMW2+9ddVjjDGmb9++5oEHHrhqrcnXvvXWW1O8B3FxccbX19d8++231zy/iIgxxmiMr4jkKXfffTfvvfeec7tgwYKA1fs5duxY9uzZQ0xMDImJiVy5coXY2Fj8/PxSnScyMpLHH3+cOXPmOL+uL1++PGANg/jtt9+YO3euc39jDA6Hg0OHDlG5cuU0a4uOjqZQoUI4HA6uXLlCkyZN+OCDD4iJieH48eM0btw4xf6NGzdm+/btgDVM4d577+XWW2+lRYsW3HfffTRv3vyG3quuXbvSq1cvpkyZgre3N3PnzuWhhx7C3d3d+TrXrVuXooc3KSnpmu8bwK233srixYu5cuUKH3/8Mdu2baN///4p9pk8eTIzZszgyJEjXL58mfj4eGrWrHnNerdv387+/fspXLhwivYrV65w4MCBTLwDIpLfKPiKSJ5SsGBBbrnllhRthw8f5r777qN37968+uqrFCtWjLVr1/LYY48RHx+fZoB7+eWX6dKlC0uXLuWbb75hxIgRzJ8/n/bt23Px4kWefPJJnn766VTHlSlT5qq1FS5cmC1btuDu7k5wcDC+vr4AxMTEXPd11a5dm0OHDvHNN9/w3Xff0bFjR8LDw/nss8+ue+zVtGnTBmMMS5cupV69evz000+8/fbbzucvXrzIK6+8QocOHVId6+Pjc9Xzenl5OT+D1157jdatW/PKK68watQoAObPn8+gQYMYP348DRs2pHDhwowbN45ffvnlmvVevHiROnXqpPgPR7KccgOjiORsCr4ikudt3rwZh8PB+PHjnb2ZyeNJr6VixYpUrFiRgQMH0rlzZ2bOnEn79u2pXbs2v//+e6qAfT3u7u5pHuPv709ISAjr1q2jadOmzvZ169ZRv379FPt16tSJTp068b///Y8WLVpw9uxZihUrluJ8yeNpk5KSrlmPj48PHTp0YO7cuezfv59bb72V2rVrO5+vXbs2e/fuzfDr/K9hw4bRrFkzevfu7XydjRo1ok+fPs59/ttj6+Xllar+2rVrs2DBAkqUKIG/v/8N1SQi+ZNubhORPO+WW24hISGBiRMncvDgQebMmcPUqVOvuv/ly5fp168fa9as4c8//2TdunVs3LjROYThhRdeYP369fTr149t27bxxx9/8NVXX2X45rZ/e+6553j99ddZsGABe/fu5cUXX2Tbtm0MGDAAgLfeeotPPvmEPXv2sG/fPhYuXEjJkiXTXHSjRIkS+Pr6snz5ck6ePEl0dPRVr9u1a1eWLl3KjBkznDe1JRs+fDgfffQRr7zyCrt27WL37t3Mnz+fYcOGZei1NWzYkOrVqzNmzBgAKlSowKZNm/j222/Zt28fL730Ehs3bkxxTFhYGL/99ht79+7lzJkzJCQk0LVrV4oXL07btm356aefOHToEGvWrOHpp5/m2LFjGapJRPInBV8RyfNq1KjBW2+9xeuvv07VqlWZO3duiqnA/svDw4O///6b7t27U7FiRTp27EjLli155ZVXAKhevTo//PAD+/bt44477qBWrVoMHz6ckJCQTNf49NNPExkZybPPPku1atVYvnw5ixcvpkKFCoA1TOKNN96gbt261KtXj8OHD7Ns2TJnD/a/FShQgHfffZf333+fkJAQ2rZte9XrNmvWjGLFirF37166dOmS4rmIiAi+/vprVqxYQb169bj99tt5++23ufnmmzP8+gYOHMgHH3zA0aNHefLJJ+nQoQOdOnWiQYMG/P333yl6fwF69erFrbfeSt26dQkMDGTdunX4+fnx448/UqZMGTp06EDlypV57LHHuHLlinqARSRd3Iwxxu4iRERERESymnp8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8gUFXxERERHJFxR8RURERCRfUPAVERERkXxBwVdERERE8oX/A8lTrErJuNg/AAAAAElFTkSuQmCC",
"text/plain": [
"<Figure size 800x600 with 1 Axes>"
]
},
"metadata": {},