-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathImage Classification_Skin Cancer
More file actions
854 lines (854 loc) · 72.1 KB
/
Image Classification_Skin Cancer
File metadata and controls
854 lines (854 loc) · 72.1 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
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Copy of Copy of Copy of Untitled1.ipynb",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/RajiRai/Python-Practice-Problems-for-Beginners/blob/master/Copy_of_Copy_of_Copy_of_Untitled1.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "J-3ZtPOKKyRm",
"colab_type": "code",
"outputId": "29905746-19b3-4598-b37d-29dd04e2c025",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 323
}
},
"cell_type": "code",
"source": [
"!pip install PyDrive\n"
],
"execution_count": 2,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting PyDrive\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/52/e0/0e64788e5dd58ce2d6934549676243dc69d982f198524be9b99e9c2a4fd5/PyDrive-1.3.1.tar.gz (987kB)\n",
"\u001b[K 100% |████████████████████████████████| 993kB 21.0MB/s \n",
"\u001b[?25hRequirement already satisfied: google-api-python-client>=1.2 in /usr/local/lib/python3.6/dist-packages (from PyDrive) (1.6.7)\n",
"Requirement already satisfied: oauth2client>=4.0.0 in /usr/local/lib/python3.6/dist-packages (from PyDrive) (4.1.3)\n",
"Requirement already satisfied: PyYAML>=3.0 in /usr/local/lib/python3.6/dist-packages (from PyDrive) (3.13)\n",
"Requirement already satisfied: six<2dev,>=1.6.1 in /usr/local/lib/python3.6/dist-packages (from google-api-python-client>=1.2->PyDrive) (1.12.0)\n",
"Requirement already satisfied: uritemplate<4dev,>=3.0.0 in /usr/local/lib/python3.6/dist-packages (from google-api-python-client>=1.2->PyDrive) (3.0.0)\n",
"Requirement already satisfied: httplib2<1dev,>=0.9.2 in /usr/local/lib/python3.6/dist-packages (from google-api-python-client>=1.2->PyDrive) (0.11.3)\n",
"Requirement already satisfied: pyasn1>=0.1.7 in /usr/local/lib/python3.6/dist-packages (from oauth2client>=4.0.0->PyDrive) (0.4.5)\n",
"Requirement already satisfied: rsa>=3.1.4 in /usr/local/lib/python3.6/dist-packages (from oauth2client>=4.0.0->PyDrive) (4.0)\n",
"Requirement already satisfied: pyasn1-modules>=0.0.5 in /usr/local/lib/python3.6/dist-packages (from oauth2client>=4.0.0->PyDrive) (0.2.4)\n",
"Building wheels for collected packages: PyDrive\n",
" Building wheel for PyDrive (setup.py) ... \u001b[?25ldone\n",
"\u001b[?25h Stored in directory: /root/.cache/pip/wheels/fa/d2/9a/d3b6b506c2da98289e5d417215ce34b696db856643bad779f4\n",
"Successfully built PyDrive\n",
"Installing collected packages: PyDrive\n",
"Successfully installed PyDrive-1.3.1\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "nFaEBAAvp868",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import os\n",
"from pydrive.auth import GoogleAuth\n",
"from pydrive.drive import GoogleDrive\n",
"from google.colab import auth\n",
"from oauth2client.client import GoogleCredentials"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "5MTgQjuHqLa0",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"auth.authenticate_user()\n",
"gauth = GoogleAuth()\n",
"gauth.credentials = GoogleCredentials.get_application_default()\n",
"drive = GoogleDrive(gauth)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "_ucyX1PlkU4x",
"colab_type": "code",
"outputId": "6def6bbb-ada2-457a-99b0-17813e8aab51",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 224
}
},
"cell_type": "code",
"source": [
"!apt-get install -y -qq software-properties-common python-software-properties module-init-tools\n",
"!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null\n",
"!apt-get update -qq 2>&1 > /dev/null\n",
"!apt-get -y install -qq google-drive-ocamlfuse fuse\n",
"from google.colab import auth\n",
"auth.authenticate_user()\n",
"from oauth2client.client import GoogleCredentials\n",
"creds = GoogleCredentials.get_application_default()\n",
"import getpass\n",
"!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL\n",
"vcode = getpass.getpass()\n",
"!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}"
],
"execution_count": 5,
"outputs": [
{
"output_type": "stream",
"text": [
"E: Package 'python-software-properties' has no installation candidate\n",
"Selecting previously unselected package google-drive-ocamlfuse.\n",
"(Reading database ... 131304 files and directories currently installed.)\n",
"Preparing to unpack .../google-drive-ocamlfuse_0.7.3-0ubuntu3~ubuntu18.04.1_amd64.deb ...\n",
"Unpacking google-drive-ocamlfuse (0.7.3-0ubuntu3~ubuntu18.04.1) ...\n",
"Setting up google-drive-ocamlfuse (0.7.3-0ubuntu3~ubuntu18.04.1) ...\n",
"Processing triggers for man-db (2.8.3-2ubuntu0.1) ...\n",
"Please, open the following URL in a web browser: https://accounts.google.com/o/oauth2/auth?client_id=32555940559.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&response_type=code&access_type=offline&approval_prompt=force\n",
"··········\n",
"Please, open the following URL in a web browser: https://accounts.google.com/o/oauth2/auth?client_id=32555940559.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&response_type=code&access_type=offline&approval_prompt=force\n",
"Please enter the verification code: Access token retrieved correctly.\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "N3j-r1Imkv7p",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 51
},
"outputId": "688a7950-4a94-4991-8ed5-c0af4c0a714d"
},
"cell_type": "code",
"source": [
"!mkdir -p drive\n",
"!google-drive-ocamlfuse drive"
],
"execution_count": 19,
"outputs": [
{
"output_type": "stream",
"text": [
"fuse: mountpoint is not empty\n",
"fuse: if you are sure this is safe, use the 'nonempty' mount option\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "4Cj-OiizrrHa",
"colab_type": "code",
"outputId": "c4c84e1a-44a0-4fbb-d2be-816496b60b23",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
}
},
"cell_type": "code",
"source": [
"import keras\n",
"from keras.models import Sequential\n",
"from keras.layers import Dense, Dropout, Flatten\n",
"from keras.layers import Conv2D, MaxPooling2D\n",
"from keras.utils import to_categorical\n",
"from keras.preprocessing import image\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.model_selection import train_test_split\n",
"from keras.utils import to_categorical\n",
"from tqdm import tqdm\n",
"from PIL import Image\n",
"from sklearn.model_selection import train_test_split"
],
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"text": [
"Using TensorFlow backend.\n"
],
"name": "stderr"
}
]
},
{
"metadata": {
"id": "m5UqkuiUbdW4",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"download = drive.CreateFile({'id': '18s0FOQ-eR-RVuyrpS0sjzh9Lud8TXShg'})\n",
"download.GetContentFile('HAM10000_metadata.csv')"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "8EGhXQdFbj0U",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"image_file = pd.read_csv('/content/drive/HAM10000_images/HAM10000_metadata.csv')"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "xWOIzEj4Rath",
"colab_type": "code",
"outputId": "23583102-b3eb-4a97-f8b6-d31bd41e16fc",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
}
},
"cell_type": "code",
"source": [
"image_file.head()"
],
"execution_count": 50,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>lesion_id</th>\n",
" <th>image_id</th>\n",
" <th>dx</th>\n",
" <th>dx_type</th>\n",
" <th>age</th>\n",
" <th>sex</th>\n",
" <th>localization</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>HAM_0000118</td>\n",
" <td>ISIC_0027419</td>\n",
" <td>bkl</td>\n",
" <td>histo</td>\n",
" <td>80.0</td>\n",
" <td>male</td>\n",
" <td>scalp</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>HAM_0000118</td>\n",
" <td>ISIC_0025030</td>\n",
" <td>bkl</td>\n",
" <td>histo</td>\n",
" <td>80.0</td>\n",
" <td>male</td>\n",
" <td>scalp</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>HAM_0002730</td>\n",
" <td>ISIC_0026769</td>\n",
" <td>bkl</td>\n",
" <td>histo</td>\n",
" <td>80.0</td>\n",
" <td>male</td>\n",
" <td>scalp</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>HAM_0002730</td>\n",
" <td>ISIC_0025661</td>\n",
" <td>bkl</td>\n",
" <td>histo</td>\n",
" <td>80.0</td>\n",
" <td>male</td>\n",
" <td>scalp</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>HAM_0001466</td>\n",
" <td>ISIC_0031633</td>\n",
" <td>bkl</td>\n",
" <td>histo</td>\n",
" <td>75.0</td>\n",
" <td>male</td>\n",
" <td>ear</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" lesion_id image_id dx dx_type age sex localization\n",
"0 HAM_0000118 ISIC_0027419 bkl histo 80.0 male scalp\n",
"1 HAM_0000118 ISIC_0025030 bkl histo 80.0 male scalp\n",
"2 HAM_0002730 ISIC_0026769 bkl histo 80.0 male scalp\n",
"3 HAM_0002730 ISIC_0025661 bkl histo 80.0 male scalp\n",
"4 HAM_0001466 ISIC_0031633 bkl histo 75.0 male ear"
]
},
"metadata": {
"tags": []
},
"execution_count": 50
}
]
},
{
"metadata": {
"id": "5fjqvFHSRn5U",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"lesion_type_dict = {\n",
" 'nv': 'Melanocytic nevi',\n",
" 'mel': 'Melanoma',\n",
" 'bkl': 'Benign keratosis-like lesions ',\n",
" 'bcc': 'Basal cell carcinoma',\n",
" 'akiec': 'Actinic keratoses',\n",
" 'vasc': 'Vascular lesions',\n",
" 'df': 'Dermatofibroma'\n",
"}\n",
"image_file['le_type'] = image_file['dx'].map(lesion_type_dict.get) \n",
"image_file['le_type_idx'] = pd.Categorical(image_file['le_type']).codes\n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "b8CkOWVUSpSl",
"colab_type": "code",
"outputId": "cdb6b463-ac70-4ce8-ab80-09e24bc2c9ae",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 187
}
},
"cell_type": "code",
"source": [
"image_file.isnull().sum()"
],
"execution_count": 13,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"lesion_id 0\n",
"image_id 0\n",
"dx 0\n",
"dx_type 0\n",
"age 57\n",
"sex 0\n",
"localization 0\n",
"le_type 0\n",
"le_type_idx 0\n",
"dtype: int64"
]
},
"metadata": {
"tags": []
},
"execution_count": 13
}
]
},
{
"metadata": {
"id": "e6URoGikS0sp",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"image_file['age'].fillna((image_file['age'].median()), inplace=True)\n",
"\n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "vfyZHZY5V8DK",
"colab_type": "code",
"outputId": "2bf00989-9c50-4473-8cfc-76f150fae021",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 422
}
},
"cell_type": "code",
"source": [
"image_file['le_type'].value_counts().plot(kind='bar')"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f012199db70>"
]
},
"metadata": {
"tags": []
},
"execution_count": 17
},
{
"output_type": "display_data",
"data": {
"image/png": "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\niIiOSgKIiOioJICIiI5KAoiI6KgkgIiIjkoCiIjoqCSAiIiOSgKIiOioJICIiI5KAoiI6KgkgIiI\njkoCiIjoqCSAiIiOSgKIiOioJICIiI5KAoiI6KgkgIiIjkoCiIjoqCSAiIiOSgKIiOioJICIiI4a\nOAFImiLpckmn1+NNJF0kaZ6kb0patbY/qR7Pq89v3PczDq/t10vabXm/mYiIGNwwdwCHAr/oO/4Y\n8EnbzwLuBA6u7QcDd9b2T9bzkLQ58DrgOcDuwOckTVm28CMiYmkNlAAkbQDsBXy5HgvYCfh2PWU2\nsG99vE89pj6/cz1/H+Bk2w/Z/iUwD9huebyJiIgY3qB3AP8OvBd4rB4/FbjL9iP1+BZg/fp4feBm\ngPr83fX8P7ZP8JqIiBixSROApFcAd9i+dATxIGmWpLmS5s6fP38U/2RERCcNcgfwQuCVkn4FnEzp\n+vkUMFXSyvWcDYBb6+NbgQ0B6vNrAb/rb5/gNX9k+1jbM2zPmDZt2tBvKCIiBjNpArB9uO0NbG9M\nGcQ9x/brgXOB/eppM4FT6+PT6jH1+XNsu7a/rs4S2gSYDly83N5JREQMZeXJT1mi9wEnS/oIcDlw\nXG0/DviqpHnAAkrSwPY1kk4BrgUeAQ6x/egy/PsREbEMhkoAts8DzquPb2SCWTy2HwT2X8LrPwp8\ndNggIyJi+ctK4IiIjkoCiIjoqCSAiIiOSgKIiOioJICIiI5KAoiI6KgkgIiIjkoCiIjoqCSAiIiO\nSgKIiOioJICIiI5KAoiI6KgkgIiIjkoCiIjoqCSAiIiOSgKIiOioJICIiI5KAoiI6KgkgIiIjkoC\niIjoqCSAiIiOmjQBSFpN0sWS/kvSNZL+qbZvIukiSfMkfVPSqrX9SfV4Xn1+476fdXhtv17Sbivq\nTUVExOQGuQN4CNjJ9pbAVsDuknYAPgZ80vazgDuBg+v5BwN31vZP1vOQtDnwOuA5wO7A5yRNWZ5v\nJiIiBjdpAnDx+3q4Sv0ysBPw7do+G9i3Pt6nHlOf31mSavvJth+y/UtgHrDdcnkXERExtIHGACRN\nkXQFcAcwB/gf4C7bj9RTbgHWr4/XB24GqM/fDTy1v32C10RExIgNlABsP2p7K2ADylX7ZisqIEmz\nJM2VNHf+/Pkr6p+JiOi8oWYB2b4LOBd4ATBV0sr1qQ2AW+vjW4ENAerzawG/62+f4DX9/8axtmfY\nnjFt2rRhwouIiCEMMgtomqSp9fHqwC7ALyiJYL962kzg1Pr4tHpMff4c267tr6uzhDYBpgMXL683\nEhERw1l58lN4OjC7zthZCTjF9umSrgVOlvQR4HLguHr+ccBXJc0DFlBm/mD7GkmnANcCjwCH2H50\n+b6diIgY1KQJwPaVwNYTtN/IBLN4bD8I7L+En/VR4KPDhxkREctbVgJHRHRUEkBEREclAUREdFQS\nQERERyUBRER0VBJARERHJQFERHRUEkBEREclAUREdFQSQERERyUBRER0VBJARERHJQFERHRUEkBE\nREclAUREdFQSQERERyUBRER0VBJARERHJQFERHRUEkBEREclAUREdFQSQERER02aACRtKOlcSddK\nukbSobV9HUlzJN1Qv69d2yXp05LmSbpS0jZ9P2tmPf8GSTNX3NuKiIjJDHIH8AjwbtubAzsAh0ja\nHDgMONv2dODsegywBzC9fs0CPg8lYQBHANsD2wFH9JJGRESM3qQJwPZvbF9WH98L/AJYH9gHmF1P\nmw3sWx/vA5zo4kJgqqSnA7sBc2wvsH0nMAfYfbm+m4iIGNhQYwCSNga2Bi4C1rP9m/rUbcB69fH6\nwM19L7ulti2pPSIiGjBwApD0ZOA/gHfZvqf/OdsGvDwCkjRL0lxJc+fPn788fmRERExgoAQgaRXK\nh//XbX+nNt9eu3ao3++o7bcCG/a9fIPatqT2Rdg+1vYM2zOmTZs2zHuJiIghDDILSMBxwC9sf6Lv\nqdOA3kyemcCpfe1vqrOBdgDurl1FZwK7Slq7Dv7uWtsiIqIBKw9wzguBNwJXSbqitr0fOBo4RdLB\nwE3AAfW5M4A9gXnA/cBBALYXSDoKuKSed6TtBcvlXURExNAmTQC2fwJoCU/vPMH5Bg5Zws86Hjh+\nmAAjImLFyErgiIiOSgKIiOioJICIiI5KAoiI6KgkgIiIjkoCiIjoqCSAiIiOSgKIiOioJICIiI5K\nAoiI6KgkgIiIjkoCiIjoqCSAiIiOSgKIiOioJICIiI5KAoiI6KgkgIiIjkoCiIjoqCSAiIiOSgKI\niOioJICIiI5KAoiI6KhJE4Ck4yXdIenqvrZ1JM2RdEP9vnZtl6RPS5on6UpJ2/S9ZmY9/wZJM1fM\n24mIiEGtPMA5XwE+A5zY13YYcLbtoyUdVo/fB+wBTK9f2wOfB7aXtA5wBDADMHCppNNs37m83sgT\n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\nfQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "jGuz-3C0WU9Y",
"colab_type": "code",
"outputId": "8f4836d3-13e1-462f-9248-010ff1c33b9e",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 356
}
},
"cell_type": "code",
"source": [
"image_file['localization'].value_counts().plot(kind='bar')"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f72588a86a0>"
]
},
"metadata": {
"tags": []
},
"execution_count": 30
},
{
"output_type": "display_data",
"data": {
"image/png": "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\ntAd/Y7UxjQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "LR9tIci0WfDW",
"colab_type": "code",
"outputId": "c2d46f6d-a6ba-4ab1-f4ae-10e23cd2d45c",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 321
}
},
"cell_type": "code",
"source": [
"image_file['sex'].value_counts().plot(kind='bar')"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f7258875908>"
]
},
"metadata": {
"tags": []
},
"execution_count": 31
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "ddjrYYbhWnMo",
"colab_type": "code",
"outputId": "d52ce938-87c7-4bbb-a7ea-2612c312ec68",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 298
}
},
"cell_type": "code",
"source": [
"image_file['age'].value_counts().plot(kind='bar')"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f725678c710>"
]
},
"metadata": {
"tags": []
},
"execution_count": 32
},
{
"output_type": "display_data",
"data": {
"image/png": "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\ncGz+OYp3GgAAAABJRU5ErkJggg==\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"metadata": {
"id": "rtN75gaYr487",
"colab_type": "code",
"outputId": "740880df-2e24-49e0-b658-e57cbe827823",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 187
}
},
"cell_type": "code",
"source": [
"image_file.dtypes"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"lesion_id object\n",
"image_id object\n",
"dx object\n",
"dx_type object\n",
"age float64\n",
"sex object\n",
"localization object\n",
"le_type object\n",
"le_type_idx int8\n",
"dtype: object"
]
},
"metadata": {
"tags": []
},
"execution_count": 24
}
]
},
{
"metadata": {
"id": "xUM80goCcuDR",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"mod_image = []\n",
"for i in tqdm(range(image_file.shape[0])):\n",
" img = image.load_img('/content/drive/HAM10000_images/'+image_file['image_id'][i]+'.jpg', target_size=(50,50,3))\n",
" img = image.img_to_array(img)\n",
" img = img/255\n",
" mod_image.append(img)\n",
" X = np.array(mod_image)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "qszxHJy59b5J",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"y=train['label'].values\n",
"y = to_categorical(y)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "v-d-549vMxqD",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1234, test_size=0.2)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "R7tv8mFPOp50",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"y=image_file['le_type_idx'].values\n",
"y = to_categorical(y)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "aun3-Oj-PSOD",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"X_train, X_validate, y_train, y_validate = train_test_split(X,y, test_size = 0.1, random_state = 2)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "bS3denJPQ8ek",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model = Sequential()\n",
"model.add(Conv2D(32, kernel_size=(3, 3),activation='relu',input_shape=(50,50,3)))\n",
"model.add(Conv2D(64, (3, 3), activation='relu'))\n",
"model.add(MaxPooling2D(pool_size=(2, 2)))\n",
"model.add(Dropout(0.25))\n",
"model.add(Flatten())\n",
"model.add(Dense(128, activation='relu'))\n",
"model.add(Dropout(0.5))\n",
"model.add(Dense(7, activation='softmax'))"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "xsZfQ4BoRERT",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"model.compile(loss='categorical_crossentropy',optimizer='Adam',metrics=['accuracy'])"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "mJwOqaadRm_k",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 462
},
"outputId": "ba9aa23c-d58b-4d4b-c7a3-802d8ae8fce9"
},
"cell_type": "code",
"source": [
"model.fit(X_train, y_train, epochs=10, validation_data=(X_test, y_test))"
],
"execution_count": 35,
"outputs": [
{
"output_type": "stream",
"text": [
"WARNING:tensorflow:From /usr/local/lib/python3.6/dist-packages/tensorflow/python/ops/math_ops.py:3066: to_int32 (from tensorflow.python.ops.math_ops) is deprecated and will be removed in a future version.\n",
"Instructions for updating:\n",
"Use tf.cast instead.\n",
"Train on 9013 samples, validate on 2003 samples\n",
"Epoch 1/10\n",
"9013/9013 [==============================] - 112s 12ms/step - loss: 1.0294 - acc: 0.6671 - val_loss: 0.8865 - val_acc: 0.6595\n",
"Epoch 2/10\n",
"9013/9013 [==============================] - 109s 12ms/step - loss: 0.8972 - acc: 0.6787 - val_loss: 0.8087 - val_acc: 0.6645\n",
"Epoch 3/10\n",
"9013/9013 [==============================] - 113s 12ms/step - loss: 0.8398 - acc: 0.6911 - val_loss: 0.7740 - val_acc: 0.6980\n",
"Epoch 4/10\n",
"9013/9013 [==============================] - 110s 12ms/step - loss: 0.8080 - acc: 0.7015 - val_loss: 0.7386 - val_acc: 0.7039\n",
"Epoch 5/10\n",
"9013/9013 [==============================] - 111s 12ms/step - loss: 0.7671 - acc: 0.7182 - val_loss: 0.7166 - val_acc: 0.7244\n",
"Epoch 6/10\n",
"9013/9013 [==============================] - 113s 13ms/step - loss: 0.7377 - acc: 0.7217 - val_loss: 0.6511 - val_acc: 0.7489\n",
"Epoch 7/10\n",
"9013/9013 [==============================] - 111s 12ms/step - loss: 0.7078 - acc: 0.7373 - val_loss: 0.6169 - val_acc: 0.7604\n",
"Epoch 8/10\n",
"9013/9013 [==============================] - 112s 12ms/step - loss: 0.6671 - acc: 0.7517 - val_loss: 0.5865 - val_acc: 0.7664\n",
"Epoch 9/10\n",
"9013/9013 [==============================] - 112s 12ms/step - loss: 0.6478 - acc: 0.7587 - val_loss: 0.5505 - val_acc: 0.7993\n",
"Epoch 10/10\n",
"9013/9013 [==============================] - 112s 12ms/step - loss: 0.6210 - acc: 0.7693 - val_loss: 0.5172 - val_acc: 0.8103\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"<keras.callbacks.History at 0x7fc24f402b00>"
]
},
"metadata": {
"tags": []
},
"execution_count": 35
}
]
},
{
"metadata": {
"id": "L1f-0jB7Wm_u",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"prediction = model.predict_classes(X_test)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "2QABXL6WZ86N",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 85
},
"outputId": "03b9f551-642b-46fc-dc97-8f4e3286af1a"
},
"cell_type": "code",
"source": [
"loss, accuracy = model.evaluate(X_test, y_test, verbose=1)\n",
"loss_v, accuracy_v = model.evaluate(X_validate, y_validate, verbose=1)\n",
"print(\"Validation: accuracy = %f ; loss_v = %f\" % (accuracy_v, loss_v))\n",
"print(\"Test: accuracy = %f ; loss = %f\" % (accuracy, loss))\n"
],
"execution_count": 47,
"outputs": [
{
"output_type": "stream",
"text": [
"2003/2003 [==============================] - 7s 3ms/step\n",
"1002/1002 [==============================] - 3s 3ms/step\n",
"Validation: accuracy = 0.725549 ; loss_v = 0.735095\n",
"Test: accuracy = 0.810285 ; loss = 0.517238\n"
],
"name": "stdout"
}
]
}
]
}