-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclassification.py
More file actions
4480 lines (4480 loc) · 434 KB
/
classification.py
File metadata and controls
4480 lines (4480 loc) · 434 KB
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",
"metadata": {},
"source": [
"**Chapter 3 – Classification**\n",
"\n",
"_This notebook contains all the sample code and solutions to the exercises in chapter 3._"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Setup"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"First, let's make sure this notebook works well in both python 2 and 3, import a few common modules, ensure MatplotLib plots figures inline and prepare a function to save the figures:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# To support both python 2 and python 3\n",
"from __future__ import division, print_function, unicode_literals\n",
"\n",
"# Common imports\n",
"import numpy as np\n",
"import os\n",
"\n",
"# to make this notebook's output stable across runs\n",
"np.random.seed(42)\n",
"\n",
"# To plot pretty figures\n",
"%matplotlib inline\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as plt\n",
"mpl.rc('axes', labelsize=14)\n",
"mpl.rc('xtick', labelsize=12)\n",
"mpl.rc('ytick', labelsize=12)\n",
"\n",
"# Where to save the figures\n",
"PROJECT_ROOT_DIR = \".\"\n",
"CHAPTER_ID = \"classification\"\n",
"\n",
"def save_fig(fig_id, tight_layout=True):\n",
" path = os.path.join(PROJECT_ROOT_DIR, \"images\", CHAPTER_ID, fig_id + \".png\")\n",
" print(\"Saving figure\", fig_id)\n",
" if tight_layout:\n",
" plt.tight_layout()\n",
" plt.savefig(path, format='png', dpi=300)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# MNIST"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Warning**: `fetch_mldata()` is deprecated since Scikit-Learn 0.20. You should use `fetch_openml()` instead. However, it returns the unsorted MNIST dataset, whereas `fetch_mldata()` returned the dataset sorted by target (the training set and the test test were sorted separately). In general, this is fine, but if you want to get the exact same results as before, you need to sort the dataset using the following function:"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"def sort_by_target(mnist):\n",
" reorder_train = np.array(sorted([(target, i) for i, target in enumerate(mnist.target[:60000])]))[:, 1]\n",
" reorder_test = np.array(sorted([(target, i) for i, target in enumerate(mnist.target[60000:])]))[:, 1]\n",
" mnist.data[:60000] = mnist.data[reorder_train]\n",
" mnist.target[:60000] = mnist.target[reorder_train]\n",
" mnist.data[60000:] = mnist.data[reorder_test + 60000]\n",
" mnist.target[60000:] = mnist.target[reorder_test + 60000]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([[0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" ...,\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.],\n",
" [0., 0., 0., ..., 0., 0., 0.]]),\n",
" array([0, 0, 0, ..., 9, 9, 9], dtype=int8))"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"try:\n",
" from sklearn.datasets import fetch_openml\n",
" mnist = fetch_openml('mnist_784', version=1, cache=True)\n",
" mnist.target = mnist.target.astype(np.int8) # fetch_openml() returns targets as strings\n",
" sort_by_target(mnist) # fetch_openml() returns an unsorted dataset\n",
"except ImportError:\n",
" from sklearn.datasets import fetch_mldata\n",
" mnist = fetch_mldata('MNIST original')\n",
"mnist[\"data\"], mnist[\"target\"]"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(70000, 784)"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mnist.data.shape"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(70000, 784)"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"X, y = mnist[\"data\"], mnist[\"target\"]\n",
"X.shape"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(70000,)"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y.shape"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"784"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"28*28"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure some_digit_plot\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"some_digit = X[36000]\n",
"some_digit_image = some_digit.reshape(28, 28)\n",
"plt.imshow(some_digit_image, cmap = mpl.cm.binary,\n",
" interpolation=\"nearest\")\n",
"plt.axis(\"off\")\n",
"\n",
"save_fig(\"some_digit_plot\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def plot_digit(data):\n",
" image = data.reshape(28, 28)\n",
" plt.imshow(image, cmap = mpl.cm.binary,\n",
" interpolation=\"nearest\")\n",
" plt.axis(\"off\")"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"# EXTRA\n",
"def plot_digits(instances, images_per_row=10, **options):\n",
" size = 28\n",
" images_per_row = min(len(instances), images_per_row)\n",
" images = [instance.reshape(size,size) for instance in instances]\n",
" n_rows = (len(instances) - 1) // images_per_row + 1\n",
" row_images = []\n",
" n_empty = n_rows * images_per_row - len(instances)\n",
" images.append(np.zeros((size, size * n_empty)))\n",
" for row in range(n_rows):\n",
" rimages = images[row * images_per_row : (row + 1) * images_per_row]\n",
" row_images.append(np.concatenate(rimages, axis=1))\n",
" image = np.concatenate(row_images, axis=0)\n",
" plt.imshow(image, cmap = mpl.cm.binary, **options)\n",
" plt.axis(\"off\")"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure more_digits_plot\n"
]
},
{
"data": {
"image/png": "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M8A/DM3MzMxsKv8wNDMzMzPAPwzNzMzMbCr/MDQzMzMzwD8MzczMzGwq/zA0MzMzMwCmr/QAzCw/K6ywQnT6mmuuAaB79+6VGo6ZmVUZJ4ZmZmZmBjgxbJW++OILAOabb77ovFNPPRWAQw45BIAOHTrkPzDLzPjx4wF49dVXo/OGDh0K1EZiOGjQIABmnHFGAPbaa69KDseqxPDhwwEYOHAgAE888QQA77//PgCLLrpoRcZlBvDiiy8C0LNnTwDuuOMOADbaaKOKjQmcGJqZmZnZVE4Mm2jixIkA9O3bF4DBgwcDsMcee0TXOf/88wGYc845cx5d/WaaaaY6551yyilAqEHbYost8hxSbu69914AevfuXXD+yJEjgcrvqWXln3/+Keu8lqpPnz4ArL766kDrTAwvuugiAO655x4AHn/88UoOp6KefPJJAHbbbTcAfv75ZwCmmWaaio2psfr16wfAmWeeCYS0E2DttdeuxJAq7ocffgCgffv2AKy88soA3H777dF1FllkkfwH1kQnnHACAN9//32FR1LIiaGZmZmZAU4MG01749qbe+uttwCYddZZAfjmm2+i67Zp0ybn0ZWn2vZO8qTHnkwOVOtRq4nhmDFj6pw3zzzzVGAk2XrjjTcK/gXo0qVLpYaTi3fffReA/v37A4XboNbqk08+AUJS2JLcfffdQEgKta165513ouu0tsRw6623BuDll18uOF/btauuuio676yzzspvYM309ttvV3oIRTkxNDMzMzPAiWHZJk2aBMB9990HhKRQttpqKwBuuummfAfWBI8++milh1AxV199daWHUBGjR4+uc94666xTgZFk68cffwTgp59+qvBI8vP8888DISlcYoklKjmcijn88MOj06W2w3rPzzXXXLmMqSm++uoroG4NcC3VBEOo9548eXKdyzbbbDMgHKG7//77Afjjjz+K3pY+9wDvvfceAIsvvnjB/0XnW2lODM3MzMwM8A9DMzMzM5vKh5Lr8dlnn0WnFW2rQbBavpx33nkA7LjjjjmPrumS0Xpr8N133wGtd+JNrbcuqbXDbI3xwAMPFPxf26rWQq1pLrnkkui85OQyHUJ+7LHH8htYE2nspf6tFZtuumnJy6abbjogtBvSaztu3LiC66233npAaNUU/1up5kPH1brdcmJoZmZmZoATw3rF90DjS4lBWHpr3XXXBVrWEnJPP/10nfPUWqclPY7GePPNNwv+bS3U4kItTeLNzdu2bVuRMaVJRem1mqqUQ6mD/v37778rOZzcPPjggwDssssuJa+z8MILAzBs2LA8hpSKtdZaC6ibJl155ZXR6f333z/XMWVh+ukb/vnx+uuvA3Une2o7tv322wN1U8KWolq3V04MzczMzAxwYlhAy9ypmWayngHC3txtt90GQKdOnXIaXfN9+OGHALzyyit1LtMSQ2uuuWauY8rLoEGD6r18pZVWymkk+Ro7diwQ2jwssMAC0WVLLbVURcaUpm7dulV6CBWXTEtrvcZQTasHDBgAhGXSijn00EMBaNeuXfYDS8nSSy8N1H1dp5229eU4N954IwC//fZbwfk9evQA4MADD8x9TFlQejrDDDNUeCT/0/reaWZmZmZWlBNDQi3H+PHjgbA8Wpx+yZ988slAy0oKZcqUKQD88ssvdS5bcMEF8x5O5tQoFuCll16q97q1uhTeXXfdVfD/WkuTOnbsWPT8eCPzVVddNa/h5OaLL76ITidnnMeb/dYSzT4eOHAgAE899VTJ6y677LJAWHigJdLRqWI14bVO38XxOn+A+eabDwhJcK1Qw/VqWXTAiaGZmZmZAU4MAbj00kuBwiWVkrQo+7zzzpvLmPK24YYbVnoIqYsnhtoDTdKs8lqt30ku0r7ddttVaCTZSs7gVB1arVL6D3WXwquW1CFt6gwxfPjwopd37do1Ov3II48A1b30XUNUa/jMM89UeCT5iC93179/fwD+/PPPguusvvrqQO18X2m7VW2zk2vz29DMzMzMGq1VJ4aTJk0C6nbDn2222YDCzuyzzz57fgOrgMUWW6zSQ0jdiBEjGrxO3759gZbbB6sUvbeVJone27Vm/vnnB0JngVp34YUXRqeVOiy//PJAy5qBWw71sFOKVCpdUUoILTsplLvvvhuo3tUx0hZPgm+66aai1znppJPyGk6mdATrp59+Aqpvu+zE0MzMzMyAVpoYqpZhjTXWAOCjjz4quFwzoXbfffd8B5axwYMHA8X3QGuxf2E5q5x06dIlh5Hkb/To0QB8/fXXQFgBQnVotUYrIGjN1E8//TS6TLPwZ5lllvwHloNqq09KQ3ylKc0sVs2wHq86RRx99NFAbaSEceqnG59hX4s++OADAM4888yS1zn++OMBWG655XIZU9Y0Z0G10DvvvHMlh1OHE0MzMzMzA/zD0MzMzMymapWHkrX4evIQsg5ZbLnllrmPKQ/JJZZqtahZEy4eeuihktdRQ+8ZZ5wxlzHlLdnSQ4vOzzzzzJUYTuaSSxo+//zz0WlNSthiiy1yHVOWhgwZUue8WigT0ESTeGNqHXZL0iHkM844I/uBVcCVV14J1GapQNzIkSMBePnll0te54QTTgBqb5KgaEnaauHE0MzMzMyAVpYYvvPOOwDssMMOBeervYOmwtdqa5oJEyZUegi50OSiL7/8suR11l9/faD69tTS8uGHHxb8f4MNNqjQSPKhps48hRlUAAAgAElEQVTFUnAtpVZLiaHaEUFIlOLttVoqHa35+OOP61yWfG1rccJcXPIIT6357bffABg1alTJ62hSWa0e6ahWTgzNzMzMDGhlieE555wDwO+//w7ArLPOCsD+++8PQNu2bSszsJzEG8BCaGECMPfcc+c8mso6+OCDKz2ETCgtTdbP1upSeEnF0pUHHngAgPPPPz/v4WSm1uqDlRD++uuvQPHXcaGFFgLCe3nttdfOZ3AVUmuvcdJRRx0FwLBhw+pc1qFDByA0um7Tpk1+AzMnhmZmZmb2PzWfGB5yyCHR6RtuuKHgMtXkKEmsVU8//TQAkydPLjh/vfXWi05rD60W6PEWs+SSSwIhfag1r7zyClB3Juecc85ZieFUhW7dulV6CKmLJ2p6Ty+++OKVGk6TqWn15ptvDsDnn39e8rq9e/cGYMCAAdkPrArUao3hX3/9BdQ/C7lr165AaGJea5SMVysnhmZmZmYG1HBiqH5Yd9xxR53LevbsCcCJJ56Y65gq5dtvvwVCbaVoyaVaE+9hl6R0pdaWzxLNwBXVkcbrSWtRx44dAejVqxcAI0aMiC6rL4Vqad5999065ykNbompcP/+/YGwva5PrW6vSlHt+1VXXVXhkaTrrrvuAuCFF14oOD/eIeL666/Pc0i5S6alWhawWjgxNDMzMzOgBhPDX375BQh1KF9//XWd65x22mkALL/88vkNrAoka1U222yzCo0kG3/++ScQVrZpjYYOHVrwf/X/0ooBf//9d3TZtNPWzn7h9NP/b1OmFV7iMzp//PHHiowpCxMnTqxzXkusoXzvvfcAuPjii4teHq+XHD9+fC5jqla1VmM4aNCgouerjzDUbg24KA0eOHAgEDon6Lk58MADKzOwqWrnm8HMzMzMmsU/DM3MzMwMqMFDySeffDIAN954Y53LdN6KK66Y65iqlZafAjj88MOBwhY2Lc2QIUOA+g89vf/++wB88803QMss2K9P8lDj22+/DUCnTp2A0M4GavNwTbEWH+PGjavUcFL30ksvAYWHyseMGVOp4TSZJiCUOkwaP6zYWuk11r9q19NSqdQnOYFKJS3bbLNN7mOqFG2Pd9ttNwAuvfRSIEyc9KFkMzMzM6sKNZMY/vTTTwA888wzBecvuOCC0Wm1qVEhfms3evTo6HQttDMppxnqYostBtReUigLLLAAABMmTABgueWWA0L7Fl1uLZMmjB1zzDHReS1xEpHSob59+xacv/LKKwNhW92aJdPv4cOHR5f169evImNqjk022QSAzz77rOD87bffHqjNIxgN0WS5atPytihmZmZmlomaSQwnTZoEwIsvvlhwfp8+faLTtdrUuCHaE1trrbUAWGKJJQA444wzouvMO++8+Q8sZdtttx0ADz30EFC8SWqttyhKJuatzb777gvAa6+9Fp1XS/Vq+uy2dHPPPTcA66yzDhAasx9wwAFA691WxyVrDOPLXOo9rXr5am7+rdrC5DJwami9++675z6marHBBhsAcN555wGwyCKLVHI4ESeGZmZmZgbANPHZbVWk0YPSLNM111wTgM6dOwOFzY7VBNdq2+233w7ATjvtFJ13xBFHAKHxud8L1pK1a9cuOq36UW37rDY8/PDDAGy66aZAOOIDcMEFFwCw0kor5T+wRtJSrLfeeisQUn3VmRZbttZyU7QtgBNDMzMzMwNqKDE0MzMzs7I5MTQzMzOz0vzD0MzMzMwA/zA0MzMzs6n8w9DMzMzMAP8wNDMzM7Op/MPQzMzMzAD/MDQzMzOzqfzD0MzMzMwA/zA0MzMzs6n8w9DMzMzMAP8wNDMzM7Op/MPQzMzMzACYvtIDqIQddtgBgDvvvBOA9u3bA7DzzjsD0L17dwC23nrr6G9mn332PIeYimuvvRaAm266CQiPu0+fPgAsvvji0XWPO+44APbZZ588h5iJ6667DoBBgwZF52244YYArLPOOgCsvvrqAMw000wAtGnTJs8hWsYeeuih6PQ999wDwJVXXglAv379ADj99NPzH5jl4s8//wRg8uTJQPh8zzbbbBUbk1m5HnnkEQA++ugjANZaa63osummmw4o/P5OmxNDMzMzMwNgmn/++afSYygm00FdeOGFANx6660AvPTSSwBMM800BddbZpllotOHHnooAPvvv3+WQ0vFwIEDgZACau9Z9JrHH+/00/8vPF566aUBuPTSSwFYc801sx1sBoYMGQLAQQcdFJ33ww8/AHUfu5LEE044AQhJIsCMM86Y/WCb4OeffwbgnXfeic7r378/ENIxPU69nmeccQZQmILXkqeeegqAs846C4CHH344ukyvdfK11xGDWn1O5K+//gIKtwPaBv7yyy8ArLbaagD07NkTqLstrAZ630+cOBGAMWPGAPD444/Xue7XX38NwLBhwwBYeOGFgfC+WGKJJTIda0Puv//+6PT8888PwLhx4wCYMmVKwXWLba9l1KhRQPjc77jjjkDYBsoxxxwTnR49ejQATzzxRJPHL08//XTR29LnEODXX38t67YWWWSR6PR//vMfAPbcc8/mDbCFeeGFFwDo1asXAN999x0Q3r8Qvpf0Guu9PPPMMzflLot+0J0YmpmZmRnQShND0Z7MTz/9BMDw4cML/n300Uej6/7+++8AHHDAAQBcfvnleQyxSU488UQAzjnnnKKX17cHKp07dwbCc7HCCiukOcRcvPXWW9Fp7SWfeeaZAHz11VdASBKlR48e0WklrkoRK50gvv322wBss802AIwfPz66LPmaJv+/4IILAiFlAZhrrrkyHnF2lB4pmVBiqse78cYbR9fdaqutAJgwYQIQ3gOqQW0JRwGaQs+RkvObb765wb9RTV7btm2zG1gT7b333gAMHjy4ybeh5OW0004DYLfddmv2uBpD70ttjwBmnXVWIGyTyjnCkwYlyc2hOt2TTz654Pz490X8sxj37rvvAiHVjdNjVc37scceC8Biiy3WzBFXt7322guAG264oey/Of7444GwXWskJ4ZmZmZmVpp/GJqZmZkZ0Erb1YiKNfXvvvvuW/CvCkEBjjzySABuu+02IEwV1/ktUTzijxfrA3z66adAiLRb4qHk+OQhnVYx8zPPPAPAgQceCITDziNHjoz+RqcffPBBoPQhkayNHTsWCAXJX375JVB4aElj02FTXUflBB9//DFQeDjxiCOOyHDU2Sh1OF1tiPT4Dz/88Dp/q0kmet40MadW6H3yySefAOG9/c033wChLRfAUUcdBYQJD5q8oEOsAwYM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dRdQfvF7WmMbMWIEEJZ5LDbZK0ktsrTU3yabbAKEpQ7VED1+hEfJy6mnngoUXxawku6///7otLblejzJREifU6WgAMcddxwA++yzDxCW/IvfLoTvuEp/X2VNz2FWlGxrspYS76b64osvALjvvvsKztf/zznnnLJvS2l4fGJhczkxNDMzMzOghhPDP//8Eyhcwm6nnXYCwq91NXPVv+XUkClp0jJzWtS71ILWaVFN3LXXXguEGiqlnI2hpLBY64YePXoAMNNMMzVpnHlQQqgkQXtXWv6qc+fOQGHNkWjvu5y0U3voWr5KqYPqQ1oSLRWndAXCc5B3fVlzKClUPY0eg9KillgnGada1wkTJhS9XOmA6u0gHAFRDdrjjz9e8Df6POy5557ReSussEI6A67HRx99FJ1W0/Lvvvuu4Doah2p9i/n8888BuP322wG44447gJA+xpuZy6233gqEmtNKU6KlJSnjSenkyZMLrltq2xSvWevTpw8QljYcP358wd9qYYJZZ5212WPPmo7saIlOgOuvv77gOjrKVaolSzwV1+dhtdVWS22MN998M9C0pFDLzL755pupjSfu+++/B8LY9HlvDieGZmZmZgbUYGKoGV0DBw4ECmuOZphhBiAsxK10TInh6aefDoRUIj6T7eyzzwbghRdeAMIezYMPPgiEBDEra621FhBq4ppDydr7779f57JiMxirhZLCY489Fgh7y0naS46nInrelCSXEk8DVaOlfxdeeGEgzHpTTVBLWEZMe+PxdEXpqd5b1UyJ5x577AGEZER78o1phl0ttKcPYXaw9vpL1X3qvR2vmdPnWN0Ukvbaay+g8POgtC1JMxxVo9cUqifcdttto/OUCrVt2xYI9buaOV3fZ0ifWaVGqk9MJoXxOrrmjD9Nl156KQDXXXcd0LQjPMXoOUl+H6jOTLWH1bRtUlqs9PSyyy4DQkr+4osvNngbmvHbrl27gvNnmWWW6HSaSaFo1nyxNFdj0fdSsp5VabmW7SxGvzmGDBnS6LEpSdaRAnVqaA4nhmZmZmYG1FBiqNlXxxxzDBCO58d/vas2RQvRi5bMuvfeewGYeeaZAbjzzjuj62iPXnsjSgzrW/YmDTfddBMQakjqoxmGmqFZSnImVDWbMmVKdFp7VUoKtaem12/77bcHYO211wbCXjqEJdNEM5c1a1Ezj//1r39F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5yFZH6/tihpBx8eWpE4h6higunkdvdD3vjWZE0MzMzMzK63FJ4Zm1jyq5dPyYWeffTZQd/bzX3/9VYHR1Q5ta3WUoxil3S1x9rzVTQz32WcfALp16waEurr40qJpUocN1dw9/PDDQGF3DvV4zJtSPi1H2hjJJW6zPGLRyjgxNDMzM7PSnBiamZmZtT5ODM3MzMysNP8wNDMzMzPAPwzNzMzMbCr/MDQzMzMzwD8MzczMzGwq/zA0MzMzM8A/DM3MzMxsKv8wNDMzMzPAPwzNzMzMbCr/MDQzMzMzwD8MzczMzGwq/zA0MzMzM8A/DM3MzMxsKv8wNDMzMzMApq/0AMzMzFq73377DYBnn30WgGeeeQaAV199FYBhw4ZF11133XUBWGGFFQDo06cPAIsvvnguY7Xa5sTQzMzMzAD/MDQzMzOzqab5559/Kj2GYjIZ1DnnnAPAm2++CcBHH30EQK9evQBYaaWVAOjRo0cWd2+WismTJwNw4403RufdfffdAHz66acAvPfeewCst956QDjktNVWW0V/s9Zaa2U/2JR8/fXXAFx88cUA3HnnnQC88847Ra/ftm3b6LQ+30sssQQAhx12GABzzTVXNoM1a4Rff/0VgL333huAIUOGNPo25p57bgBGjBgBwMorr5zS6Ky5pplmmjrnLbDAAgCsuuqqABx55JEArLbaavkN7H/qDg4nhmZmZmY2VatKDAcMGADAbbfdVnC+0pVffvkFgHnnnReA/fffP7rODjvsAMAyyyyTxdAadM899wDw1VdfAaHY+M8//2zwb5USbbLJJgXnr7jiitHp7t27pzJOy96YMWMA+L//+7/ovHnmmQeAffbZB4AZZpgBgMceewwI7/Evv/wy+hu9p2+66SYApptuuiyH3Wg33HBDdPrggw8G4OeffwagS5cuACy66KJF/1afZYBRo0YVXLbUUksBcNdddwH5f6Z///13AK677rrovN122w0oTDqtdfjwww8B6NatGwDff/99k29r6623BmDo0KFA8bSqUvRbQ9sdpf6dO3cG4IknnoiuW+pz3RJtv/32dc7773//C8ALL7xQcP75558PwFFHHZX9wP7HiaGZmZmZldaqEsNS3n33XQAuvfRSAG6++WagcM+tTZs2QPhFf8ghh+Q5xKgWYfTo0and5vzzz1/ntFLSnj17AtCpU6fU7q8p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IFx5Lr/88jkecf758ssvgeAhi3LfffcB0LNnT6A0FcRff/0VgJ122gkIChHAo48+CsAqq6wS/8CKHO0PUgpFKXgKq4N8O7vuumuBR1K8/PnnnwB89913AKy++urVfg6pV9OmTUss23///XMwuuxp2rQpEI4BxXY8Gz9+fOL2lClTADjyyCMBWHzxxav9fJrB+vHHH4FkhanY0ft+8sknE8vkqUv1/2omcMKECQC0b98eKL7vt6bo91efxXrrrQcEBRyym+GsLVYMjTHGGGMMUIaK4VdffQXA0KFDK9z31FNPASGvbKWVVqr0ufr375+4Ld+a1Ladd9659oONmauuugoIV11RH9aIESMAGD58OFCaV2C6CtcV+NNPP524b/311y/ImIoZbQ8XXHBB0vJtttkGCPtLMSuHqixedtllATj11FMzrquKdBOQv/Tyyy8Hgm/p22+/BWD69OnVfs5bbrkFgNGjRyeW7bHHHgAstdRSNR9sNdD4iw3NaqjaFIK37rDDDgOqpxh++umnADz44INJy3v37l2rccaBjs/67ckGzeLNmDEDgLXXXjv3AysgQ4YMAYLiqzoIeUbjwoqhMcYYY4wBfGJojDHGGGMWUXZTyb/88gsA33//fYX71lprLQBatmxZ6XPosXfeeWeF+0pRupZUf8899wCw+eabA8lRO9WR84uNL774AqhocK9LRQaaElSRjWwCK6ywQtJ6++yzT+J2dKodYIMNNgBg1KhRQHzTftVBU3Ga/n722WeBMN2tMO4oBxxwAACNGzeOY4g54aGHHgLClJIC6HOFPkcV1SkgWBaZqNm9uvz1119ACNKHEC/SqVOnGj9vVSigHUKg9RZbbJG316sJF198MZAczVIbHnnkEQD++OOPpOXFHMc1f/58IMTG6Tc7WlSRGlOjoigVlZYCep8qxvrmm28S98k2IKKFWhDOVVSMEjdWDI0xxhhjDFCGiqFCeWXWVDB1dZD6snDhwtwNrADoSuySSy4BwpX8dtttByQHQOs9q91OKSG18/fffweC0luMile+OP7444Hw3m+++WYATjvtNCCoxVJSIHznujpXZFExf266gk5VtFRYkk4xbNGiBQBLL710nkdXex5//HEAjjvuOAD69OmTs+f+5JNPErdlan/zzTeBcIxQdFdt2gRqzNHvKA7FcNiwYYnbaod51FFH5e31qoOKRKTwRVlxxRWB3ETMSDkvxn1YCtrtt98OhEISqWPnn39+Yt3UfVWzeC+++GLS8lTlrZiQUqiZq2hBZ5s2bQDYdNNNAfj666+THqvj2corr5z3cabDiqExxhhjjAHKUDHUlYbiFxSTAHD00UcDMHbs2KyeS4pKqSL1T3/lj1TjcUV8QLhaHTduHABz5swBiruVlK44+/btC8Bqq60GJLdBzAVq2dStWzcAjj32WAAOPvjgnL5Otvz9998AbL311ollEydOTFpHY1Z8k77zf/75J7GOvnN5CvPZlL0myAcHQSmUoibv5P333w+Eq3Ipp1I/AW666SYgeFFTg7wLRfT9yTulGBPF7px77rk5e5399tsvsWzWrFlAUPWi99WWDTfcEAheZgj7qLbZXCqHCu5XUHsxIn9ZqjIEQSmLBvKnI7rvKsg6tS2aWra2a9eu5oPNE0888QQAl156adLyXXbZBQj7bjoUQZbKmmuumZvB5RC1sZPHVo00or5PKYU6lstTLArth7ZiaIwxxhhjgDJUDIXUnajXQo2ppZCo4XgqUlKijy0lv6Eq1FJDTs8880wgeDp01RlFVzul8H6nTp0KBHVT3pVco+pdBfYeeOCBeXmdqpDK07VrVwA+/vjjCuvImyJ1XGpEuu/62muvBaBjx465H2wtUDus008/PbFMypaUQrU91H4u0r1PbcsjR44Egq9OQd5xIwUv6vH94IMPgOD1S1VVasKYMWOA4FdUSD+EbVqfYz4YPHhw4rbUaCUh6PvMdAyuDO3vr7zyChBmh+TjK0YuuuiipP/VZAEyt2RNRT5hCLMWpYB8zvfee2/S8ubNmwPZhXGnJijIo9ehQ4ccjDC3qJ2dZq6kiCpBIYpUYG3TotBKqBVDY4wxxhgDlLFiKJSVBMHncuGFFwKhgrNt27ZJj1ElkPwakFzNWezoylIV2bq6OvnkkwH47rvvgFApmA6toyrvYkK+DLUnFKq2zhVScQ499NCk5UcccUROX6cq5KXcbLPNgFBtHuWUU04B4NZbbwXg7rvvBpJVBoDDDz88cTuqyBUT2k4feOCBCvcpdy9dy0sIylS6/fWHH35I+lsopBBp+wLo168fUFFZqglqB3fiiScCIQPu+eefT6wTh0ocPa7KM3njjTcCIZdR45DHURmzUscBFixYAISqavlMtV9I+Y22Q9R+sNFGG+Xs/eSSaMaqWghmQr9T0aryTOT6GFhTlKcK4Vik1AghH3BlucKvvfYaUFFtlB9T/r1iQLNt8rpqjKktR6MsscT/TsFSW7ZOnjw5H0PMGiuGxhhjjDEGqAOKYfRsXY3GVaWrTKlUxVAeoGyu0IoReceEvHiqilKeYVR5Ss3QUuV2tLKwWJBHTB4qfX+tW7fO6esoh0qowj3ujDB5qdIphULfraoU5ScV66yzDhCqkyEoLkLeU2Whxc1VV10FJOfRpd4XnQFIxw477ACEDh4QruSlkCsLTaqSusREu4uowj0fqDqzadOmiWWqIh8+fHilj23VqhUQ/FnpkMIt1UGKTSG9pKq6VncLVV9L/dPfbNC2rgy7G264AQjerij6vIqN6PvN9r1Hs/3kJU6tsO/evXsORldzdIyKzuakKoXijDPOAGC99dYDKmYUQvAHR7vaAHz00UcALL/88lWOSce5VVZZpcp1a4NmYOR11T4a7eiSitT89957L2l5+/bt8zDC7LFiaIwxxhhjgDqgGEazoaSWnHDCCUDIN9tkk02AUDGnK5xURaXYueOOOwCYMWNG0nJdaepKW9WQ0YxC+bmi/U2LFV1lCfk0qsoBy4boZyfflxRCXeHmokNBdVDlraqu03X3UA/WTEyfPh0I23o6tA0ccsghNRpndZEPSdunVD555KI+JVVZV4VmAaJVm/Ke6XsbMGBA0mPk9YuqjPlUDJXJOHDgwMQy+ZKyzeKLZqLJQzx37lwgKIXK2SxUv9V06LtQX/MhQ4YAlacgSMGW51vvPaq4FjtSk954440q19VxWd27VN2q7xmCz7pYMjmF1Hl1nqkMqWSpalkUZQmnHnM166XXS4cyM2vTxac6SJGXH1LH3FT/IIT+7cr8lJdS71cquNRH9bGHirN4lc0e1BQrhsYYY4wxBvCJoTHGGGOMWUTZTyVHUdCrpGsFsKpsXlOsiy++OFB6LfE0fsnOijBRI/nKigpkzFXRgtqHFSOKZNB0nwKR9TcaHltdouZ/tdpSe6Idd9yxxs9bG1QUoqne119/HUgujpFxW9OJ1UEh2P/5z39qNc7qcsUVVwBhql4FGKmfO4T2jQqwTp1aUjSLvr/U6eJ06HVl5I8r2kSFNNECIUWyVIUKrvRZQYiWkvVBxVhVxaAUEu272vbKHQWJK2S9MjSVnFoUGbXQ6JhebOjYq8IugKeeegoIRZCZmDdvXuK2psqF9ncVm1QWUyPrhKxjcU0ly7qh45esXdH3JRTwLlKPZ6ntbKM2qVTLlM5XZE2JFtHVFCuGxhhjjDEGgHpFqorldVAqqZepXwqMGo9LQdAVOMC6664LwIcffggkRweUAzLMyuQvhearr75K+r+YUBHRoEGDgKDoqX1SZcqhimx0daeIH0XDQDDEK/4jXYxKsaD3KjO22jBJJRdRs7a2fylzcRfVSNG66667gIpFNWp/B6FoQbEnqcUKmUzq6ZDqoO2k2FoCZkNUPVKhjQoRFIgcdxB7oVHxIITv9tVXXwWgU6dOhRhSTtGxGMIsQiqff/45AC1atIhlTLlEhWMAPXr0AEJ7V8VtvfTSS0D6go5iQ0V0itrR/xCOfYrQkpqq45h+c7IpqFSx4LbbbgtUO/Q77QHTiqExxhhjjAHqqGIoFJSsUFB5ddKpDgrBrSqAtlRRE2+1J5KypKs4xUsUEwog79y5MxD8dbq61HcG4QpTHh95N9QeTd95gwYNEo+RsjRx4kQAVl999Ty8i5oTVQOlEinQd/To0UBpRHpICZHKKR+h2ttBUL8UBiyPgr6lJAAAIABJREFUnYJu5cfS9xj1X3799ddJr6c2j4qTKEXGjx+fuC1vsY5jUssmTJgAhHiXqNcqGndTLug4AMFHnq13sxSoTDHUNqC2h9kEPxczGr/UNs3UKQy7XJAPsVevXkCYvZAyWr9+/XwPwYqhMcYYY4zJTJ2qSk5FzddV0alA3dtuuw1I9jGde+65MY8uXlQJp2b28hxGqx+LDbXAk09j7733BkJgcTRAOBMKhpY6pUpZCP6WYlMKpYaomh6CUiafWSkohWLNNdcEgtohFXeLLbaosK62T/Hxxx8DFSs4tQ1AqJBUmHI5oHB+CL6k2bNnA9C1a1cApk2bBgQFMR9BuMVK3G0r4yDqf05F238pK4XPPPNM4raOvUceeSRQfkqhkJdQiqH2UVUaFworhsYYY4wxBqjjiqGQWiR/meb9o8SVcVZo5F2RCiG1RVduxYiusuSpUitDVZtD+P423XTTpMdKWVAbxD322CNxX2Xt4wqJ8gyjlamXXnopENpolSKq/K8OqUqhiH53qtpVnlo5EN22pRZr+5cfWD7LuHLcCoUU5qivtBg90bVlxIgRGe+77LLLYhxJfrjyyisTt9XyTn7xckPe1+OPPz5puX5nrRgaY4wxxpiiwIphBHkNf/31VyD5bH7llVcuyJjiRqpNanWnvIbVzEiKlSWW+N/mrMpc/c0G5UVV5zFx88033wBB+YpmecmjYioiL7GyHlXdKZ/eGWecUZiB1YLo8UgVxieffDIQusDUFZQBp2r2ckPva9asWRXuU3erlVZaKdYx5RJ5CydNmlThvg033DDu4cSCvKDqOCaKJS3AiqExxhhjjAF8YmiMMcYYYxbhqWRCeKbabTVq1AgIbbjqEooDUXN7RWDI+LzXXnsVZmB5RlPJN954Y2LZ/fffX6jhpEVxLmrjFx1rXbE61IYnnngCCO0Po8U7pUY04FpEWwjWJVR0U64oiH3s2LEV7tN3vthipavxzJ8/Hwhh1hCK6BRBVm6o+ERRa2rGoAi2QlO6W5MxxhhjjMkpVgyBd999FwgmXwXrFsvZe5wsvfTSQAh1riuKodhtt93S3i4GFGitsFc1mjfZof165513BpJb7pUadVUdzJZ0bU3LEbVxVWHaaqutVsjh5IxLLrmk0EPIKyo+2XrrrQG4/fbbCzmcClgxNMYYY4wxgBXDtOyzzz6FHkLBUVTPt99+C8AhhxxSyOHUaR555BEg+FKGDRsGWDWqKccdd1yhh2DyTGrrxFJGMVzRNn9qGadmDAoxv+6662IeXX7YZZddCj2EvJLJY1gsWDE0xhhjjDEA1FPrsyIj1kHdc889QGj/9uabbwLBb2eMMcYUEs0UABx++OFA8Mu+8MILANSvXz/+gZlSJq0Z14qhMcYYY4wBrBgaY4wxxtRFrBgaY4wxxpjM+MTQGGOMMcYAPjE0xhhjjDGL8ImhMcYYY4wBfGJojDHGGGMW4RNDY4wxxhgD+MTQGGOMMcYswieGxhhjjDEG8ImhMcYYY4xZhE8MjTHGGGMM4BNDY4wxxhizCJ8YGmOMMcYYAJYo9ACMMfExe/bsxO23334bgFGjRgGwxhprAHDGGWcA0KBBg5hHZ4ypq4wdOzZx+7vvvku674MPPgBgzpw5ANx8880ALLXUUjGNrm5hxdAYY4wxxgBWDE0O+PvvvwHo0aMHAEceeSQAO+20U8HGVF1+/vlnAJ555pnEshdffBGAhx9+OGndf//9FwgKW58+fQA45phjEusssUTudq0PP/wQgD///BOALbbYIuO6L7/8MgAvvPACAFOnTk37XBCuvlPp1q0bAG3btq3hiAuHvpuePXsmlg0ZMqTSx+y8884AjBw5Mm/jyhXaTr/55pvEMn2Pjz/+OAC///47AHfddVfSY9dcc83E7VmzZuV1nMZky6uvvgrA4YcfnlgW3b7TseKKKwJw1VVX5W9gRcqvv/4KhGOB0GeSi5keK4bGGGOMMQawYmhywJ133gnA0KFDAXjnnXcAmDJlSsHGVBWffvopAAMGDABgzJgxAEyaNCmxTr169ZL+pqKr2pNPPhkIShskqzM1RUrsSSedBASfTZMmTTI+ZubMmUBFxXLrrbcG4JBDDkksO+igg9I+3+qrr16bYRcUKaXpVEL5kVK/z+233z7v46ouw4YNA+CTTz4Bggo4evRoIFn5zUTq+8y0HRsTB/pduP/++wF44IEHAFi4cCEQtvFsmDt3bo5HV1jmzZsHwLRp0wAYOHBgxnX/+9//AjBx4kQg7Nea+Vh11VWB5JmlU089tVrjsWJojDHGGGMAnxgaY4wxxphFeCo5j6hYYMaMGUnL119//UIMJydEDa+XXHIJEKZjxZVXXhnrmLJBU8f9+/cH4JFHHgHg+++/L9iYqmLxxRcHYJdddgHCVLK2pzZt2iTW3XfffQFo3rw5AEcddVRMoywO9D1q2j2KioJuueUWAJZZZpn4BlZNVCx03HHHAfDHH39U+Zj69etXen+rVq0AuPTSS2s3OGNqgAr6VJS4YMGCaj/HhhtuCMCxxx4LhP2j1FGB2PXXXw+E/b8mto9XXnkl6f/VVlutxuOyYmiMMcYYYwArhjVGV/Iygo4bNw4IhlAIhQzRggaAf/75J44hZuTbb78FQrAxhOiVtdZaC4BmzZoBIRBZ7+Gss85KPGby5MkANG7cGAhXcXvttVfexp4NGvPll1+eWKbImR9//BGonRG/U6dOAGy++eZJy5dddtkaP2dlSJlVHIECqI8//vjEOr169crLaxc7P/30EwBdu3YFQgyLDNgQtoNiVgqFTPU6vih6onv37kBQ//S+AW688cY4h2hMlajQBLJXCjXbAeFY2rt3byDMmtRGBSs0P/zwQ+L2bbfdBoS4He3vm222GRB+j7U83fvW8Uy/1Sre0exR69atazxWK4bGGGOMMQawYpg1EyZMAOCJJ54A4PnnnwdCnISCdStTonbcccd8DjEjCmpWELNUldS2QxBiTjbaaCMAPvvsMwB++eWXCuvuvvvuANx7771A5TEqcSAvy7nnngsEX2EUfU+pKKIl+h3p/SnWpdDIX6OrzKh6Kz/iiSeemPax8rsqAgdg6aWXzss440Dv45RTTgGCQiGlUEHfAE2bNo15dDXnoYceSvr/gAMOAOC+++4rxHDKHimvag8J8NdffwEhwurqq6+Of2AlTtQbm0kplCp42mmnAUFZBFhvvfXyOLr88OWXXwIhaP7dd98FwmyVzh0gzALJJ37RRRcB4TdHvmH9XlXlI841VgyNMcYYYwxgxRAIV4byANxwww1AclPvVOSH2G233TKu065dOyDM+VfWyiyXpFbgDh48GAiqkcauQEwICss666wDhKBNBTXLz6CrOwhKWtxXM6m89957QFAKpXJWpt4ut9xyAOyzzz4A3H777UBxq2gam0Kqo96y6667DoAuXboA0KJFCyBUuR1xxBFAcoW8fHmNGjUCQiWzfGzF/FlcdtllQAjLXWGFFQB46aWXANh4440LM7Ac0bJlS8BqVa6Qr1rbi4536dogSq1KbSlYSmg2SCpW1PP31VdfAcEPr+P3s88+G+MIoWHDhkCY+ZBSCzB//nwAVlpppVjHVBOkiOo3RP7B888/Hwgt7O64447EY5ZffnkgpGPUxg+YD6wYGmOMMcYYAOpl8lwVmLwOSpWpm266KQBff/01kHzFAsl+tP/85z9AaFWl9lrFVOko36PUISmgUgj79u0LwN577w0kNyr/7bffANhkk00AmDNnDhCUGL3fYkRVWfJOVqYUqjXQ0UcfDUDbtm3zPLrcI3/dnnvumVimVnAHH3wwELxp2hakDkcbrEtd0/4g9Jj99tsPgD322CO3b6AWqOWfPLCqxFMOWHVbPxULOvbofUlBiPqS6gI65sqXBWH2Qp+N/laGFLKbbroJCF5wqTdCxzt5viAc66P7SrGhfVbvU+9L7Uk12xXNnRU65mm/VsW72mbmgtdffz1xu2PHjpWu26FDByC0hYMwixH1HaZjm222ASomROQbJV8AnHDCCUCYeZQqHT0+Q/IM5LrrrgsURZV12h9LK4bGGGOMMQaoAx7DaBWmKn90Rq+zfl0ZypelylT5zwC23HJLIChoxYh8GdG8JAjK4GKL/e86QNVgleXuRXPgygH5O6So5StzMA5UgawrfQieqaeeegoICom2efl4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\n",
"text/plain": [
"<Figure size 648x648 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"plt.figure(figsize=(9,9))\n",
"example_images = np.r_[X[:12000:600], X[13000:30600:600], X[30600:60000:590]]\n",
"plot_digits(example_images, images_per_row=10)\n",
"save_fig(\"more_digits_plot\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y[36000]"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"X_train, X_test, y_train, y_test = X[:60000], X[60000:], y[:60000], y[60000:]"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np\n",
"\n",
"shuffle_index = np.random.permutation(60000)\n",
"X_train, y_train = X_train[shuffle_index], y_train[shuffle_index]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Binary classifier"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [],
"source": [
"y_train_5 = (y_train == 5)\n",
"y_test_5 = (y_test == 5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"**Note**: a few hyperparameters will have a different default value in future versions of Scikit-Learn, so a warning is issued if you do not set them explicitly. This is why we set `max_iter=5` and `tol=-np.infty`, to get the same results as in the book, while avoiding the warnings."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"SGDClassifier(alpha=0.0001, average=False, class_weight=None,\n",
" early_stopping=False, epsilon=0.1, eta0=0.0, fit_intercept=True,\n",
" l1_ratio=0.15, learning_rate='optimal', loss='hinge', max_iter=5,\n",
" n_iter=None, n_iter_no_change=5, n_jobs=None, penalty='l2',\n",
" power_t=0.5, random_state=42, shuffle=True, tol=-inf,\n",
" validation_fraction=0.1, verbose=0, warm_start=False)"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.linear_model import SGDClassifier\n",
"\n",
"sgd_clf = SGDClassifier(max_iter=5, tol=-np.infty, random_state=42)\n",
"sgd_clf.fit(X_train, y_train_5)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ True])"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sgd_clf.predict([some_digit])"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.9502 , 0.96565, 0.96495])"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.model_selection import cross_val_score\n",
"cross_val_score(sgd_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0.9502\n",
"0.96565\n",
"0.96495\n"
]
}
],
"source": [
"from sklearn.model_selection import StratifiedKFold\n",
"from sklearn.base import clone\n",
"\n",
"skfolds = StratifiedKFold(n_splits=3, random_state=42)\n",
"\n",
"for train_index, test_index in skfolds.split(X_train, y_train_5):\n",
" clone_clf = clone(sgd_clf)\n",
" X_train_folds = X_train[train_index]\n",
" y_train_folds = (y_train_5[train_index])\n",
" X_test_fold = X_train[test_index]\n",
" y_test_fold = (y_train_5[test_index])\n",
"\n",
" clone_clf.fit(X_train_folds, y_train_folds)\n",
" y_pred = clone_clf.predict(X_test_fold)\n",
" n_correct = sum(y_pred == y_test_fold)\n",
" print(n_correct / len(y_pred))"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.base import BaseEstimator\n",
"class Never5Classifier(BaseEstimator):\n",
" def fit(self, X, y=None):\n",
" pass\n",
" def predict(self, X):\n",
" return np.zeros((len(X), 1), dtype=bool)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([0.909 , 0.90715, 0.9128 ])"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"never_5_clf = Never5Classifier()\n",
"cross_val_score(never_5_clf, X_train, y_train_5, cv=3, scoring=\"accuracy\")"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.model_selection import cross_val_predict\n",
"\n",
"y_train_pred = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3)"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[53272, 1307],\n",
" [ 1077, 4344]])"
]
},
"execution_count": 23,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.metrics import confusion_matrix\n",
"\n",
"confusion_matrix(y_train_5, y_train_pred)"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"y_train_perfect_predictions = y_train_5"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[54579, 0],\n",
" [ 0, 5421]])"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"confusion_matrix(y_train_5, y_train_perfect_predictions)"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7687135020350381"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.metrics import precision_score, recall_score\n",
"\n",
"precision_score(y_train_5, y_train_pred)"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7687135020350381"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"4344 / (4344 + 1307)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.801328168234643"
]
},
"execution_count": 28,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"recall_score(y_train_5, y_train_pred)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.801328168234643"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"4344 / (4344 + 1077)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7846820809248555"
]
},
"execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from sklearn.metrics import f1_score\n",
"f1_score(y_train_5, y_train_pred)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.7846820809248555"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"4344 / (4344 + (1077 + 1307)/2)"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([161855.74572176])"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_scores = sgd_clf.decision_function([some_digit])\n",
"y_scores"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"threshold = 0\n",
"y_some_digit_pred = (y_scores > threshold)"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([ True])"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_some_digit_pred"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([False])"
]
},
"execution_count": 35,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"threshold = 200000\n",
"y_some_digit_pred = (y_scores > threshold)\n",
"y_some_digit_pred"
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [],
"source": [
"y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,\n",
" method=\"decision_function\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: there was an [issue](https://github.com/scikit-learn/scikit-learn/issues/9589) in Scikit-Learn 0.19.0 (fixed in 0.19.1) where the result of `cross_val_predict()` was incorrect in the binary classification case when using `method=\"decision_function\"`, as in the code above. The resulting array had an extra first dimension full of 0s. Just in case you are using 0.19.0, we need to add this small hack to work around this issue:"
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(60000,)"
]
},
"execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"y_scores.shape"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [],
"source": [
"# hack to work around issue #9589 in Scikit-Learn 0.19.0\n",
"if y_scores.ndim == 2:\n",
" y_scores = y_scores[:, 1]"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import precision_recall_curve\n",
"\n",
"precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure precision_recall_vs_threshold_plot\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def plot_precision_recall_vs_threshold(precisions, recalls, thresholds):\n",
" plt.plot(thresholds, precisions[:-1], \"b--\", label=\"Precision\", linewidth=2)\n",
" plt.plot(thresholds, recalls[:-1], \"g-\", label=\"Recall\", linewidth=2)\n",
" plt.xlabel(\"Threshold\", fontsize=16)\n",
" plt.legend(loc=\"upper left\", fontsize=16)\n",
" plt.ylim([0, 1])\n",
"\n",
"plt.figure(figsize=(8, 4))\n",
"plot_precision_recall_vs_threshold(precisions, recalls, thresholds)\n",
"plt.xlim([-700000, 700000])\n",
"save_fig(\"precision_recall_vs_threshold_plot\")\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 41,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(y_train_pred == (y_scores > 0)).all()"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"y_train_pred_90 = (y_scores > 70000)"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.8659205116491548"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"precision_score(y_train_5, y_train_pred_90)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0.6993174691016417"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"recall_score(y_train_5, y_train_pred_90)"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Saving figure precision_vs_recall_plot\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 576x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"def plot_precision_vs_recall(precisions, recalls):\n",
" plt.plot(recalls, precisions, \"b-\", linewidth=2)\n",
" plt.xlabel(\"Recall\", fontsize=16)\n",
" plt.ylabel(\"Precision\", fontsize=16)\n",
" plt.axis([0, 1, 0, 1])\n",
"\n",
"plt.figure(figsize=(8, 6))\n",
"plot_precision_vs_recall(precisions, recalls)\n",
"save_fig(\"precision_vs_recall_plot\")\n",
"plt.show()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# ROC curves"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [],
"source": [
"from sklearn.metrics import roc_curve\n",
"\n",
"fpr, tpr, thresholds = roc_curve(y_train_5, y_scores)"
]
},
{
"cell_type": "code",