├── CNN - Handwritten Digit Recognition Model
├── CNN - Handwritten Digit Recognition Model .ipynb
├── test.csv
└── train.csv
└── RenewalChurn probability prediction of Telecom Customers
├── RenewalChurn probability prediction of Telecom Customers.ipynb
└── Telco-Customer-Churn.csv
/CNN - Handwritten Digit Recognition Model/CNN - Handwritten Digit Recognition Model .ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "id": "c12251ba",
6 | "metadata": {},
7 | "source": [
8 | "## CNN Model for Handwritten Digits Recognition"
9 | ]
10 | },
11 | {
12 | "cell_type": "code",
13 | "execution_count": 2,
14 | "id": "5a62fc37",
15 | "metadata": {},
16 | "outputs": [],
17 | "source": [
18 | "import numpy as np # linear algebra\n",
19 | "import pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\n",
20 | "import seaborn as sns\n",
21 | "import matplotlib.pyplot as plt\n",
22 | "# import warnings\n",
23 | "import warnings\n",
24 | "# filter warnings\n",
25 | "warnings.filterwarnings('ignore')\n",
26 | "import os"
27 | ]
28 | },
29 | {
30 | "cell_type": "code",
31 | "execution_count": 3,
32 | "id": "8e556441",
33 | "metadata": {},
34 | "outputs": [],
35 | "source": [
36 | "## Set working directory\n",
37 | "os.chdir(r'C:\\Deep Learning\\CNN')"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "execution_count": 4,
43 | "id": "a703c596",
44 | "metadata": {},
45 | "outputs": [
46 | {
47 | "name": "stdout",
48 | "output_type": "stream",
49 | "text": [
50 | "(42000, 785)\n"
51 | ]
52 | },
53 | {
54 | "data": {
55 | "text/html": [
56 | "
\n",
57 | "\n",
70 | "
\n",
71 | " \n",
72 | " \n",
73 | " | \n",
74 | " label | \n",
75 | " pixel0 | \n",
76 | " pixel1 | \n",
77 | " pixel2 | \n",
78 | " pixel3 | \n",
79 | " pixel4 | \n",
80 | " pixel5 | \n",
81 | " pixel6 | \n",
82 | " pixel7 | \n",
83 | " pixel8 | \n",
84 | " ... | \n",
85 | " pixel774 | \n",
86 | " pixel775 | \n",
87 | " pixel776 | \n",
88 | " pixel777 | \n",
89 | " pixel778 | \n",
90 | " pixel779 | \n",
91 | " pixel780 | \n",
92 | " pixel781 | \n",
93 | " pixel782 | \n",
94 | " pixel783 | \n",
95 | "
\n",
96 | " \n",
97 | " \n",
98 | " \n",
99 | " 0 | \n",
100 | " 1 | \n",
101 | " 0 | \n",
102 | " 0 | \n",
103 | " 0 | \n",
104 | " 0 | \n",
105 | " 0 | \n",
106 | " 0 | \n",
107 | " 0 | \n",
108 | " 0 | \n",
109 | " 0 | \n",
110 | " ... | \n",
111 | " 0 | \n",
112 | " 0 | \n",
113 | " 0 | \n",
114 | " 0 | \n",
115 | " 0 | \n",
116 | " 0 | \n",
117 | " 0 | \n",
118 | " 0 | \n",
119 | " 0 | \n",
120 | " 0 | \n",
121 | "
\n",
122 | " \n",
123 | " 1 | \n",
124 | " 0 | \n",
125 | " 0 | \n",
126 | " 0 | \n",
127 | " 0 | \n",
128 | " 0 | \n",
129 | " 0 | \n",
130 | " 0 | \n",
131 | " 0 | \n",
132 | " 0 | \n",
133 | " 0 | \n",
134 | " ... | \n",
135 | " 0 | \n",
136 | " 0 | \n",
137 | " 0 | \n",
138 | " 0 | \n",
139 | " 0 | \n",
140 | " 0 | \n",
141 | " 0 | \n",
142 | " 0 | \n",
143 | " 0 | \n",
144 | " 0 | \n",
145 | "
\n",
146 | " \n",
147 | " 2 | \n",
148 | " 1 | \n",
149 | " 0 | \n",
150 | " 0 | \n",
151 | " 0 | \n",
152 | " 0 | \n",
153 | " 0 | \n",
154 | " 0 | \n",
155 | " 0 | \n",
156 | " 0 | \n",
157 | " 0 | \n",
158 | " ... | \n",
159 | " 0 | \n",
160 | " 0 | \n",
161 | " 0 | \n",
162 | " 0 | \n",
163 | " 0 | \n",
164 | " 0 | \n",
165 | " 0 | \n",
166 | " 0 | \n",
167 | " 0 | \n",
168 | " 0 | \n",
169 | "
\n",
170 | " \n",
171 | " 3 | \n",
172 | " 4 | \n",
173 | " 0 | \n",
174 | " 0 | \n",
175 | " 0 | \n",
176 | " 0 | \n",
177 | " 0 | \n",
178 | " 0 | \n",
179 | " 0 | \n",
180 | " 0 | \n",
181 | " 0 | \n",
182 | " ... | \n",
183 | " 0 | \n",
184 | " 0 | \n",
185 | " 0 | \n",
186 | " 0 | \n",
187 | " 0 | \n",
188 | " 0 | \n",
189 | " 0 | \n",
190 | " 0 | \n",
191 | " 0 | \n",
192 | " 0 | \n",
193 | "
\n",
194 | " \n",
195 | " 4 | \n",
196 | " 0 | \n",
197 | " 0 | \n",
198 | " 0 | \n",
199 | " 0 | \n",
200 | " 0 | \n",
201 | " 0 | \n",
202 | " 0 | \n",
203 | " 0 | \n",
204 | " 0 | \n",
205 | " 0 | \n",
206 | " ... | \n",
207 | " 0 | \n",
208 | " 0 | \n",
209 | " 0 | \n",
210 | " 0 | \n",
211 | " 0 | \n",
212 | " 0 | \n",
213 | " 0 | \n",
214 | " 0 | \n",
215 | " 0 | \n",
216 | " 0 | \n",
217 | "
\n",
218 | " \n",
219 | "
\n",
220 | "
5 rows × 785 columns
\n",
221 | "
"
222 | ],
223 | "text/plain": [
224 | " label pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 \\\n",
225 | "0 1 0 0 0 0 0 0 0 0 \n",
226 | "1 0 0 0 0 0 0 0 0 0 \n",
227 | "2 1 0 0 0 0 0 0 0 0 \n",
228 | "3 4 0 0 0 0 0 0 0 0 \n",
229 | "4 0 0 0 0 0 0 0 0 0 \n",
230 | "\n",
231 | " pixel8 ... pixel774 pixel775 pixel776 pixel777 pixel778 pixel779 \\\n",
232 | "0 0 ... 0 0 0 0 0 0 \n",
233 | "1 0 ... 0 0 0 0 0 0 \n",
234 | "2 0 ... 0 0 0 0 0 0 \n",
235 | "3 0 ... 0 0 0 0 0 0 \n",
236 | "4 0 ... 0 0 0 0 0 0 \n",
237 | "\n",
238 | " pixel780 pixel781 pixel782 pixel783 \n",
239 | "0 0 0 0 0 \n",
240 | "1 0 0 0 0 \n",
241 | "2 0 0 0 0 \n",
242 | "3 0 0 0 0 \n",
243 | "4 0 0 0 0 \n",
244 | "\n",
245 | "[5 rows x 785 columns]"
246 | ]
247 | },
248 | "execution_count": 4,
249 | "metadata": {},
250 | "output_type": "execute_result"
251 | }
252 | ],
253 | "source": [
254 | "train = pd.read_csv(\"train.csv\")\n",
255 | "print(train.shape)\n",
256 | "train.head()"
257 | ]
258 | },
259 | {
260 | "cell_type": "code",
261 | "execution_count": 5,
262 | "id": "e5ee3742",
263 | "metadata": {},
264 | "outputs": [
265 | {
266 | "name": "stdout",
267 | "output_type": "stream",
268 | "text": [
269 | "(28000, 784)\n"
270 | ]
271 | },
272 | {
273 | "data": {
274 | "text/html": [
275 | "\n",
276 | "\n",
289 | "
\n",
290 | " \n",
291 | " \n",
292 | " | \n",
293 | " pixel0 | \n",
294 | " pixel1 | \n",
295 | " pixel2 | \n",
296 | " pixel3 | \n",
297 | " pixel4 | \n",
298 | " pixel5 | \n",
299 | " pixel6 | \n",
300 | " pixel7 | \n",
301 | " pixel8 | \n",
302 | " pixel9 | \n",
303 | " ... | \n",
304 | " pixel774 | \n",
305 | " pixel775 | \n",
306 | " pixel776 | \n",
307 | " pixel777 | \n",
308 | " pixel778 | \n",
309 | " pixel779 | \n",
310 | " pixel780 | \n",
311 | " pixel781 | \n",
312 | " pixel782 | \n",
313 | " pixel783 | \n",
314 | "
\n",
315 | " \n",
316 | " \n",
317 | " \n",
318 | " 0 | \n",
319 | " 0 | \n",
320 | " 0 | \n",
321 | " 0 | \n",
322 | " 0 | \n",
323 | " 0 | \n",
324 | " 0 | \n",
325 | " 0 | \n",
326 | " 0 | \n",
327 | " 0 | \n",
328 | " 0 | \n",
329 | " ... | \n",
330 | " 0 | \n",
331 | " 0 | \n",
332 | " 0 | \n",
333 | " 0 | \n",
334 | " 0 | \n",
335 | " 0 | \n",
336 | " 0 | \n",
337 | " 0 | \n",
338 | " 0 | \n",
339 | " 0 | \n",
340 | "
\n",
341 | " \n",
342 | " 1 | \n",
343 | " 0 | \n",
344 | " 0 | \n",
345 | " 0 | \n",
346 | " 0 | \n",
347 | " 0 | \n",
348 | " 0 | \n",
349 | " 0 | \n",
350 | " 0 | \n",
351 | " 0 | \n",
352 | " 0 | \n",
353 | " ... | \n",
354 | " 0 | \n",
355 | " 0 | \n",
356 | " 0 | \n",
357 | " 0 | \n",
358 | " 0 | \n",
359 | " 0 | \n",
360 | " 0 | \n",
361 | " 0 | \n",
362 | " 0 | \n",
363 | " 0 | \n",
364 | "
\n",
365 | " \n",
366 | " 2 | \n",
367 | " 0 | \n",
368 | " 0 | \n",
369 | " 0 | \n",
370 | " 0 | \n",
371 | " 0 | \n",
372 | " 0 | \n",
373 | " 0 | \n",
374 | " 0 | \n",
375 | " 0 | \n",
376 | " 0 | \n",
377 | " ... | \n",
378 | " 0 | \n",
379 | " 0 | \n",
380 | " 0 | \n",
381 | " 0 | \n",
382 | " 0 | \n",
383 | " 0 | \n",
384 | " 0 | \n",
385 | " 0 | \n",
386 | " 0 | \n",
387 | " 0 | \n",
388 | "
\n",
389 | " \n",
390 | " 3 | \n",
391 | " 0 | \n",
392 | " 0 | \n",
393 | " 0 | \n",
394 | " 0 | \n",
395 | " 0 | \n",
396 | " 0 | \n",
397 | " 0 | \n",
398 | " 0 | \n",
399 | " 0 | \n",
400 | " 0 | \n",
401 | " ... | \n",
402 | " 0 | \n",
403 | " 0 | \n",
404 | " 0 | \n",
405 | " 0 | \n",
406 | " 0 | \n",
407 | " 0 | \n",
408 | " 0 | \n",
409 | " 0 | \n",
410 | " 0 | \n",
411 | " 0 | \n",
412 | "
\n",
413 | " \n",
414 | " 4 | \n",
415 | " 0 | \n",
416 | " 0 | \n",
417 | " 0 | \n",
418 | " 0 | \n",
419 | " 0 | \n",
420 | " 0 | \n",
421 | " 0 | \n",
422 | " 0 | \n",
423 | " 0 | \n",
424 | " 0 | \n",
425 | " ... | \n",
426 | " 0 | \n",
427 | " 0 | \n",
428 | " 0 | \n",
429 | " 0 | \n",
430 | " 0 | \n",
431 | " 0 | \n",
432 | " 0 | \n",
433 | " 0 | \n",
434 | " 0 | \n",
435 | " 0 | \n",
436 | "
\n",
437 | " \n",
438 | "
\n",
439 | "
5 rows × 784 columns
\n",
440 | "
"
441 | ],
442 | "text/plain": [
443 | " pixel0 pixel1 pixel2 pixel3 pixel4 pixel5 pixel6 pixel7 pixel8 \\\n",
444 | "0 0 0 0 0 0 0 0 0 0 \n",
445 | "1 0 0 0 0 0 0 0 0 0 \n",
446 | "2 0 0 0 0 0 0 0 0 0 \n",
447 | "3 0 0 0 0 0 0 0 0 0 \n",
448 | "4 0 0 0 0 0 0 0 0 0 \n",
449 | "\n",
450 | " pixel9 ... pixel774 pixel775 pixel776 pixel777 pixel778 pixel779 \\\n",
451 | "0 0 ... 0 0 0 0 0 0 \n",
452 | "1 0 ... 0 0 0 0 0 0 \n",
453 | "2 0 ... 0 0 0 0 0 0 \n",
454 | "3 0 ... 0 0 0 0 0 0 \n",
455 | "4 0 ... 0 0 0 0 0 0 \n",
456 | "\n",
457 | " pixel780 pixel781 pixel782 pixel783 \n",
458 | "0 0 0 0 0 \n",
459 | "1 0 0 0 0 \n",
460 | "2 0 0 0 0 \n",
461 | "3 0 0 0 0 \n",
462 | "4 0 0 0 0 \n",
463 | "\n",
464 | "[5 rows x 784 columns]"
465 | ]
466 | },
467 | "execution_count": 5,
468 | "metadata": {},
469 | "output_type": "execute_result"
470 | }
471 | ],
472 | "source": [
473 | "test= pd.read_csv(\"test.csv\")\n",
474 | "print(test.shape)\n",
475 | "test.head()"
476 | ]
477 | },
478 | {
479 | "cell_type": "code",
480 | "execution_count": 7,
481 | "id": "200b2829",
482 | "metadata": {},
483 | "outputs": [],
484 | "source": [
485 | "## Create X_train and y_train\n",
486 | "# put labels into y_train variable\n",
487 | "Y_train = train[\"label\"]\n",
488 | "# Drop 'label' column\n",
489 | "X_train = train.drop(labels = [\"label\"],axis = 1) "
490 | ]
491 | },
492 | {
493 | "cell_type": "code",
494 | "execution_count": 9,
495 | "id": "47c47d50",
496 | "metadata": {},
497 | "outputs": [
498 | {
499 | "data": {
500 | "text/plain": [
501 | "1 4684\n",
502 | "7 4401\n",
503 | "3 4351\n",
504 | "9 4188\n",
505 | "2 4177\n",
506 | "6 4137\n",
507 | "0 4132\n",
508 | "4 4072\n",
509 | "8 4063\n",
510 | "5 3795\n",
511 | "Name: label, dtype: int64"
512 | ]
513 | },
514 | "execution_count": 9,
515 | "metadata": {},
516 | "output_type": "execute_result"
517 | }
518 | ],
519 | "source": [
520 | "Y_train.value_counts()"
521 | ]
522 | },
523 | {
524 | "cell_type": "code",
525 | "execution_count": 11,
526 | "id": "79bb8fa1",
527 | "metadata": {},
528 | "outputs": [
529 | {
530 | "data": {
531 | "image/png": "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\n",
532 | "text/plain": [
533 | ""
534 | ]
535 | },
536 | "metadata": {},
537 | "output_type": "display_data"
538 | }
539 | ],
540 | "source": [
541 | "# plot some samples\n",
542 | "img = X_train.iloc[0].to_numpy()\n",
543 | "img = img.reshape((28,28))\n",
544 | "plt.imshow(img,cmap='gray')\n",
545 | "plt.title(train.iloc[0,0])\n",
546 | "plt.axis(\"off\")\n",
547 | "plt.show()"
548 | ]
549 | },
550 | {
551 | "cell_type": "code",
552 | "execution_count": 12,
553 | "id": "760b8e75",
554 | "metadata": {},
555 | "outputs": [
556 | {
557 | "data": {
558 | "image/png": "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\n",
559 | "text/plain": [
560 | ""
561 | ]
562 | },
563 | "metadata": {},
564 | "output_type": "display_data"
565 | }
566 | ],
567 | "source": [
568 | "# plot some samples\n",
569 | "img = X_train.iloc[3].to_numpy()\n",
570 | "img = img.reshape((28,28))\n",
571 | "plt.imshow(img,cmap='gray')\n",
572 | "plt.title(train.iloc[3,0])\n",
573 | "plt.axis(\"off\")\n",
574 | "plt.show()"
575 | ]
576 | },
577 | {
578 | "cell_type": "code",
579 | "execution_count": 13,
580 | "id": "170c23f9",
581 | "metadata": {},
582 | "outputs": [
583 | {
584 | "name": "stdout",
585 | "output_type": "stream",
586 | "text": [
587 | "x_train shape: (42000, 784)\n",
588 | "test shape: (28000, 784)\n"
589 | ]
590 | }
591 | ],
592 | "source": [
593 | "X_train = X_train / 255.0\n",
594 | "test = test / 255.0\n",
595 | "print(\"x_train shape: \",X_train.shape)\n",
596 | "print(\"test shape: \",test.shape)"
597 | ]
598 | },
599 | {
600 | "cell_type": "code",
601 | "execution_count": 14,
602 | "id": "34f0eba7",
603 | "metadata": {},
604 | "outputs": [
605 | {
606 | "name": "stdout",
607 | "output_type": "stream",
608 | "text": [
609 | "x_train shape: (42000, 28, 28, 1)\n",
610 | "test shape: (28000, 28, 28, 1)\n"
611 | ]
612 | }
613 | ],
614 | "source": [
615 | "# Reshape\n",
616 | "X_train = X_train.values.reshape(-1,28,28,1)\n",
617 | "test = test.values.reshape(-1,28,28,1)\n",
618 | "print(\"x_train shape: \",X_train.shape)\n",
619 | "print(\"test shape: \",test.shape)"
620 | ]
621 | },
622 | {
623 | "cell_type": "code",
624 | "execution_count": 15,
625 | "id": "46ae439f",
626 | "metadata": {},
627 | "outputs": [],
628 | "source": [
629 | "# Label Encoding \n",
630 | "from keras.utils.np_utils import to_categorical # convert to one-hot-encoding\n",
631 | "Y_train = to_categorical(Y_train, num_classes = 10)"
632 | ]
633 | },
634 | {
635 | "cell_type": "code",
636 | "execution_count": 16,
637 | "id": "ae68e5f1",
638 | "metadata": {},
639 | "outputs": [
640 | {
641 | "name": "stdout",
642 | "output_type": "stream",
643 | "text": [
644 | "x_train shape (37800, 28, 28, 1)\n",
645 | "x_test shape (4200, 28, 28, 1)\n",
646 | "y_train shape (37800, 10)\n",
647 | "y_test shape (4200, 10)\n"
648 | ]
649 | }
650 | ],
651 | "source": [
652 | "# Split the train and the validation set for the fitting\n",
653 | "from sklearn.model_selection import train_test_split\n",
654 | "X_train, X_val, Y_train, Y_val = train_test_split(X_train, Y_train, test_size = 0.1, random_state=2)\n",
655 | "print(\"x_train shape\",X_train.shape)\n",
656 | "print(\"x_test shape\",X_val.shape)\n",
657 | "print(\"y_train shape\",Y_train.shape)\n",
658 | "print(\"y_test shape\",Y_val.shape)"
659 | ]
660 | },
661 | {
662 | "cell_type": "code",
663 | "execution_count": 22,
664 | "id": "36c42a20",
665 | "metadata": {},
666 | "outputs": [
667 | {
668 | "data": {
669 | "image/png": "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mpqsR+tVP/7xj11VVZVrbGx0f/nLX1xBQYFLS0tzV69etR4tptra2typU6fcqVOnnCT32muvuVOnTrl///vfzjnnfvnLX7qUlBR34MABd+bMGTd//nyXk5PjPv/8c+PJo+te56Gtrc298MILrqamxjU2NrojR464b33rW+6xxx5zN27csB49atauXeu8Xq+rqqpyV65cCW3Xr18PHbNmzRqXnZ3tjh496k6cOOHy8/Ndfn6+4dTRd7/zUF9f7372s5+5EydOuMbGRnfgwAGXm5vrZs2aZTx5uLgIkHPO/fa3v3XZ2dkuMTHRzZgxw9XW1lqP1OsWL17sMjMzXWJiovva177mFi9e7Orr663HirkPPvjASbprW758uXPuzluxX375ZZeRkeE8Ho+bM2eOq6ursx06Bu51Hq5fv+4KCwvdqFGj3NChQ92YMWPcqlWr+t3/SevqP78kt2vXrtAxn3/+uXv++efdI4884kaMGOGeffZZd+XKFbuhY+B+5+HChQtu1qxZLjU11Xk8Hvfoo4+6n/zkJy4QCNgO/iX8OgYAgIk+/zMgAED/RIAAACYIEADABAECAJggQAAAEwQIAGCCAAEATBAgAIAJAgQAMEGAAAAmCBAAwAQBAgCY+D/P8k3EEJFNMQAAAABJRU5ErkJggg==\n",
670 | "text/plain": [
671 | ""
672 | ]
673 | },
674 | "metadata": {},
675 | "output_type": "display_data"
676 | }
677 | ],
678 | "source": [
679 | "plt.imshow(X_train[1][:,:,0],cmap='gray')\n",
680 | "plt.show()"
681 | ]
682 | },
683 | {
684 | "cell_type": "code",
685 | "execution_count": 23,
686 | "id": "359fb894",
687 | "metadata": {},
688 | "outputs": [],
689 | "source": [
690 | "from sklearn.metrics import confusion_matrix\n",
691 | "import itertools\n",
692 | "\n",
693 | "from keras.utils.np_utils import to_categorical # convert to one-hot-encoding\n",
694 | "from keras.models import Sequential\n",
695 | "from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPool2D\n",
696 | "from keras.optimizers import RMSprop,Adam\n",
697 | "from keras.preprocessing.image import ImageDataGenerator\n",
698 | "from keras.callbacks import ReduceLROnPlateau"
699 | ]
700 | },
701 | {
702 | "cell_type": "code",
703 | "execution_count": 25,
704 | "id": "13bb50cb",
705 | "metadata": {},
706 | "outputs": [],
707 | "source": [
708 | "### Create Model architecture\n",
709 | "\n",
710 | "model = Sequential()\n",
711 | "\n",
712 | "## adding Layer 1\n",
713 | "model.add(Conv2D(filters = 8, kernel_size = (5,5),padding = 'Same', \n",
714 | " activation ='relu', input_shape = (28,28,1)))\n",
715 | "model.add(MaxPool2D(pool_size=(2,2)))\n",
716 | "model.add(Dropout(0.25))\n",
717 | "\n",
718 | "## adding Layer 2\n",
719 | "model.add(Conv2D(filters = 16, kernel_size = (3,3),padding = 'Same', \n",
720 | " activation ='relu'))\n",
721 | "model.add(MaxPool2D(pool_size=(2,2), strides=(2,2)))\n",
722 | "model.add(Dropout(0.25))\n",
723 | "\n",
724 | "## flattening and adding fully connected layer\n",
725 | "model.add(Flatten())\n",
726 | "model.add(Dense(256, activation = \"relu\"))\n",
727 | "model.add(Dropout(0.5))\n",
728 | "model.add(Dense(10, activation = \"softmax\"))\n",
729 | "optimizer = Adam(lr=0.001, beta_1=0.9, beta_2=0.999)"
730 | ]
731 | },
732 | {
733 | "cell_type": "code",
734 | "execution_count": 26,
735 | "id": "df1be64b",
736 | "metadata": {},
737 | "outputs": [],
738 | "source": [
739 | "model.compile(optimizer = optimizer , loss = \"categorical_crossentropy\", metrics=[\"accuracy\"])"
740 | ]
741 | },
742 | {
743 | "cell_type": "code",
744 | "execution_count": 27,
745 | "id": "4b1a17eb",
746 | "metadata": {},
747 | "outputs": [],
748 | "source": [
749 | "epochs = 10 # for better result increase the epochs\n",
750 | "batch_size = 250"
751 | ]
752 | },
753 | {
754 | "cell_type": "code",
755 | "execution_count": 28,
756 | "id": "31b74891",
757 | "metadata": {},
758 | "outputs": [],
759 | "source": [
760 | "# data augmentation\n",
761 | "datagen = ImageDataGenerator(\n",
762 | " featurewise_center=False, # set input mean to 0 over the dataset\n",
763 | " samplewise_center=False, # set each sample mean to 0\n",
764 | " featurewise_std_normalization=False, # divide inputs by std of the dataset\n",
765 | " samplewise_std_normalization=False, # divide each input by its std\n",
766 | " zca_whitening=False, # dimesion reduction\n",
767 | " rotation_range=5, # randomly rotate images in the range 5 degrees\n",
768 | " zoom_range = 0.1, # Randomly zoom image 10%\n",
769 | " width_shift_range=0.1, # randomly shift images horizontally 10%\n",
770 | " height_shift_range=0.1, # randomly shift images vertically 10%\n",
771 | " horizontal_flip=False, # randomly flip images\n",
772 | " vertical_flip=False) # randomly flip images\n",
773 | "\n",
774 | "datagen.fit(X_train)"
775 | ]
776 | },
777 | {
778 | "cell_type": "code",
779 | "execution_count": 29,
780 | "id": "52a5766c",
781 | "metadata": {},
782 | "outputs": [
783 | {
784 | "name": "stdout",
785 | "output_type": "stream",
786 | "text": [
787 | "Epoch 1/10\n",
788 | "151/151 [==============================] - 9s 56ms/step - loss: 1.1245 - accuracy: 0.6216 - val_loss: 0.2269 - val_accuracy: 0.9371\n",
789 | "Epoch 2/10\n",
790 | "151/151 [==============================] - 8s 56ms/step - loss: 0.4538 - accuracy: 0.8539 - val_loss: 0.1480 - val_accuracy: 0.9569\n",
791 | "Epoch 3/10\n",
792 | "151/151 [==============================] - 10s 65ms/step - loss: 0.3312 - accuracy: 0.8946 - val_loss: 0.1189 - val_accuracy: 0.9643\n",
793 | "Epoch 4/10\n",
794 | "151/151 [==============================] - 11s 72ms/step - loss: 0.2828 - accuracy: 0.9108 - val_loss: 0.0965 - val_accuracy: 0.9707\n",
795 | "Epoch 5/10\n",
796 | "151/151 [==============================] - 12s 78ms/step - loss: 0.2488 - accuracy: 0.9219 - val_loss: 0.0830 - val_accuracy: 0.9748\n",
797 | "Epoch 6/10\n",
798 | "151/151 [==============================] - 13s 84ms/step - loss: 0.2246 - accuracy: 0.9308 - val_loss: 0.0735 - val_accuracy: 0.9783\n",
799 | "Epoch 7/10\n",
800 | "151/151 [==============================] - 12s 80ms/step - loss: 0.2130 - accuracy: 0.9328 - val_loss: 0.0680 - val_accuracy: 0.9781\n",
801 | "Epoch 8/10\n",
802 | "151/151 [==============================] - 12s 80ms/step - loss: 0.2020 - accuracy: 0.9371 - val_loss: 0.0640 - val_accuracy: 0.9798\n",
803 | "Epoch 9/10\n",
804 | "151/151 [==============================] - 12s 81ms/step - loss: 0.1929 - accuracy: 0.9393 - val_loss: 0.0600 - val_accuracy: 0.9833\n",
805 | "Epoch 10/10\n",
806 | "151/151 [==============================] - 12s 79ms/step - loss: 0.1792 - accuracy: 0.9440 - val_loss: 0.0559 - val_accuracy: 0.9814\n"
807 | ]
808 | }
809 | ],
810 | "source": [
811 | "history = model.fit_generator(datagen.flow(X_train,Y_train, batch_size=batch_size),\n",
812 | " epochs = epochs, validation_data = (X_val,Y_val), steps_per_epoch=X_train.shape[0] // batch_size)"
813 | ]
814 | },
815 | {
816 | "cell_type": "code",
817 | "execution_count": 30,
818 | "id": "795866fe",
819 | "metadata": {},
820 | "outputs": [
821 | {
822 | "data": {
823 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHHCAYAAABEEKc/AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAABZPklEQVR4nO3deVwV9f7H8dcBZVE2N0DSxC130VRwqbTkilruppnl2o6acVu0m0t1C1wqK82WX5mVppm5ZGopqaXhkkTlhmbuCm4JogkK8/tjLicPiyKCw/J+Ph7z4Jw53zPzOeDtvO/Mdz5jMwzDQERERETsnKwuQERERKSoUUASERERyUIBSURERCQLBSQRERGRLBSQRERERLJQQBIRERHJQgFJREREJAsFJBEREZEsFJBEREREslBAEhEREclCAUlELGWz2fK0rF279rr3df78eSZOnJjnba1duxabzcaXX3553fsWkeKljNUFiEjp9umnnzo8/+STT1i1alW29Q0aNLjufZ0/f54XX3wRgA4dOlz39kSk5FJAEhFLPfDAAw7PN27cyKpVq7KtFxG5kXSKTUSKvIyMDKZNm0ajRo1wc3PDz8+PRx99lL/++sth3M8//0xYWBiVK1fG3d2dmjVrMmzYMAD2799PlSpVAHjxxRftp+4mTpx43fX9+eef3HvvvVSsWJFy5crRunVrvvnmm2zj3n77bRo1akS5cuWoUKECLVu2ZO7cufbXz549y+jRowkMDMTV1RVfX1/+9a9/ERsbe901isi10REkESnyHn30UT7++GOGDh3KqFGj2LdvH9OnT+eXX35hw4YNlC1bluPHj9OpUyeqVKnCmDFj8PHxYf/+/Xz11VcAVKlShZkzZ/L444/Tq1cvevfuDUDTpk2vq7bExETatm3L+fPnGTVqFJUqVWL27Nl0796dL7/8kl69egHwwQcfMGrUKPr27cuTTz7JhQsX+O2339i0aRP3338/AI899hhffvklI0aMoGHDhpw6dYr169ezc+dObr311uuqU0SukSEiUoSEh4cbl/+n6ccffzQAY86cOQ7jVq5c6bB+0aJFBmBs2bIl122fOHHCAIwJEybkqZY1a9YYgLFgwYJcx4wePdoAjB9//NG+7uzZs0bNmjWNwMBAIz093TAMw+jRo4fRqFGjK+7P29vbCA8Pz1NtIlK4dIpNRIq0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\n",
824 | "text/plain": [
825 | ""
826 | ]
827 | },
828 | "metadata": {},
829 | "output_type": "display_data"
830 | }
831 | ],
832 | "source": [
833 | "# Plot the loss and accuracy curves for training and validation \n",
834 | "plt.plot(history.history['val_loss'], color='b', label=\"validation loss\")\n",
835 | "plt.title(\"Test Loss\")\n",
836 | "plt.xlabel(\"Number of Epochs\")\n",
837 | "plt.ylabel(\"Loss\")\n",
838 | "plt.legend()\n",
839 | "plt.show()"
840 | ]
841 | },
842 | {
843 | "cell_type": "code",
844 | "execution_count": 32,
845 | "id": "11367dd6",
846 | "metadata": {},
847 | "outputs": [
848 | {
849 | "name": "stdout",
850 | "output_type": "stream",
851 | "text": [
852 | "132/132 [==============================] - 1s 4ms/step\n"
853 | ]
854 | },
855 | {
856 | "data": {
857 | "image/png": "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x8suevbsifHjx+PGjRto2bLwT1sRSRQxS/t/586dw+vXr9GrVy+561+/fo3Lly+jY8eOgvbr5+eHGT5eJRGiwizxf/+pLPPO/6zgSIpunuP7H6rTfaYpOJLiWeofCEB98lDl98aH94Uq5wCoRx7qkAPwMQ++vxVvif8y+Pr6Kuz4Vaa3Vtixp1f5Gn5+fjJtvr6+mDdvXp6+YWFhWLhwIS5dugRtbW106tQJ1tbWWLlyJUJDQ/HNN9/kmZC2bdsWnTt3xpIlS/D999/jwYMHOHr044eLZGRkQEdHB3/++Sd69+5d6LgVWon83A0wOjo6gieQREREREIp8hE/3t7eee4DkVeF/PfffzF58mQcP35cYTco/pdSP+KHiIiISN3Ju0lY3iQyKioKz549Q6tWrVChQgVUqFABZ86cwerVq1GhQgUYGxvjzZs3SE1Nldnu6dOnqFXr/f0NtWrVynO39oevP/QpLE4iiYiIiFRA165dce3aNURHR0uXNm3awM3NTfr/ihUr4uTJk9Jtbt26hYcPH8Le3h4AYG9vj2vXruHZs2fSPsePH4eenh4sLS0FxaPUn1hDREREVBZU4RNrqlatimbNmsm06ejowNDQUNr+3XffwdPTE9WrV4eenh48PDxgb28PO7v3N3P26NEDlpaWGDFiBJYuXYqkpCT4+PjA3d1d8Ad7cBJJREREpCZWrFgBDQ0NDBgwANnZ2ejZsyfWr18vXa+pqYnff/8d48ePh729PXR0dDBq1CjMnz9f8LE4iSQiIqJyTwTlr0TK87///U/ma21tbaxbtw7r1q3LdxtTU1P8+eefxT42r4kkIiIiIsE4iSQiIiIiwXg6m4iIiMo9VbixRtmwEklEREREgrESSUREROUeC5HCsRJJRERERIKxEklERETlngZLkYKxEklEREREgnESSURERESC8XQ2ERERlXt8xI9wrEQSERERkWCsRBIREVG5x0qkcKxEEhEREZFgnEQSERERkWA8nU1ERETlHs9mC8dKJBEREREJxkokERERlXu8sUY4ViKJiIiISDCRRCKRKDqIkubn56foEIiIiEggX19fhR275jxHhR372bzzCjt2cbASSURERESCqe01kTN8vBQdQrEs8V8GQLXz+JDDsszfFRxJ8XhV7gtAtccCUK/XlCrnAKhHHh9ymO4zTcGRFM9S/0AA6pOH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\n",
858 | "text/plain": [
859 | ""
860 | ]
861 | },
862 | "metadata": {},
863 | "output_type": "display_data"
864 | }
865 | ],
866 | "source": [
867 | "## Confusion matrix\n",
868 | "\n",
869 | "import seaborn as sns\n",
870 | "# Predict the values from the validation dataset\n",
871 | "Y_pred = model.predict(X_val)\n",
872 | "# Convert predictions classes to one hot vectors \n",
873 | "Y_pred_classes = np.argmax(Y_pred,axis = 1) \n",
874 | "# Convert validation observations to one hot vectors\n",
875 | "Y_true = np.argmax(Y_val,axis = 1) \n",
876 | "# compute the confusion matrix\n",
877 | "confusion_mtx = confusion_matrix(Y_true, Y_pred_classes) \n",
878 | "# plot the confusion matrix\n",
879 | "f,ax = plt.subplots(figsize=(8, 8))\n",
880 | "sns.heatmap(confusion_mtx, annot=True, linewidths=0.01,cmap=\"Greens\",linecolor=\"gray\", fmt= '.1f',ax=ax)\n",
881 | "plt.xlabel(\"Predicted Label\")\n",
882 | "plt.ylabel(\"True Label\")\n",
883 | "plt.title(\"Confusion Matrix\")\n",
884 | "plt.show()"
885 | ]
886 | }
887 | ],
888 | "metadata": {
889 | "kernelspec": {
890 | "display_name": "Python 3 (ipykernel)",
891 | "language": "python",
892 | "name": "python3"
893 | },
894 | "language_info": {
895 | "codemirror_mode": {
896 | "name": "ipython",
897 | "version": 3
898 | },
899 | "file_extension": ".py",
900 | "mimetype": "text/x-python",
901 | "name": "python",
902 | "nbconvert_exporter": "python",
903 | "pygments_lexer": "ipython3",
904 | "version": "3.10.6"
905 | }
906 | },
907 | "nbformat": 4,
908 | "nbformat_minor": 5
909 | }
910 |
--------------------------------------------------------------------------------