├── Credit_default_dataset.csv
├── License
├── Preprocessing_modeling_refinements_evaluations.html
├── Preprocessing_modeling_refinements_evaluations.ipynb
├── Project Report(By Nishant Sharma).pdf
├── Proposal.pdf
├── README.md
├── Xploratory_analysis.html
├── Xploratory_analysis.ipynb
├── deep_default.html
└── deep_default.ipynb
/License:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) [2017] [Nishant Sharma]
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/Preprocessing_modeling_refinements_evaluations.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 85,
6 | "metadata": {
7 | "collapsed": false
8 | },
9 | "outputs": [
10 | {
11 | "data": {
12 | "text/html": [
13 | "
\n",
14 | "\n",
27 | "
\n",
28 | " \n",
29 | " \n",
30 | " | \n",
31 | " ID | \n",
32 | " LIMIT_BAL | \n",
33 | " SEX | \n",
34 | " EDUCATION | \n",
35 | " MARRIAGE | \n",
36 | " AGE | \n",
37 | " PAY_0 | \n",
38 | " PAY_2 | \n",
39 | " PAY_3 | \n",
40 | " PAY_4 | \n",
41 | " ... | \n",
42 | " BILL_AMT4 | \n",
43 | " BILL_AMT5 | \n",
44 | " BILL_AMT6 | \n",
45 | " PAY_AMT1 | \n",
46 | " PAY_AMT2 | \n",
47 | " PAY_AMT3 | \n",
48 | " PAY_AMT4 | \n",
49 | " PAY_AMT5 | \n",
50 | " PAY_AMT6 | \n",
51 | " default.payment.next.month | \n",
52 | "
\n",
53 | " \n",
54 | " \n",
55 | " \n",
56 | " 0 | \n",
57 | " 1 | \n",
58 | " 20000.0 | \n",
59 | " 2 | \n",
60 | " 2 | \n",
61 | " 1 | \n",
62 | " 24 | \n",
63 | " 2 | \n",
64 | " 2 | \n",
65 | " -1 | \n",
66 | " -1 | \n",
67 | " ... | \n",
68 | " 0.0 | \n",
69 | " 0.0 | \n",
70 | " 0.0 | \n",
71 | " 0.0 | \n",
72 | " 689.0 | \n",
73 | " 0.0 | \n",
74 | " 0.0 | \n",
75 | " 0.0 | \n",
76 | " 0.0 | \n",
77 | " 1 | \n",
78 | "
\n",
79 | " \n",
80 | " 1 | \n",
81 | " 2 | \n",
82 | " 120000.0 | \n",
83 | " 2 | \n",
84 | " 2 | \n",
85 | " 2 | \n",
86 | " 26 | \n",
87 | " -1 | \n",
88 | " 2 | \n",
89 | " 0 | \n",
90 | " 0 | \n",
91 | " ... | \n",
92 | " 3272.0 | \n",
93 | " 3455.0 | \n",
94 | " 3261.0 | \n",
95 | " 0.0 | \n",
96 | " 1000.0 | \n",
97 | " 1000.0 | \n",
98 | " 1000.0 | \n",
99 | " 0.0 | \n",
100 | " 2000.0 | \n",
101 | " 1 | \n",
102 | "
\n",
103 | " \n",
104 | " 2 | \n",
105 | " 3 | \n",
106 | " 90000.0 | \n",
107 | " 2 | \n",
108 | " 2 | \n",
109 | " 2 | \n",
110 | " 34 | \n",
111 | " 0 | \n",
112 | " 0 | \n",
113 | " 0 | \n",
114 | " 0 | \n",
115 | " ... | \n",
116 | " 14331.0 | \n",
117 | " 14948.0 | \n",
118 | " 15549.0 | \n",
119 | " 1518.0 | \n",
120 | " 1500.0 | \n",
121 | " 1000.0 | \n",
122 | " 1000.0 | \n",
123 | " 1000.0 | \n",
124 | " 5000.0 | \n",
125 | " 0 | \n",
126 | "
\n",
127 | " \n",
128 | " 3 | \n",
129 | " 4 | \n",
130 | " 50000.0 | \n",
131 | " 2 | \n",
132 | " 2 | \n",
133 | " 1 | \n",
134 | " 37 | \n",
135 | " 0 | \n",
136 | " 0 | \n",
137 | " 0 | \n",
138 | " 0 | \n",
139 | " ... | \n",
140 | " 28314.0 | \n",
141 | " 28959.0 | \n",
142 | " 29547.0 | \n",
143 | " 2000.0 | \n",
144 | " 2019.0 | \n",
145 | " 1200.0 | \n",
146 | " 1100.0 | \n",
147 | " 1069.0 | \n",
148 | " 1000.0 | \n",
149 | " 0 | \n",
150 | "
\n",
151 | " \n",
152 | " 4 | \n",
153 | " 5 | \n",
154 | " 50000.0 | \n",
155 | " 1 | \n",
156 | " 2 | \n",
157 | " 1 | \n",
158 | " 57 | \n",
159 | " -1 | \n",
160 | " 0 | \n",
161 | " -1 | \n",
162 | " 0 | \n",
163 | " ... | \n",
164 | " 20940.0 | \n",
165 | " 19146.0 | \n",
166 | " 19131.0 | \n",
167 | " 2000.0 | \n",
168 | " 36681.0 | \n",
169 | " 10000.0 | \n",
170 | " 9000.0 | \n",
171 | " 689.0 | \n",
172 | " 679.0 | \n",
173 | " 0 | \n",
174 | "
\n",
175 | " \n",
176 | "
\n",
177 | "
5 rows × 25 columns
\n",
178 | "
"
179 | ],
180 | "text/plain": [
181 | " ID LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_0 PAY_2 PAY_3 PAY_4 \\\n",
182 | "0 1 20000.0 2 2 1 24 2 2 -1 -1 \n",
183 | "1 2 120000.0 2 2 2 26 -1 2 0 0 \n",
184 | "2 3 90000.0 2 2 2 34 0 0 0 0 \n",
185 | "3 4 50000.0 2 2 1 37 0 0 0 0 \n",
186 | "4 5 50000.0 1 2 1 57 -1 0 -1 0 \n",
187 | "\n",
188 | " ... BILL_AMT4 BILL_AMT5 BILL_AMT6 PAY_AMT1 \\\n",
189 | "0 ... 0.0 0.0 0.0 0.0 \n",
190 | "1 ... 3272.0 3455.0 3261.0 0.0 \n",
191 | "2 ... 14331.0 14948.0 15549.0 1518.0 \n",
192 | "3 ... 28314.0 28959.0 29547.0 2000.0 \n",
193 | "4 ... 20940.0 19146.0 19131.0 2000.0 \n",
194 | "\n",
195 | " PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 PAY_AMT6 \\\n",
196 | "0 689.0 0.0 0.0 0.0 0.0 \n",
197 | "1 1000.0 1000.0 1000.0 0.0 2000.0 \n",
198 | "2 1500.0 1000.0 1000.0 1000.0 5000.0 \n",
199 | "3 2019.0 1200.0 1100.0 1069.0 1000.0 \n",
200 | "4 36681.0 10000.0 9000.0 689.0 679.0 \n",
201 | "\n",
202 | " default.payment.next.month \n",
203 | "0 1 \n",
204 | "1 1 \n",
205 | "2 0 \n",
206 | "3 0 \n",
207 | "4 0 \n",
208 | "\n",
209 | "[5 rows x 25 columns]"
210 | ]
211 | },
212 | "execution_count": 85,
213 | "metadata": {},
214 | "output_type": "execute_result"
215 | }
216 | ],
217 | "source": [
218 | "import pandas as pd\n",
219 | "import sklearn\n",
220 | "import numpy as np\n",
221 | "\n",
222 | "credit=pd.read_csv(\"Credit.csv\")\n",
223 | "credit.head(5)"
224 | ]
225 | },
226 | {
227 | "cell_type": "code",
228 | "execution_count": 86,
229 | "metadata": {
230 | "collapsed": true
231 | },
232 | "outputs": [],
233 | "source": [
234 | "#We don't need the ID column,so lets drop it.\n",
235 | "credit = credit.drop([\"ID\"],axis=1)"
236 | ]
237 | },
238 | {
239 | "cell_type": "code",
240 | "execution_count": 87,
241 | "metadata": {
242 | "collapsed": true
243 | },
244 | "outputs": [],
245 | "source": [
246 | "#changing the name of pay_0 column to pay_1 to make the numbering correct"
247 | ]
248 | },
249 | {
250 | "cell_type": "code",
251 | "execution_count": 88,
252 | "metadata": {
253 | "collapsed": false
254 | },
255 | "outputs": [],
256 | "source": [
257 | "credit.rename(columns={'PAY_0':'PAY_1'}, inplace=True)"
258 | ]
259 | },
260 | {
261 | "cell_type": "code",
262 | "execution_count": 89,
263 | "metadata": {
264 | "collapsed": false
265 | },
266 | "outputs": [
267 | {
268 | "data": {
269 | "text/html": [
270 | "\n",
271 | "\n",
284 | "
\n",
285 | " \n",
286 | " \n",
287 | " | \n",
288 | " LIMIT_BAL | \n",
289 | " SEX | \n",
290 | " EDUCATION | \n",
291 | " MARRIAGE | \n",
292 | " AGE | \n",
293 | " PAY_1 | \n",
294 | " PAY_2 | \n",
295 | " PAY_3 | \n",
296 | " PAY_4 | \n",
297 | " PAY_5 | \n",
298 | " ... | \n",
299 | " BILL_AMT4 | \n",
300 | " BILL_AMT5 | \n",
301 | " BILL_AMT6 | \n",
302 | " PAY_AMT1 | \n",
303 | " PAY_AMT2 | \n",
304 | " PAY_AMT3 | \n",
305 | " PAY_AMT4 | \n",
306 | " PAY_AMT5 | \n",
307 | " PAY_AMT6 | \n",
308 | " default.payment.next.month | \n",
309 | "
\n",
310 | " \n",
311 | " \n",
312 | " \n",
313 | " 0 | \n",
314 | " 20000.0 | \n",
315 | " 2 | \n",
316 | " 2 | \n",
317 | " 1 | \n",
318 | " 24 | \n",
319 | " 2 | \n",
320 | " 2 | \n",
321 | " -1 | \n",
322 | " -1 | \n",
323 | " -2 | \n",
324 | " ... | \n",
325 | " 0.0 | \n",
326 | " 0.0 | \n",
327 | " 0.0 | \n",
328 | " 0.0 | \n",
329 | " 689.0 | \n",
330 | " 0.0 | \n",
331 | " 0.0 | \n",
332 | " 0.0 | \n",
333 | " 0.0 | \n",
334 | " 1 | \n",
335 | "
\n",
336 | " \n",
337 | "
\n",
338 | "
1 rows × 24 columns
\n",
339 | "
"
340 | ],
341 | "text/plain": [
342 | " LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_1 PAY_2 PAY_3 PAY_4 \\\n",
343 | "0 20000.0 2 2 1 24 2 2 -1 -1 \n",
344 | "\n",
345 | " PAY_5 ... BILL_AMT4 BILL_AMT5 BILL_AMT6 \\\n",
346 | "0 -2 ... 0.0 0.0 0.0 \n",
347 | "\n",
348 | " PAY_AMT1 PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 PAY_AMT6 \\\n",
349 | "0 0.0 689.0 0.0 0.0 0.0 0.0 \n",
350 | "\n",
351 | " default.payment.next.month \n",
352 | "0 1 \n",
353 | "\n",
354 | "[1 rows x 24 columns]"
355 | ]
356 | },
357 | "execution_count": 89,
358 | "metadata": {},
359 | "output_type": "execute_result"
360 | }
361 | ],
362 | "source": [
363 | "credit.head(1)"
364 | ]
365 | },
366 | {
367 | "cell_type": "code",
368 | "execution_count": 90,
369 | "metadata": {
370 | "collapsed": false
371 | },
372 | "outputs": [
373 | {
374 | "data": {
375 | "text/plain": [
376 | "2 14030\n",
377 | "1 10585\n",
378 | "3 4917\n",
379 | "5 280\n",
380 | "4 123\n",
381 | "6 51\n",
382 | "0 14\n",
383 | "Name: EDUCATION, dtype: int64"
384 | ]
385 | },
386 | "execution_count": 90,
387 | "metadata": {},
388 | "output_type": "execute_result"
389 | }
390 | ],
391 | "source": [
392 | "#Removing Unwanted categorical levels as mentioned in data exploration\n",
393 | "credit['EDUCATION'].value_counts()"
394 | ]
395 | },
396 | {
397 | "cell_type": "code",
398 | "execution_count": 91,
399 | "metadata": {
400 | "collapsed": false
401 | },
402 | "outputs": [],
403 | "source": [
404 | "#Changing Education levels 0,5,6 to others(4)\n",
405 | "credit[\"EDUCATION\"]=credit[\"EDUCATION\"].map({0:4,1:1,2:2,3:3,4:4,5:4,6:4})"
406 | ]
407 | },
408 | {
409 | "cell_type": "code",
410 | "execution_count": 92,
411 | "metadata": {
412 | "collapsed": false
413 | },
414 | "outputs": [
415 | {
416 | "data": {
417 | "text/plain": [
418 | "2 14030\n",
419 | "1 10585\n",
420 | "3 4917\n",
421 | "4 468\n",
422 | "Name: EDUCATION, dtype: int64"
423 | ]
424 | },
425 | "execution_count": 92,
426 | "metadata": {},
427 | "output_type": "execute_result"
428 | }
429 | ],
430 | "source": [
431 | "credit['EDUCATION'].value_counts()"
432 | ]
433 | },
434 | {
435 | "cell_type": "code",
436 | "execution_count": 93,
437 | "metadata": {
438 | "collapsed": false
439 | },
440 | "outputs": [
441 | {
442 | "data": {
443 | "text/plain": [
444 | "2 15964\n",
445 | "1 13659\n",
446 | "3 323\n",
447 | "0 54\n",
448 | "Name: MARRIAGE, dtype: int64"
449 | ]
450 | },
451 | "execution_count": 93,
452 | "metadata": {},
453 | "output_type": "execute_result"
454 | }
455 | ],
456 | "source": [
457 | "credit['MARRIAGE'].value_counts()"
458 | ]
459 | },
460 | {
461 | "cell_type": "code",
462 | "execution_count": 94,
463 | "metadata": {
464 | "collapsed": true
465 | },
466 | "outputs": [],
467 | "source": [
468 | "#similarly chaning marriage level 0 to level 3\n",
469 | "credit[\"MARRIAGE\"]=credit[\"MARRIAGE\"].map({0:3,1:1,2:2,3:3})"
470 | ]
471 | },
472 | {
473 | "cell_type": "code",
474 | "execution_count": 95,
475 | "metadata": {
476 | "collapsed": false
477 | },
478 | "outputs": [
479 | {
480 | "data": {
481 | "text/plain": [
482 | "2 15964\n",
483 | "1 13659\n",
484 | "3 377\n",
485 | "Name: MARRIAGE, dtype: int64"
486 | ]
487 | },
488 | "execution_count": 95,
489 | "metadata": {},
490 | "output_type": "execute_result"
491 | }
492 | ],
493 | "source": [
494 | "credit['MARRIAGE'].value_counts()"
495 | ]
496 | },
497 | {
498 | "cell_type": "code",
499 | "execution_count": 96,
500 | "metadata": {
501 | "collapsed": false
502 | },
503 | "outputs": [
504 | {
505 | "data": {
506 | "text/plain": [
507 | "array([ 0.06673129, 0.01107916, 0.03071698, 0.01828816, 0.06729232,\n",
508 | " 0.10502206, 0.04590552, 0.03639505, 0.02706571, 0.02889421,\n",
509 | " 0.02720425, 0.05080295, 0.04753515, 0.04445718, 0.04384626,\n",
510 | " 0.04408402, 0.04320006, 0.04511946, 0.042764 , 0.04264839,\n",
511 | " 0.04227342, 0.04214917, 0.04652524])"
512 | ]
513 | },
514 | "execution_count": 96,
515 | "metadata": {},
516 | "output_type": "execute_result"
517 | }
518 | ],
519 | "source": [
520 | "#lets check which features are important\n",
521 | "from sklearn.ensemble import ExtraTreesClassifier\n",
522 | "from sklearn.datasets import load_iris\n",
523 | "from sklearn.feature_selection import SelectFromModel\n",
524 | "X = credit.drop('default.payment.next.month',axis=1)\n",
525 | "Y = credit['default.payment.next.month']\n",
526 | "clf = ExtraTreesClassifier()\n",
527 | "clf = clf.fit(X, Y)\n",
528 | "clf.feature_importances_"
529 | ]
530 | },
531 | {
532 | "cell_type": "code",
533 | "execution_count": 97,
534 | "metadata": {
535 | "collapsed": true
536 | },
537 | "outputs": [],
538 | "source": [
539 | "#Feature Scaling"
540 | ]
541 | },
542 | {
543 | "cell_type": "code",
544 | "execution_count": 98,
545 | "metadata": {
546 | "collapsed": false
547 | },
548 | "outputs": [
549 | {
550 | "data": {
551 | "text/plain": [
552 | ""
553 | ]
554 | },
555 | "execution_count": 98,
556 | "metadata": {},
557 | "output_type": "execute_result"
558 | },
559 | {
560 | "data": {
561 | "image/png": "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\n",
562 | "text/plain": [
563 | ""
564 | ]
565 | },
566 | "metadata": {},
567 | "output_type": "display_data"
568 | }
569 | ],
570 | "source": [
571 | "%matplotlib inline\n",
572 | "#feature scaling check\n",
573 | "credit['BILL_AMT1'].hist(bins=60, color='orange')"
574 | ]
575 | },
576 | {
577 | "cell_type": "code",
578 | "execution_count": 99,
579 | "metadata": {
580 | "collapsed": false
581 | },
582 | "outputs": [
583 | {
584 | "data": {
585 | "text/plain": [
586 | "array([[ 0.01010101, 1. , 0.33333333, ..., 0. ,\n",
587 | " 0. , 1. ],\n",
588 | " [ 0.11111111, 1. , 0.33333333, ..., 0. ,\n",
589 | " 0.00378311, 1. ],\n",
590 | " [ 0.08080808, 1. , 0.33333333, ..., 0.00234451,\n",
591 | " 0.00945777, 0. ],\n",
592 | " ..., \n",
593 | " [ 0.02020202, 0. , 0.33333333, ..., 0.00468901,\n",
594 | " 0.00586382, 1. ],\n",
595 | " [ 0.07070707, 0. , 0.66666667, ..., 0.12417444,\n",
596 | " 0.00341236, 1. ],\n",
597 | " [ 0.04040404, 0. , 0.33333333, ..., 0.00234451,\n",
598 | " 0.00189155, 1. ]])"
599 | ]
600 | },
601 | "execution_count": 99,
602 | "metadata": {},
603 | "output_type": "execute_result"
604 | }
605 | ],
606 | "source": [
607 | "from sklearn.preprocessing import MinMaxScaler\n",
608 | "\n",
609 | "scaler = MinMaxScaler()\n",
610 | "scaler.fit_transform(credit)"
611 | ]
612 | },
613 | {
614 | "cell_type": "code",
615 | "execution_count": 100,
616 | "metadata": {
617 | "collapsed": false
618 | },
619 | "outputs": [
620 | {
621 | "data": {
622 | "text/plain": [
623 | "LIMIT_BAL 0\n",
624 | "SEX 0\n",
625 | "EDUCATION 0\n",
626 | "MARRIAGE 0\n",
627 | "AGE 0\n",
628 | "PAY_1 0\n",
629 | "PAY_2 0\n",
630 | "PAY_3 0\n",
631 | "PAY_4 0\n",
632 | "PAY_5 0\n",
633 | "PAY_6 0\n",
634 | "BILL_AMT1 0\n",
635 | "BILL_AMT2 0\n",
636 | "BILL_AMT3 0\n",
637 | "BILL_AMT4 0\n",
638 | "BILL_AMT5 0\n",
639 | "BILL_AMT6 0\n",
640 | "PAY_AMT1 0\n",
641 | "PAY_AMT2 0\n",
642 | "PAY_AMT3 0\n",
643 | "PAY_AMT4 0\n",
644 | "PAY_AMT5 0\n",
645 | "PAY_AMT6 0\n",
646 | "default.payment.next.month 0\n",
647 | "dtype: int64"
648 | ]
649 | },
650 | "execution_count": 100,
651 | "metadata": {},
652 | "output_type": "execute_result"
653 | }
654 | ],
655 | "source": [
656 | "#check for null values\n",
657 | "credit.apply(lambda x: sum(x.isnull()),axis=0) "
658 | ]
659 | },
660 | {
661 | "cell_type": "code",
662 | "execution_count": 101,
663 | "metadata": {
664 | "collapsed": true
665 | },
666 | "outputs": [],
667 | "source": [
668 | "#Initial Model training(except feed forward neural network)\n",
669 | "from sklearn.model_selection import train_test_split\n",
670 | "\n",
671 | "train, test = train_test_split(credit, test_size = 0.3)\n",
672 | "\n",
673 | "X_train = train.drop('default.payment.next.month',axis=1)\n",
674 | "\n",
675 | "y_train = train['default.payment.next.month']\n",
676 | "\n",
677 | "X_test = test.drop('default.payment.next.month',axis=1)\n",
678 | "\n",
679 | "y_test = test['default.payment.next.month']"
680 | ]
681 | },
682 | {
683 | "cell_type": "code",
684 | "execution_count": 102,
685 | "metadata": {
686 | "collapsed": false
687 | },
688 | "outputs": [
689 | {
690 | "data": {
691 | "text/plain": [
692 | "LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n",
693 | " intercept_scaling=1, max_iter=100, multi_class='ovr', n_jobs=1,\n",
694 | " penalty='l2', random_state=10, solver='liblinear', tol=0.0001,\n",
695 | " verbose=0, warm_start=False)"
696 | ]
697 | },
698 | "execution_count": 102,
699 | "metadata": {},
700 | "output_type": "execute_result"
701 | }
702 | ],
703 | "source": [
704 | "#Train benchmark model(Log Regression)\n",
705 | "from sklearn.linear_model import LogisticRegression\n",
706 | "clf0 = LogisticRegression(random_state=10)\n",
707 | "clf0.fit(X_train, y_train)"
708 | ]
709 | },
710 | {
711 | "cell_type": "code",
712 | "execution_count": 103,
713 | "metadata": {
714 | "collapsed": false
715 | },
716 | "outputs": [
717 | {
718 | "name": "stdout",
719 | "output_type": "stream",
720 | "text": [
721 | "accuracy: 0.777\n",
722 | "Precision: 0.603729\n",
723 | "Recall: 0.777\n",
724 | "f1_score: 0.679492402926\n"
725 | ]
726 | },
727 | {
728 | "name": "stderr",
729 | "output_type": "stream",
730 | "text": [
731 | "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\metrics\\classification.py:1135: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
732 | " 'precision', 'predicted', average, warn_for)\n",
733 | "C:\\ProgramData\\Anaconda3\\lib\\site-packages\\sklearn\\metrics\\classification.py:1135: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
734 | " 'precision', 'predicted', average, warn_for)\n"
735 | ]
736 | }
737 | ],
738 | "source": [
739 | "from sklearn.metrics import accuracy_score\n",
740 | "from sklearn.metrics import recall_score\n",
741 | "from sklearn.metrics import precision_score\n",
742 | "from sklearn.metrics import f1_score\n",
743 | "y_pred = clf0.predict(X_test)\n",
744 | "accuracy_regr=accuracy_score(y_test, y_pred)\n",
745 | "precision_regr=precision_score(y_test, y_pred,average='weighted')\n",
746 | "recall_regr=recall_score(y_test, y_pred,average='weighted')\n",
747 | "f1_regr=f1_score(y_test,y_pred,average='weighted')\n",
748 | "print(\"accuracy:\", accuracy_regr)\n",
749 | "print(\"Precision:\", precision_regr)\n",
750 | "print(\"Recall:\", recall_regr)\n",
751 | "print('f1_score:',f1_regr)"
752 | ]
753 | },
754 | {
755 | "cell_type": "code",
756 | "execution_count": 104,
757 | "metadata": {
758 | "collapsed": false
759 | },
760 | "outputs": [
761 | {
762 | "data": {
763 | "text/plain": [
764 | "RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
765 | " max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
766 | " min_impurity_decrease=0.0, min_impurity_split=None,\n",
767 | " min_samples_leaf=1, min_samples_split=2,\n",
768 | " min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=1,\n",
769 | " oob_score=False, random_state=10, verbose=0, warm_start=False)"
770 | ]
771 | },
772 | "execution_count": 104,
773 | "metadata": {},
774 | "output_type": "execute_result"
775 | }
776 | ],
777 | "source": [
778 | "#Train other classifiers\n",
779 | "#We start with randomforest\n",
780 | "from sklearn.ensemble import RandomForestClassifier\n",
781 | "clf1=RandomForestClassifier(random_state=10)\n",
782 | "clf1.fit(X_train,y_train)"
783 | ]
784 | },
785 | {
786 | "cell_type": "code",
787 | "execution_count": 105,
788 | "metadata": {
789 | "collapsed": false
790 | },
791 | "outputs": [
792 | {
793 | "name": "stdout",
794 | "output_type": "stream",
795 | "text": [
796 | "accuracy: 0.807222222222\n",
797 | "Precision: 0.785871777618\n",
798 | "Recall: 0.807222222222\n",
799 | "f1_score: 0.783502576417\n"
800 | ]
801 | }
802 | ],
803 | "source": [
804 | "y_pred1 = clf1.predict(X_test)\n",
805 | "accuracy_rf=accuracy_score(y_test, y_pred1)\n",
806 | "precision_rf=precision_score(y_test, y_pred1,average='weighted')\n",
807 | "recall_rf=recall_score(y_test, y_pred1,average='weighted')\n",
808 | "f1_rf=f1_score(y_test,y_pred1,average='weighted')\n",
809 | "print(\"accuracy:\", accuracy_rf)\n",
810 | "print(\"Precision:\", precision_rf)\n",
811 | "print(\"Recall:\", recall_rf)\n",
812 | "print('f1_score:',f1_rf)"
813 | ]
814 | },
815 | {
816 | "cell_type": "code",
817 | "execution_count": 106,
818 | "metadata": {
819 | "collapsed": false
820 | },
821 | "outputs": [
822 | {
823 | "data": {
824 | "text/plain": [
825 | "GradientBoostingClassifier(criterion='friedman_mse', init=None,\n",
826 | " learning_rate=0.1, loss='deviance', max_depth=3,\n",
827 | " max_features=None, max_leaf_nodes=None,\n",
828 | " min_impurity_decrease=0.0, min_impurity_split=None,\n",
829 | " min_samples_leaf=1, min_samples_split=2,\n",
830 | " min_weight_fraction_leaf=0.0, n_estimators=100,\n",
831 | " presort='auto', random_state=10, subsample=1.0, verbose=0,\n",
832 | " warm_start=False)"
833 | ]
834 | },
835 | "execution_count": 106,
836 | "metadata": {},
837 | "output_type": "execute_result"
838 | }
839 | ],
840 | "source": [
841 | "#gradeint boost\n",
842 | "from sklearn.ensemble import GradientBoostingClassifier\n",
843 | "clf2=GradientBoostingClassifier(random_state=10)\n",
844 | "clf2.fit(X_train,y_train)"
845 | ]
846 | },
847 | {
848 | "cell_type": "code",
849 | "execution_count": 107,
850 | "metadata": {
851 | "collapsed": false
852 | },
853 | "outputs": [
854 | {
855 | "name": "stdout",
856 | "output_type": "stream",
857 | "text": [
858 | "accuracy: 0.821444444444\n",
859 | "Precision: 0.805451059511\n",
860 | "Recall: 0.821444444444\n",
861 | "f1_score: 0.800503291948\n"
862 | ]
863 | }
864 | ],
865 | "source": [
866 | "y_pred2 = clf2.predict(X_test)\n",
867 | "accuracy_gb=accuracy_score(y_test, y_pred2)\n",
868 | "precision_gb=precision_score(y_test, y_pred2,average='weighted')\n",
869 | "recall_gb=recall_score(y_test, y_pred2,average='weighted')\n",
870 | "f1_gb=f1_score(y_test,y_pred2,average='weighted')\n",
871 | "print(\"accuracy:\", accuracy_gb)\n",
872 | "print(\"Precision:\", precision_gb)\n",
873 | "print(\"Recall:\", recall_gb)\n",
874 | "print('f1_score:',f1_gb)"
875 | ]
876 | },
877 | {
878 | "cell_type": "code",
879 | "execution_count": 108,
880 | "metadata": {
881 | "collapsed": false
882 | },
883 | "outputs": [
884 | {
885 | "data": {
886 | "text/plain": [
887 | "AdaBoostClassifier(algorithm='SAMME.R', base_estimator=None,\n",
888 | " learning_rate=1.0, n_estimators=50, random_state=10)"
889 | ]
890 | },
891 | "execution_count": 108,
892 | "metadata": {},
893 | "output_type": "execute_result"
894 | }
895 | ],
896 | "source": [
897 | "#adaboost\n",
898 | "from sklearn.ensemble import AdaBoostClassifier\n",
899 | "clf3 = AdaBoostClassifier(random_state=10)\n",
900 | "clf3.fit(X_train, y_train)"
901 | ]
902 | },
903 | {
904 | "cell_type": "code",
905 | "execution_count": 109,
906 | "metadata": {
907 | "collapsed": false
908 | },
909 | "outputs": [
910 | {
911 | "name": "stdout",
912 | "output_type": "stream",
913 | "text": [
914 | "accuracy: 0.818555555556\n",
915 | "Precision: 0.802242885074\n",
916 | "Recall: 0.818555555556\n",
917 | "f1_score: 0.793428250173\n"
918 | ]
919 | }
920 | ],
921 | "source": [
922 | "y_pred3 = clf3.predict(X_test)\n",
923 | "accuracy_ab=accuracy_score(y_test, y_pred3)\n",
924 | "precision_ab=precision_score(y_test, y_pred3,average='weighted')\n",
925 | "recall_ab=recall_score(y_test, y_pred3,average='weighted')\n",
926 | "f1_ab=f1_score(y_test,y_pred3,average='weighted')\n",
927 | "print(\"accuracy:\", accuracy_ab)\n",
928 | "print(\"Precision:\", precision_ab)\n",
929 | "print(\"Recall:\", recall_ab)\n",
930 | "print('f1_score:',f1_ab)"
931 | ]
932 | },
933 | {
934 | "cell_type": "code",
935 | "execution_count": 110,
936 | "metadata": {
937 | "collapsed": false
938 | },
939 | "outputs": [
940 | {
941 | "data": {
942 | "text/plain": [
943 | "VotingClassifier(estimators=[('rf', RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
944 | " max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
945 | " min_impurity_decrease=0.0, min_impurity_split=None,\n",
946 | " min_samples_leaf=1, min_samples_split=2,\n",
947 | " min_we...thm='SAMME.R', base_estimator=None,\n",
948 | " learning_rate=1.0, n_estimators=50, random_state=10))],\n",
949 | " flatten_transform=None, n_jobs=1, voting='hard', weights=None)"
950 | ]
951 | },
952 | "execution_count": 110,
953 | "metadata": {},
954 | "output_type": "execute_result"
955 | }
956 | ],
957 | "source": [
958 | "#voting classifier\n",
959 | "from sklearn.ensemble import VotingClassifier\n",
960 | "clf4 = VotingClassifier(estimators=[('rf',clf1),('gb', clf2),('ab',clf3)])\n",
961 | "clf4.fit(X_train,y_train)"
962 | ]
963 | },
964 | {
965 | "cell_type": "code",
966 | "execution_count": 111,
967 | "metadata": {
968 | "collapsed": false
969 | },
970 | "outputs": [
971 | {
972 | "name": "stdout",
973 | "output_type": "stream",
974 | "text": [
975 | "accuracy: 0.819777777778\n",
976 | "Precision: 0.803495820308\n",
977 | "Recall: 0.819777777778\n",
978 | "f1_score: 0.79663926916\n"
979 | ]
980 | }
981 | ],
982 | "source": [
983 | "y_pred4 = clf4.predict(X_test)\n",
984 | "accuracy_vc=accuracy_score(y_test, y_pred4)\n",
985 | "precision_vc=precision_score(y_test, y_pred4,average='weighted')\n",
986 | "recall_vc=recall_score(y_test, y_pred4,average='weighted')\n",
987 | "f1_vc=f1_score(y_test,y_pred4,average='weighted')\n",
988 | "print(\"accuracy:\", accuracy_vc)\n",
989 | "print(\"Precision:\", precision_vc)\n",
990 | "print(\"Recall:\", recall_vc)\n",
991 | "print('f1_score:',f1_vc)"
992 | ]
993 | },
994 | {
995 | "cell_type": "code",
996 | "execution_count": 112,
997 | "metadata": {
998 | "collapsed": false
999 | },
1000 | "outputs": [],
1001 | "source": [
1002 | "#appending all socres\n",
1003 | "arraycuracy=[]\n",
1004 | "arraycuracy.append(accuracy_regr)\n",
1005 | "arraycuracy.append(accuracy_rf)\n",
1006 | "arraycuracy.append(accuracy_gb)\n",
1007 | "arraycuracy.append(accuracy_ab)\n",
1008 | "arraycuracy.append(accuracy_vc)"
1009 | ]
1010 | },
1011 | {
1012 | "cell_type": "code",
1013 | "execution_count": 113,
1014 | "metadata": {
1015 | "collapsed": false
1016 | },
1017 | "outputs": [],
1018 | "source": [
1019 | "precisionray=[]\n",
1020 | "precisionray.append(precision_regr)\n",
1021 | "precisionray.append(precision_rf)\n",
1022 | "precisionray.append(precision_gb)\n",
1023 | "precisionray.append(precision_ab)\n",
1024 | "precisionray.append(precision_vc)"
1025 | ]
1026 | },
1027 | {
1028 | "cell_type": "code",
1029 | "execution_count": 114,
1030 | "metadata": {
1031 | "collapsed": true
1032 | },
1033 | "outputs": [],
1034 | "source": [
1035 | "recallray=[]\n",
1036 | "recallray.append(recall_regr)\n",
1037 | "recallray.append(recall_rf)\n",
1038 | "recallray.append(recall_gb)\n",
1039 | "recallray.append(recall_ab)\n",
1040 | "recallray.append(recall_vc)"
1041 | ]
1042 | },
1043 | {
1044 | "cell_type": "code",
1045 | "execution_count": 115,
1046 | "metadata": {
1047 | "collapsed": true
1048 | },
1049 | "outputs": [],
1050 | "source": [
1051 | "f1ray=[]\n",
1052 | "f1ray.append(f1_regr)\n",
1053 | "f1ray.append(f1_rf)\n",
1054 | "f1ray.append(f1_gb)\n",
1055 | "f1ray.append(f1_ab)\n",
1056 | "f1ray.append(f1_vc)"
1057 | ]
1058 | },
1059 | {
1060 | "cell_type": "code",
1061 | "execution_count": 116,
1062 | "metadata": {
1063 | "collapsed": false
1064 | },
1065 | "outputs": [
1066 | {
1067 | "data": {
1068 | "image/png": "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\n",
1069 | "text/plain": [
1070 | ""
1071 | ]
1072 | },
1073 | "metadata": {},
1074 | "output_type": "display_data"
1075 | }
1076 | ],
1077 | "source": [
1078 | "#Lets compare Accuracy,precison,racall\n",
1079 | "import matplotlib.pyplot as plt\n",
1080 | "classifier_names=('Log_reg','random_forst','grad_boost','adaboost','voting_class')\n",
1081 | "y_axis=np.arange(len(classifier_names))\n",
1082 | "plt.bar(y_axis, arraycuracy, alpha=0.4,color='navy',ecolor='navy')\n",
1083 | "plt.xticks(y_axis, classifier_names)\n",
1084 | "plt.ylabel('Accuracy Scores')\n",
1085 | "plt.title('Classifier comparison wrt Accuracy')\n",
1086 | "plt.show()"
1087 | ]
1088 | },
1089 | {
1090 | "cell_type": "code",
1091 | "execution_count": 117,
1092 | "metadata": {
1093 | "collapsed": false,
1094 | "scrolled": true
1095 | },
1096 | "outputs": [
1097 | {
1098 | "data": {
1099 | "image/png": "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\nbfW0AAAAAElFTkSuQmCC\n",
1100 | "text/plain": [
1101 | ""
1102 | ]
1103 | },
1104 | "metadata": {},
1105 | "output_type": "display_data"
1106 | }
1107 | ],
1108 | "source": [
1109 | "y_axis=np.arange(len(classifier_names))\n",
1110 | "plt.bar(y_axis,precisionray, alpha=0.4,color='purple',ecolor='darkgreen')\n",
1111 | "plt.xticks(y_axis, classifier_names)\n",
1112 | "plt.ylabel('Precision Scores')\n",
1113 | "plt.title('Classifier comparison wrt Precision')\n",
1114 | "plt.show()"
1115 | ]
1116 | },
1117 | {
1118 | "cell_type": "code",
1119 | "execution_count": 118,
1120 | "metadata": {
1121 | "collapsed": false
1122 | },
1123 | "outputs": [
1124 | {
1125 | "data": {
1126 | "image/png": "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\n",
1127 | "text/plain": [
1128 | ""
1129 | ]
1130 | },
1131 | "metadata": {},
1132 | "output_type": "display_data"
1133 | }
1134 | ],
1135 | "source": [
1136 | "y_axis=np.arange(len(classifier_names))\n",
1137 | "plt.bar(y_axis,recallray, alpha=0.4,color='brown',ecolor='black')\n",
1138 | "plt.xticks(y_axis, classifier_names)\n",
1139 | "plt.ylabel('recall Scores')\n",
1140 | "plt.title('Classifier comparison wrt Recall')\n",
1141 | "plt.show()"
1142 | ]
1143 | },
1144 | {
1145 | "cell_type": "code",
1146 | "execution_count": 119,
1147 | "metadata": {
1148 | "collapsed": false
1149 | },
1150 | "outputs": [
1151 | {
1152 | "data": {
1153 | "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEJCAYAAAB7UTvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAH8VJREFUeJzt3Xu8FXW9//HX2y2IF/LG1pMggkUZ/ry2JU396TlmgWlo\nWqKlpRnRyWNlVp7T5UfXo8f6/TomRmjE6XKyrDQyCsuTl7xxUQRRMUIMSA3v4h35/P74fvcwLNda\newF79ubyfj4e67FnvvNd3/nM7FnzWfOdWTOKCMzMzAC26O0AzMxsw+GkYGZmBScFMzMrOCmYmVnB\nScHMzApOCmZmVnBSsKYkjZf0owrbny/pyDwsSd+X9ISkGZIOl7SgqnlvLCStkLRnb8fRXSQdKunP\nebmO7+14bE1OCoakUyXNyh/ShyT9VtJhPTHviNg7Iq7Po4cBRwODImJERNwUEW/siTg2ZBGxXUQs\n6u04WiFpiqSvdlHty8AlebmulvReSbdIek7S9T0QpjXhpLCZk3Qu8C3g68CuwGBgAvCuXghnD2Bx\nRDy7vg1J2rIb4ulVG9sySGprseoewPzS+OOkbfCCbg/K1l5E+LWZvoDtgRXAe5rUGQ/8qDR+JfAw\n8BRwI7B3adoxwD3AM8Ay4LxcPgC4BniStAO4CdgiT1sMvA34EPAC8EqO6UvAkcDSUvu7Ab8AlgMP\nAOfUxPlz4EfA08BZdZZla+CbwIM5/j8BW+dp7yLtqJ4ErgfeVHrfYuDTwFzgWeB7pAT627ysfwB2\nzHWHAAGMBf4GPNS5HvL0EcCteT4PAZcAfUvTA/gY8GfggVLZ65ut4zztw8DCvI6nArvVtDsut/sk\nKfGrzjrqBzwPDMjjnwNWAq/J418BvpWHpwDfAabl9TIWeBl4Kf8Pf12n/b8Aq/I8VgBblaadBVzf\n25+Lzf3V6wH41Yv/fBiZP/BbNqkznjWTwplAf2Ar0re7OaVpDwGH5+EdgQPz8L8DE4E++XV45w4p\n73Dfloc/CPyp1N6R5KRAOqqdDXwR6AvsCSwC3lGK82Xg+Fx36zrLMoG0wx8ItAFvzcvxhrxTOzrH\n95m8c+1bivE2UiIYCPwduAM4IO9E/wf4P7nukLwD/gmwLbAPKYl1LuObgYOBLXPde4FPlGIM4PfA\nTqxOWOWk0Ggd/xPwKHBgXqZvAzfWtHsNsAPpaHA5MLLB//xG4MQ8fC1pRz6qNO2EPDyFlFwPzeu8\nXy77ahfbXfE/ryl3UtgAXu4+2rztDDwaEStbfUNETI6IZyLiRdKOeD9J2+fJLwPDJb0mIp6IiDtK\n5a8F9oiIlyOdK1jbm24dBLRHxJcj4qVIfeyXAWNKdW6NiKsjYlVEPF9+s6QtSAnt4xGxLCJeiYhb\n8nKcDPwmIn4fES8D3yAdVby11MS3I+KRiFhGOtK5PSLujIgXgKtICaLsSxHxbETMA74PnJLX3+yI\nuC0iVkbEYuC7wBE17/33iHi8dhmyRuv4fcDkiLgjL9O/AodIGlJ67wUR8WRE/BX4I7B/nfYBbgCO\nyN1X+wIX5/F+pP/DjaW6v4qIm/M6f6FBe7YRcVLYvD0GDGi171pSm6QLJP1F0tOkb3yQuocATiR1\nbzwo6QZJh+Tyi0jfvK+VtEjS+esQ6x7AbpKe7HwB/0b69t5pSZP3DyB9k/1LnWm7kbqUAIiIVbmt\ngaU6j5SGn68zvl1Nm+VYHszzQNIbJF0j6eG8Dr/O6vXXynI0Wse1y7CC9P8tL8PDpeHn6sTc6QbS\nUdqBwDzSkcsRpCOchRHxWIux2kbISWHzdivwIqnLpRWnAqNJ5wC2J3V/AAggImZGxGhgF+Bq4Ge5\n/JmI+FRE7Enquz9X0lFrGesSUh/7DqVX/4g4plSn2dHHo6RzFq+rM+1vpKSTFkYSsDupz35d7V4a\nHpznAakP/j5gWES8hpTYVPPehsvRaB3XWYZtSUeC67IMtwBvBE4AboiIe/IyHENKGM1i9W2XN3JO\nCpuxiHiK1Ec/QdLxkraR1EfSKEn/Uect/UlJ5DFgG9K3XAAk9ZX0Pknb5y6Yp0knFJF0rKTX553t\nU6STyavWMtwZwDOSPitp63zU8r8kHdTisq4CJgP/V9Ju+f2HSNqKtGN9p6SjJPUBPpWX85a1jLHs\nC3l97g2cAfw0l/cnrZsVkvYCPtpqg83WMekcxhmS9s/L9HVSF9fitQ08Ip4jnb/5GKuTwC2kE9W1\nSaHWI6TzPS3L/4t+pPMsW0jql/8P1gucFDZzEfFN4Fzg86STj0uAs0nfQmv9gNRFsYx0BcxtNdNP\nAxbnbpFxpH5ugGGkK3RWkI5OLo2IP65lnK8Ax5L6wR8gffO/nHTE0qrzSN0hM0lX6FxIugpqAfB+\n0snZR4HjgOMi4qW1ibHGDaQus+uAb0TEtaUYTiVdPXQZq5NFq+qu44j4A/AF0tVZD5GOiMY0aqTF\n+PuQknHneH/WPJ9Qz/dI5zyelFRvG6rnNFIX3HdIFyE8T1o31gs6rwAxs26QT+w+APRZmxP4ZhsK\nHymYmVnBScHMzAruPjIzs4KPFMzMrLBR3XALYMCAATFkyJDeDsPMbKMye/bsRyOivat6G11SGDJk\nCLNmzertMMzMNiqSHuy6lruPzMysxEnBzMwKTgpmZlZwUjAzs4KTgpmZFZwUzMysUGlSkDRS0gJJ\nC+s9WEXS9pJ+LekuSfMlnVFlPGZm1lxlSUFSG+mZuKOA4cApkobXVPsYcE9E7Ed60tM3JfWtKiYz\nM2uuyiOFEaRH9y3K96W/gvTUrrIA+ueHr2xHuse9bzdsZtZLqvxF80DWfH7rUuAtNXUuAaaSHiXY\nHzg5PyFrDZLGAmMBBg8eXEmwtomb8ZHejqD7jPhub0dgm7Devs3FO4A5wD+RnhT1e0k3RcTT5UoR\nMQmYBNDR0eHbuppZ6/yFYK1UmRSWsebDywfx6oeInwFcEOn+3QslPQDsxepHAJpZd9hUdow+Sqpc\nlecUZgLDJA3NJ4/HkLqKyv4KHAUgaVfgjcCiCmMyM7MmKjtSiIiVks4GpgNtwOSImC9pXJ4+EfgK\nMEXSPEDAZyPi0api2uxtKt8Wwd8YzSpS6TmFiJgGTKspm1ga/hvw9ipjMDOz1vkXzWZmVnBSMDOz\ngpOCmZkVnBTMzKzgpGBmZgUnBTMzKzgpmJlZwUnBzMwKTgpmZlZwUjAzs4KTgpmZFZwUzMys4KRg\nZmYFJwUzMys4KZiZWcFJwczMCk4KZmZWqDQpSBopaYGkhZLOrzP905Lm5Nfdkl6RtFOVMZmZWWOV\nJQVJbcAEYBQwHDhF0vBynYi4KCL2j4j9gX8FboiIx6uKyczMmqvySGEEsDAiFkXES8AVwOgm9U8B\nflJhPGZm1oUqk8JAYElpfGkuexVJ2wAjgV80mD5W0ixJs5YvX97tgZqZWbKhnGg+Dri5UddRREyK\niI6I6Ghvb+/h0MzMNh9VJoVlwO6l8UG5rJ4xuOvIzKzXVZkUZgLDJA2V1Je0459aW0nS9sARwK8q\njMXMzFqwZVUNR8RKSWcD04E2YHJEzJc0Lk+fmKueAFwbEc9WFYuZmbWmsqQAEBHTgGk1ZRNrxqcA\nU6qMozDjIz0ymx4x4ru9HYGZbYI2lBPNZma2AXBSMDOzgpOCmZkVnBTMzKzgpGBmZgUnBTMzKzgp\nmJlZwUnBzMwKTgpmZlZwUjAzs4KTgpmZFZwUzMys4KRgZmYFJwUzMys4KZiZWcFJwczMCpUmBUkj\nJS2QtFDS+Q3qHClpjqT5km6oMh4zM2uusievSWoDJgBHA0uBmZKmRsQ9pTo7AJcCIyPir5J2qSoe\nMzPrWpVHCiOAhRGxKCJeAq4ARtfUORX4ZUT8FSAi/l5hPGZm1oUqk8JAYElpfGkuK3sDsKOk6yXN\nlnR6hfGYmVkXKus+Wov5vxk4CtgauFXSbRFxf7mSpLHAWIDBgwf3eJBmZpuLKo8UlgG7l8YH5bKy\npcD0iHg2Ih4FbgT2q20oIiZFREdEdLS3t1cWsJnZ5q7KpDATGCZpqKS+wBhgak2dXwGHSdpS0jbA\nW4B7K4zJzMyaqKz7KCJWSjobmA60AZMjYr6kcXn6xIi4V9LvgLnAKuDyiLi7qpjMzKy5Ss8pRMQ0\nYFpN2cSa8YuAi6qMw8zMWuNfNJuZWcFJwczMCk4KZmZWcFIwM7OCk4KZmRWcFMzMrOCkYGZmBScF\nMzMrOCmYmVnBScHMzApOCmZmVnBSMDOzgpOCmZkVnBTMzKzgpGBmZgUnBTMzKzgpmJlZodKkIGmk\npAWSFko6v870IyU9JWlOfn2xynjMzKy5yh7HKakNmAAcDSwFZkqaGhH31FS9KSKOrSoOMzNrXZVH\nCiOAhRGxKCJeAq4ARlc4PzMzW09dJgVJH5f0GiXfk3SHpLe30PZAYElpfGkuq/VWSXMl/VbS3i3G\nbWZmFWjlSOHMiHgaeDuwI3AacEE3zf8OYHBE7At8G7i6XiVJYyXNkjRr+fLl3TRrMzOr1UpSUP57\nDPDDiJhfKmtmGbB7aXxQLitExNMRsSIPTwP6SBpQ21BETIqIjojoaG9vb2HWZma2LlpJCrMlXUtK\nCtMl9QdWtfC+mcAwSUMl9QXGAFPLFST9gyTl4RE5nsfWZgHMzKz7tHL10YeA/YFFEfGcpJ2BM7p6\nU0SslHQ2MB1oAyZHxHxJ4/L0icBJwEclrQSeB8ZERKzjspiZ2XpqJSkEMBw4FvgysC3Qr5XGc5fQ\ntJqyiaXhS4BLWg3WzMyq1Ur30aXAIcApefwZ0u8PzMxsE9PKkcJbIuJASXcCRMQT+RyBmZltYlo5\nUng5/zo5ACS109qJZjMz28i0khQuBq4CdpH0NeBPwNcrjcrMzHpFl91HEfFjSbOBo0i/Tzg+Iu6t\nPDIzM+txTZNC7jaaHxF7Aff1TEhmZtZbmnYfRcQrwAJJg3soHjMz60WtXH20IzBf0gzg2c7CiHhX\nZVGZmVmvaCUpfKHyKMzMbIPQyonmGyTtChyUi2ZExN+rDcvMzHpDK89TeC8wA3gP8F7gdkknVR2Y\nmZn1vFa6jz4HHNR5dJB/vPYH4OdVBmZmZj2vlR+vbVHTXfRYi+8zM7ONTCtHCr+TNB34SR4/Gfht\ndSGZmVlvaeVE86clvRs4LBdNioirqg3LzMx6Q5dJQdJQYFpE/DKPby1pSEQsrjo4MzPrWa2cG7iS\nNe+K+kouMzOzTUwrSWHLiHipcyQPt/Q8BUkjJS2QtFDS+U3qHSRppS91NTPrXa0kheWSiltaSBoN\nPNrVm/LN9CYAo0iP8zxF0vAG9S4Erm01aDMzq0YrVx+NA34s6RLSrbOXAKe38L4RwMKIWAQg6Qpg\nNHBPTb1/AX7B6l9Mm5lZL2nl6qO/AAdL2i6Pr2ix7YGkBNJpKfCWcgVJA4ETgH+kSVKQNBYYCzB4\nsG/YamZWlYbdR5KOk7RHqehc4GZJU/MVSd3hW8BnI6Lp4z0jYlJEdERER3t7ezfN2szMajU7Uvga\ncDCApGOB9wOnAAcAE4F3dNH2MmD30vigXFbWAVwhCWAAcIyklRFxdasLYGZm3adZUoiIeC4Pvxv4\nXkTMBmZL+ucW2p4JDMtHFcuAMcCpNTMojjgkTQGucUIwM+s9za4+kqTtJG1Bej7zdaVp/bpqOCJW\nAmcD04F7gZ9FxHxJ4ySNW5+gzcysGs2OFL4FzAGeBu6NiFkAkg4AHmql8YiYBkyrKZvYoO4HW2nT\nzMyq0zApRMTkfCO8XYC7SpMeBs6oOjAzM+t5TS9JjYhl1JwcjoiWjhLMzGzj4+cimJlZwUnBzMwK\n65QUOn/dbGZmm5Z1PVKovX+RmZltAhqeaJZ0bqNJgI8UzMw2Qc2OFL4O7Aj0r3lt18X7zMxsI9Xs\nktQ7gKvzrS3WIOms6kIyM7Pe0iwpnAE81mBaRwWxmJlZL2vWDfT5iHhU0sdrJ0TEIxXGZGZmvaRZ\nUnizpN2AMyXtKGmn8qunAjQzs57TrPtoIunOqHsCs0lXHXWKXG5mZpuQhkcKEXFxRLwJmBwRe0bE\n0NLLCcHMbBPU5aWlEfHRngjEzMx6n39vYGZmBScFMzMrVJoUJI2UtEDSQknn15k+WtJcSXMkzZJ0\nWJXxmJlZc00fsrM+JLUBE4CjgaXATElTI6J8M73rgKkREZL2BX4G7FVVTGZm1lyVRwojgIURsSgi\nXgKuAEaXK0TEioiIPLot6VJXMzPrJVUmhYHAktL40ly2BkknSLoP+A1wZr2GJI3N3Uuzli9fXkmw\nZma2AZxojoirImIv4HjgKw3qTIqIjojoaG9v79kAzcw2I1UmhWXA7qXxQbmsroi4EdhT0oAKYzIz\nsyaqTAozgWGShkrqC4wBppYrSHq9JOXhA4GtaHxnVjMzq1hlVx9FxEpJZwPTgTbS7TLmSxqXp08E\nTgROl/Qy8DxwcunEs5mZ9bDKkgJAREwDptWUTSwNXwhcWGUMZmbWul4/0WxmZhsOJwUzMys4KZiZ\nWcFJwczMCk4KZmZWcFIwM7OCk4KZmRWcFMzMrOCkYGZmBScFMzMrOCmYmVnBScHMzApOCmZmVnBS\nMDOzgpOCmZkVnBTMzKzgpGBmZoVKk4KkkZIWSFoo6fw6098naa6keZJukbRflfGYmVlzlSUFSW3A\nBGAUMBw4RdLwmmoPAEdExD7AV4BJVcVjZmZdq/JIYQSwMCIWRcRLwBXA6HKFiLglIp7Io7cBgyqM\nx8zMulBlUhgILCmNL81ljXwI+G29CZLGSpoladby5cu7MUQzMyvbIE40S/pHUlL4bL3pETEpIjoi\noqO9vb1ngzMz24xsWWHby4DdS+ODctkaJO0LXA6MiojHKozHzMy6UOWRwkxgmKShkvoCY4Cp5QqS\nBgO/BE6LiPsrjMXMzFpQ2ZFCRKyUdDYwHWgDJkfEfEnj8vSJwBeBnYFLJQGsjIiOqmIyM7Pmquw+\nIiKmAdNqyiaWhs8CzqoyBjMza90GcaLZzMw2DE4KZmZWcFIwM7OCk4KZmRWcFMzMrOCkYGZmBScF\nMzMrOCmYmVnBScHMzApOCmZmVnBSMDOzgpOCmZkVnBTMzKzgpGBmZgUnBTMzKzgpmJlZwUnBzMwK\nlSYFSSMlLZC0UNL5dabvJelWSS9KOq/KWMzMrGuVPY5TUhswATgaWArMlDQ1Iu4pVXscOAc4vqo4\nzMysdVUeKYwAFkbEooh4CbgCGF2uEBF/j4iZwMsVxmFmZi2qMikMBJaUxpfmsrUmaaykWZJmLV++\nvFuCMzOzV9soTjRHxKSI6IiIjvb29t4Ox8xsk1VlUlgG7F4aH5TLzMxsA1VlUpgJDJM0VFJfYAww\ntcL5mZnZeqrs6qOIWCnpbGA60AZMjoj5ksbl6RMl/QMwC3gNsErSJ4DhEfF0VXGZmVljlSUFgIiY\nBkyrKZtYGn6Y1K1kZmYbgI3iRLOZmfUMJwUzMys4KZiZWcFJwczMCk4KZmZWcFIwM7OCk4KZmRWc\nFMzMrOCkYGZmBScFMzMrOCmYmVnBScHMzApOCmZmVnBSMDOzgpOCmZkVnBTMzKzgpGBmZoVKk4Kk\nkZIWSFoo6fw60yXp4jx9rqQDq4zHzMyaqywpSGoDJgCjgOHAKZKG11QbBQzLr7HAd6qKx8zMulbl\nkcIIYGFELIqIl4ArgNE1dUYDP4jkNmAHSa+tMCYzM2tiywrbHggsKY0vBd7SQp2BwEPlSpLGko4k\nAFZIWtC9oXa7AcCj1c5iUrXNr7seWHbYvJffy74B2hi2+z1aqVRlUug2ETGJDXhrqCVpVkR09HYc\nvWFzXnbYvJffy75pLHuV3UfLgN1L44Ny2drWMTOzHlJlUpgJDJM0VFJfYAwwtabOVOD0fBXSwcBT\nEfFQbUNmZtYzKus+ioiVks4GpgNtwOSImC9pXJ4+EZgGHAMsBJ4Dzqgqnh620XR1VWBzXnbYvJff\ny74JUET0dgxmZraB8C+azcys4KRgZmYFJwUzexVJH5R0SRd1xks6r8IY/q2qtq0xJ4VM0orejmFD\nJGmxpAEVtb2VpD9ImiPp5PVs60hJb+2u2JrMp+H6kDRE0t0Vzvv4OreK2ZRVmhTy/+vU0niHpIur\nnGdpvpVtJ+vLSaEHSerRHwvmS3035P/xAQARsX9E/LSVN+R7atVzJLBOSaGn/y/r4XjSfcTWm6Sr\nJc2WND/fMQBJZ0i6X9IM4NBS3eMk3S7pzpzEdy01tZ+kWyX9WdKHc31JukjS3ZLmdSb8JuWvlXRj\n/nJwt6TDJV0AbJ3Lftwdy1zHEKBIChExKyLOqWheG4+I8CtdgbWiTtkQ4H+AucB1wOBc/jrgNmAe\n8NV67y21cSRwE+k3GffnsvcDM4A5wHeBtlz+IeD+PO0y4JJ1WI4hwALgB8B84PvArDz8pVK9xcCX\ngDvycuyVy3cGrs31LwceBAbkaecCd+fXJ0rzuw+YkmP/MfA24Gbgz8CIBnHuQroU+am8Hl4HHAXc\nmeOZDGxVivXCHOsY4Bzgnvx/uSLH8DDph49zgMNr5vWFvE7+BPwEOA+4HvhWXjefAo4Dbs/z/wOw\na1fro8G6vy+vg3uBnwPb5GmNlq1R+QWlZfwGKeE9DjzQub7Wc3vfKf/dOv8/BwJ/BdqBvvn/d0mu\nsyOrr1Q8C/hmHh4P3JXbGEC6Zc1uwInA70mXou+a231tk/JPAZ/LbbYB/Rt9JltYrguAj5XGxwOf\nBi7KyzkPODlPu43V298nSZ/Va0rvm5y3k0XAOc22pybxvD5vT3eRtt/X5e3k7tI2c1Oedgfw1lz+\nWuDGHNvdwOF53UwpLccnK9kXVtHoxviqtwECvwY+kIfPBK7Ow9cAp+Thcc023ryhPQsMzeNvyu32\nyeOXAqfnD9NiYCegT95Q1jUprAIOzuOdH/62vIHvm8cXA/+Sh/8ZuDwPXwx8MQ+/EwjSB/7NeUPc\nFtiOtJM8IM9vJbAP6chzdv4wiXTDw6u7WDedH8J+pJ3KG/L4D1ideBYDnym972+s3nnukP+Or/fh\nBA7KH6x+QH9SoupMCpeW6jXa8dVdH03WfQCH5vHJeV51l61J+c6knY5qlnEKcFI3be/jSTuqu0g7\nxvNJN6fsnH4Oq5PCPqTEOC/H9btSG18uvecHpKOZ/wecWSr/IfCuJuX/m/QFYTywf7PPZAvLdQBw\nQ2n8HuAD1E9GxfZXZ3scD9wCbEXa/h8jfS7rbk9N4rkdOKG0jW/DmklhG6BfHh4GzMrDr0qUpM/g\n70tt79Ad20Lta0PuWtgQHAL8dx7+IXBYqfzKPPzftW+qY0ZEPJCHjyL9c2dKmpPH9yTdVfaGiHg8\nIl4utb8uHox011mA90q6g/RtdG/W7H74Zf47m7ShQvqA/gggIn4DPJHLDwOuiohnI2JFfu/hedoD\nETEvIlaRksV1kbbaeaV2u/LG3M79efy/ciydyt1Lc4EfS3o/KSE1cyjwq4h4ISKeISXkem0OAqZL\nmkf6Zrl3Lm+0PhpZEhE35+EfkdZbo2VrVP4U8ALwPUnvJv2ws9tIOpJ0NHdIROxH2jbua/KWb5MS\nxD7AR0g7t061P3Ra6x8+RcSNpOVeBkyRdPratlFq605gF0m7SdqP9P/aH/hJRLwSEY8AN5B27l35\nTUS8GBGPAn8nJZRm29MaJPUHBkbEVTm2FyKi9n/ZB7gsb3dXsvrzORM4Q9J4YJ88r0XAnpK+LWkk\n8HQLy7DWnBR6xrOlYQH/Fakfff+IeGNEjK9ifpKGkr6pHhUR+wK/Yc0P9Iv57yus36/bXywNryqN\nr1rPdsvK6/CdpGd1HEhKrus6j3KbzXZ8a6M7dpIrSV8Sfg4cC/xuHWNpZHvgiYh4TtJewMGkLqAj\nJO0sqQ/wnpr6nfck+0BNW6Ml9ZO0M+mb9kzSUe7JktoktZN2+DMalUvaA3gkIi4jddF1Pmzr5RzL\n2roSOAk4mTUT/9oqb9fr+xlp5JPAI8B+QAep665uooyIJ3K960k9FJdXEI+TQhduIfVhA7yPtFFD\n6os8MQ+PqX1TF64DTpK0C4CknfKHYibpQ7lj3smd2KyRFr2GtON7Kp8cHNXCe24kn3yTNIrUrQJp\n2Y+XtI2kbYETWL0+usMCYIik1+fx00jf6NaQT5zvHhF/BD5L2mFtBzxDOsSudTNwXN5xbUfaydbT\naMfXaH00MljSIXn4VFK/c6Nlq1ue49w+IqaRdhr75emNlnFt/Q7YUtK9pD7420i3qx8P3EpaZ/eW\n6o8HrpQ0m1ffHnou8Mfcxlci4m/AVbn8LtI5uc9ExMNNyo8E7pJ0J2lH/p+57UnA3HU40fxT0ufy\nJFKCaJSk1mV9tro9kb/dL5V0PBRX221TU2174KF8lH0aqauIeokyX/W2RUT8Avg8q5Nn96qiT2pj\nfJG+1S4tvc4l3X+83onmYaS+wrnAfwDLmrR7JKV+y1x2Mqlfci6p66az/38sqY/ydlJXwtfWYTmG\nkPsr8/gU0gng60hdPh/M5YtZfQK5A7g+D5dPrF5Gayeaa+d3Ur1pXa0bmp9o7oyhD2lHOy/HcX4u\nf0Nen/VONI/P6+Am4BfAh0nftjpKdUaTDs9nk05Kdrk+Gqz7+0jdRvfmea31iWZSf/eMvDzzWH1e\n61BSH/mdrOeJ5k39ldfbH/OwqH+iuQ/p830X9U80n1dq725gSKPtqUkcw1i9D5lN6iouPhd5emei\nvJB8HoX0xeTu/L++CRhK+nJwR97G5wCjqlh3vvfROsjZ/vmICEljSCeda58qty7tbhcRK/KRwlWk\nmwhetb7tbu5K63Ub0jf/sRFxR2/HZRunTX172liuz97QvBm4RJKAJ0lXJnWH8ZLeRurPvha4upva\n3dxNyj/66kc6n7PJfICtV2zS25OPFLqJpH1IVyiVvRgRtY8g3exIOgP4eE3xzRHxsd6IZ33lk6rX\n1Zl0VEQ81tPxWO+TNIHSD/6y/4yI7/dGPOvDScHMzAq++sjMzApOCmZmVnBSMDOzgpOCmZkV/j/V\nIXXqDGg0xgAAAABJRU5ErkJggg==\n",
1154 | "text/plain": [
1155 | ""
1156 | ]
1157 | },
1158 | "metadata": {},
1159 | "output_type": "display_data"
1160 | }
1161 | ],
1162 | "source": [
1163 | "y_axis=np.arange(len(classifier_names))\n",
1164 | "plt.bar(y_axis,f1ray, alpha=0.6,color='orange',ecolor='black')\n",
1165 | "plt.xticks(y_axis, classifier_names)\n",
1166 | "plt.ylabel('f1 Scores')\n",
1167 | "plt.title('Classifier comparison wrt f1')\n",
1168 | "plt.show()"
1169 | ]
1170 | },
1171 | {
1172 | "cell_type": "code",
1173 | "execution_count": 120,
1174 | "metadata": {
1175 | "collapsed": false
1176 | },
1177 | "outputs": [
1178 | {
1179 | "name": "stdout",
1180 | "output_type": "stream",
1181 | "text": [
1182 | "Best parameters for Adaboost: {'n_estimators': 15}\n"
1183 | ]
1184 | }
1185 | ],
1186 | "source": [
1187 | "#Some fine REFINEMENTS to GBboost,Rfforest,and Adaboost\n",
1188 | "#PERFROM GRIDSEARCH CV on RF,GB and Adaboost to find best parameter values on 10 fold cross validation set\n",
1189 | "from sklearn.metrics import classification_report\n",
1190 | "from sklearn.grid_search import GridSearchCV\n",
1191 | "from sklearn.metrics import make_scorer\n",
1192 | "from sklearn.metrics import fbeta_score\n",
1193 | "from sklearn.ensemble import RandomForestClassifier\n",
1194 | "from sklearn.ensemble import AdaBoostClassifier\n",
1195 | "\n",
1196 | "\n",
1197 | "parameters_ada ={'n_estimators' :[15,25,50],\n",
1198 | " }\n",
1199 | "\n",
1200 | "\n",
1201 | "\n",
1202 | "clf = GridSearchCV(AdaBoostClassifier(random_state=10), parameters_ada,cv=10,scoring='accuracy')\n",
1203 | "clf.fit(X_train, y_train)\n",
1204 | "print(\"Best parameters for Adaboost:\",clf.best_params_)"
1205 | ]
1206 | },
1207 | {
1208 | "cell_type": "code",
1209 | "execution_count": 121,
1210 | "metadata": {
1211 | "collapsed": false
1212 | },
1213 | "outputs": [
1214 | {
1215 | "name": "stdout",
1216 | "output_type": "stream",
1217 | "text": [
1218 | "Best parameters for GradeintBoosting: {'min_samples_split': 15, 'n_estimators': 50}\n",
1219 | "Best parameters for RandomForest: {'min_samples_split': 15, 'n_estimators': 50}\n"
1220 | ]
1221 | }
1222 | ],
1223 | "source": [
1224 | "parameters_boost ={'n_estimators' :[15,25,50],\n",
1225 | " 'min_samples_split' :[3,10,15]\n",
1226 | "}\n",
1227 | "\n",
1228 | "clf00 = GridSearchCV(GradientBoostingClassifier(random_state=10), cv=10, param_grid=parameters_boost, scoring='accuracy')\n",
1229 | "clf00.fit(X_train,y_train)\n",
1230 | "print(\"Best parameters for GradeintBoosting:\",clf00.best_params_)\n",
1231 | "\n",
1232 | "\n",
1233 | "clf001 = GridSearchCV(RandomForestClassifier(random_state=10), cv=10, param_grid=parameters_boost,scoring='accuracy')\n",
1234 | "clf001.fit(X_train,y_train)\n",
1235 | "print(\"Best parameters for RandomForest:\",clf001.best_params_)"
1236 | ]
1237 | },
1238 | {
1239 | "cell_type": "code",
1240 | "execution_count": 195,
1241 | "metadata": {
1242 | "collapsed": false
1243 | },
1244 | "outputs": [],
1245 | "source": [
1246 | "#Use the above parameter values for our Weighted voting CLassifier\n",
1247 | "\n",
1248 | "#First we have to calibrate our classsifers\n",
1249 | "\n",
1250 | "#Isotonic claibration\n",
1251 | "from sklearn.calibration import CalibratedClassifierCV\n",
1252 | "clfvc1 = RandomForestClassifier(n_estimators=50,min_samples_split=15,random_state=10)\n",
1253 | "clfvc2=AdaBoostClassifier(n_estimators=15,random_state=10)\n",
1254 | "clfvc3=GradientBoostingClassifier(n_estimators=50,min_samples_split=15,random_state=10)\n",
1255 | "clf_isotonic1 = CalibratedClassifierCV(clfvc1, method='isotonic',cv=10)\n",
1256 | "clf_isotonic2 = CalibratedClassifierCV(clfvc2, method='isotonic',cv=10)\n",
1257 | "clf_isotonic3 = CalibratedClassifierCV(clfvc3, method='isotonic',cv=10)"
1258 | ]
1259 | },
1260 | {
1261 | "cell_type": "code",
1262 | "execution_count": 185,
1263 | "metadata": {
1264 | "collapsed": false
1265 | },
1266 | "outputs": [
1267 | {
1268 | "data": {
1269 | "text/plain": [
1270 | "VotingClassifier(estimators=[('rf', CalibratedClassifierCV(base_estimator=RandomForestClassifier(bootstrap=True, class_weight=None, criterion='gini',\n",
1271 | " max_depth=None, max_features='auto', max_leaf_nodes=None,\n",
1272 | " min_impurity_decrease=0.0, min_impurity_split=None,\n",
1273 | " min_samples_leaf=1, m..., subsample=1.0, verbose=0,\n",
1274 | " warm_start=False),\n",
1275 | " cv=10, method='isotonic'))],\n",
1276 | " flatten_transform=None, n_jobs=1, voting='soft',\n",
1277 | " weights=[1, 1, 1])"
1278 | ]
1279 | },
1280 | "execution_count": 185,
1281 | "metadata": {},
1282 | "output_type": "execute_result"
1283 | }
1284 | ],
1285 | "source": [
1286 | "#Inputing the istonic calibration to voting classifier with weights.\n",
1287 | "import time\n",
1288 | "t0 = time.clock()\n",
1289 | "clfvc = VotingClassifier(estimators=[('rf',clf_isotonic1),('ab', clf_isotonic2),('gb',clf_isotonic3)],voting='soft',weights=[1,1,2])\n",
1290 | "clfvc.fit(X_train,y_train)"
1291 | ]
1292 | },
1293 | {
1294 | "cell_type": "code",
1295 | "execution_count": 186,
1296 | "metadata": {
1297 | "collapsed": true
1298 | },
1299 | "outputs": [],
1300 | "source": [
1301 | "y_predvc = clfvc.predict(X_test)\n",
1302 | "accuracy_vciso=accuracy_score(y_test, y_predvc)"
1303 | ]
1304 | },
1305 | {
1306 | "cell_type": "code",
1307 | "execution_count": 187,
1308 | "metadata": {
1309 | "collapsed": false
1310 | },
1311 | "outputs": [],
1312 | "source": [
1313 | "precision_vciso=precision_score(y_test, y_predvc)"
1314 | ]
1315 | },
1316 | {
1317 | "cell_type": "code",
1318 | "execution_count": 188,
1319 | "metadata": {
1320 | "collapsed": false
1321 | },
1322 | "outputs": [
1323 | {
1324 | "name": "stdout",
1325 | "output_type": "stream",
1326 | "text": [
1327 | "accuracy: 0.821666666667\n",
1328 | "Precision: 0.805790548828\n",
1329 | "Recall: 0.821666666667\n",
1330 | "f1_score: 0.800497169577\n",
1331 | "Training_time: 59.46775733333334\n"
1332 | ]
1333 | }
1334 | ],
1335 | "source": [
1336 | "#Results of weighted voting classifer\n",
1337 | "y_predvc = clfvc.predict(X_test)\n",
1338 | "accuracy_vciso=accuracy_score(y_test, y_predvc)\n",
1339 | "precision_vciso=precision_score(y_test, y_predvc,average='weighted')\n",
1340 | "recall_vciso=recall_score(y_test, y_predvc,average='weighted')\n",
1341 | "f1_vciso=f1_score(y_test,y_predvc,average='weighted')\n",
1342 | "print(\"accuracy:\", accuracy_vciso)\n",
1343 | "print(\"Precision:\", precision_vciso)\n",
1344 | "print(\"Recall:\", recall_vciso)\n",
1345 | "print('f1_score:',f1_vciso)\n",
1346 | "print('Training_time:',time.clock() - t0)"
1347 | ]
1348 | },
1349 | {
1350 | "cell_type": "code",
1351 | "execution_count": 193,
1352 | "metadata": {
1353 | "collapsed": false
1354 | },
1355 | "outputs": [
1356 | {
1357 | "data": {
1358 | "text/plain": [
1359 | "GradientBoostingClassifier(criterion='friedman_mse', init=None,\n",
1360 | " learning_rate=0.1, loss='deviance', max_depth=3,\n",
1361 | " max_features=None, max_leaf_nodes=None,\n",
1362 | " min_impurity_decrease=0.0, min_impurity_split=None,\n",
1363 | " min_samples_leaf=1, min_samples_split=15,\n",
1364 | " min_weight_fraction_leaf=0.0, n_estimators=50,\n",
1365 | " presort='auto', random_state=10, subsample=1.0, verbose=0,\n",
1366 | " warm_start=False)"
1367 | ]
1368 | },
1369 | "execution_count": 193,
1370 | "metadata": {},
1371 | "output_type": "execute_result"
1372 | }
1373 | ],
1374 | "source": [
1375 | "#Training just the Gradient Boost(clfvc3) with tuned parameters from above\n",
1376 | "t1 = time.clock()\n",
1377 | "clfvc3.fit(X_train,y_train)"
1378 | ]
1379 | },
1380 | {
1381 | "cell_type": "code",
1382 | "execution_count": 194,
1383 | "metadata": {
1384 | "collapsed": false
1385 | },
1386 | "outputs": [
1387 | {
1388 | "name": "stdout",
1389 | "output_type": "stream",
1390 | "text": [
1391 | "accuracy: 0.822888888889\n",
1392 | "Precision: 0.807469736307\n",
1393 | "Recall: 0.822888888889\n",
1394 | "f1_score: 0.801832784112\n",
1395 | "Training_time: 1.9779253333335873\n"
1396 | ]
1397 | }
1398 | ],
1399 | "source": [
1400 | "#results of Tuned Gradient Boosting classifer\n",
1401 | "y_predgb2 = clfvc3.predict(X_test)\n",
1402 | "accuracy_gb2=accuracy_score(y_test, y_predgb2)\n",
1403 | "precision_gb2=precision_score(y_test, y_predgb2,average='weighted')\n",
1404 | "recall_gb2=recall_score(y_test, y_predgb2,average='weighted')\n",
1405 | "f1_gb2=f1_score(y_test,y_predgb2,average='weighted')\n",
1406 | "print(\"accuracy:\", accuracy_gb2)\n",
1407 | "print(\"Precision:\", precision_gb2)\n",
1408 | "print(\"Recall:\", recall_gb2)\n",
1409 | "print('f1_score:',f1_gb2)\n",
1410 | "print('Training_time:',time.clock() - t1)"
1411 | ]
1412 | },
1413 | {
1414 | "cell_type": "code",
1415 | "execution_count": 196,
1416 | "metadata": {
1417 | "collapsed": false
1418 | },
1419 | "outputs": [
1420 | {
1421 | "data": {
1422 | "text/plain": [
1423 | "0.82220287299291184"
1424 | ]
1425 | },
1426 | "execution_count": 196,
1427 | "metadata": {},
1428 | "output_type": "execute_result"
1429 | }
1430 | ],
1431 | "source": [
1432 | "#FINAL EVALUATION USING Stratified 10-fold CV on VC\n",
1433 | "from sklearn.model_selection import cross_val_score\n",
1434 | "#accuracy\n",
1435 | "scores = cross_val_score(clfvc3, credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10)\n",
1436 | "scores.mean()"
1437 | ]
1438 | },
1439 | {
1440 | "cell_type": "code",
1441 | "execution_count": 197,
1442 | "metadata": {
1443 | "collapsed": false
1444 | },
1445 | "outputs": [
1446 | {
1447 | "data": {
1448 | "text/plain": [
1449 | "0.80021882447113324"
1450 | ]
1451 | },
1452 | "execution_count": 197,
1453 | "metadata": {},
1454 | "output_type": "execute_result"
1455 | }
1456 | ],
1457 | "source": [
1458 | "from sklearn.model_selection import cross_val_score\n",
1459 | "#f1\n",
1460 | "scores1 = cross_val_score(clfvc3, credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10,scoring='f1_weighted')\n",
1461 | "scores1.mean()"
1462 | ]
1463 | },
1464 | {
1465 | "cell_type": "code",
1466 | "execution_count": 198,
1467 | "metadata": {
1468 | "collapsed": false
1469 | },
1470 | "outputs": [
1471 | {
1472 | "data": {
1473 | "text/plain": [
1474 | "0.80645997468495467"
1475 | ]
1476 | },
1477 | "execution_count": 198,
1478 | "metadata": {},
1479 | "output_type": "execute_result"
1480 | }
1481 | ],
1482 | "source": [
1483 | "#Precision\n",
1484 | "scores2 = cross_val_score(clfvc3, credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10,scoring='precision_weighted')\n",
1485 | "scores2.mean()"
1486 | ]
1487 | },
1488 | {
1489 | "cell_type": "code",
1490 | "execution_count": 199,
1491 | "metadata": {
1492 | "collapsed": false
1493 | },
1494 | "outputs": [
1495 | {
1496 | "data": {
1497 | "text/plain": [
1498 | "0.82220287299291184"
1499 | ]
1500 | },
1501 | "execution_count": 199,
1502 | "metadata": {},
1503 | "output_type": "execute_result"
1504 | }
1505 | ],
1506 | "source": [
1507 | "#Recall\n",
1508 | "scores3 = cross_val_score(clfvc3, credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10,scoring='recall_weighted')\n",
1509 | "scores3.mean()"
1510 | ]
1511 | },
1512 | {
1513 | "cell_type": "code",
1514 | "execution_count": 200,
1515 | "metadata": {
1516 | "collapsed": false
1517 | },
1518 | "outputs": [
1519 | {
1520 | "name": "stdout",
1521 | "output_type": "stream",
1522 | "text": [
1523 | "Accuracy: 0.822202872993\n",
1524 | "Precision: 0.806459974685\n",
1525 | "Recall: 0.822202872993\n",
1526 | "F1: 0.800218824471\n"
1527 | ]
1528 | }
1529 | ],
1530 | "source": [
1531 | "#corss validated final results of tuned Gradient Boosting\n",
1532 | "print(\"Accuracy:\",scores.mean())\n",
1533 | "print(\"Precision:\",scores2.mean())\n",
1534 | "print(\"Recall:\",scores3.mean())\n",
1535 | "print(\"F1:\",scores1.mean())"
1536 | ]
1537 | },
1538 | {
1539 | "cell_type": "code",
1540 | "execution_count": 260,
1541 | "metadata": {
1542 | "collapsed": false
1543 | },
1544 | "outputs": [
1545 | {
1546 | "data": {
1547 | "text/plain": [
1548 | "0.68193712829259523"
1549 | ]
1550 | },
1551 | "execution_count": 260,
1552 | "metadata": {},
1553 | "output_type": "execute_result"
1554 | }
1555 | ],
1556 | "source": [
1557 | "#lets crossvalidate log regression \n",
1558 | "#f1\n",
1559 | "import warnings\n",
1560 | "warnings.filterwarnings(\"ignore\")\n",
1561 | "scores4 = cross_val_score(LogisticRegression(C=0.8,random_state=10), credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10,scoring='f1_weighted')\n",
1562 | "scores4.mean()"
1563 | ]
1564 | },
1565 | {
1566 | "cell_type": "code",
1567 | "execution_count": 261,
1568 | "metadata": {
1569 | "collapsed": false
1570 | },
1571 | "outputs": [
1572 | {
1573 | "data": {
1574 | "text/plain": [
1575 | "0.77876670255926317"
1576 | ]
1577 | },
1578 | "execution_count": 261,
1579 | "metadata": {},
1580 | "output_type": "execute_result"
1581 | }
1582 | ],
1583 | "source": [
1584 | "#accuracy\n",
1585 | "scores5 = cross_val_score(LogisticRegression(C=0.8,random_state=10), credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10)\n",
1586 | "scores5.mean()"
1587 | ]
1588 | },
1589 | {
1590 | "cell_type": "code",
1591 | "execution_count": 262,
1592 | "metadata": {
1593 | "collapsed": false
1594 | },
1595 | "outputs": [
1596 | {
1597 | "data": {
1598 | "text/plain": [
1599 | "0.60652374650316576"
1600 | ]
1601 | },
1602 | "execution_count": 262,
1603 | "metadata": {},
1604 | "output_type": "execute_result"
1605 | }
1606 | ],
1607 | "source": [
1608 | "#precision \n",
1609 | "scores6 = cross_val_score(LogisticRegression(C=0.8,random_state=10), credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10,scoring='precision_weighted')\n",
1610 | "scores6.mean()"
1611 | ]
1612 | },
1613 | {
1614 | "cell_type": "code",
1615 | "execution_count": 263,
1616 | "metadata": {
1617 | "collapsed": false
1618 | },
1619 | "outputs": [
1620 | {
1621 | "data": {
1622 | "text/plain": [
1623 | "0.77876670255926317"
1624 | ]
1625 | },
1626 | "execution_count": 263,
1627 | "metadata": {},
1628 | "output_type": "execute_result"
1629 | }
1630 | ],
1631 | "source": [
1632 | "#Recall\n",
1633 | "scores7 = cross_val_score(LogisticRegression(C=0.8,random_state=10), credit.drop('default.payment.next.month',axis=1), credit['default.payment.next.month'],cv=10,scoring='recall_weighted')\n",
1634 | "scores7.mean()"
1635 | ]
1636 | },
1637 | {
1638 | "cell_type": "code",
1639 | "execution_count": 264,
1640 | "metadata": {
1641 | "collapsed": false
1642 | },
1643 | "outputs": [
1644 | {
1645 | "name": "stdout",
1646 | "output_type": "stream",
1647 | "text": [
1648 | "Accuracy: 0.778766702559\n",
1649 | "Precision: 0.606523746503\n",
1650 | "Recall: 0.778766702559\n",
1651 | "F1: 0.681937128293\n"
1652 | ]
1653 | }
1654 | ],
1655 | "source": [
1656 | "print(\"Accuracy:\",scores5.mean())\n",
1657 | "print(\"Precision:\",scores6.mean())\n",
1658 | "print(\"Recall:\",scores7.mean())\n",
1659 | "print(\"F1:\",scores4.mean())"
1660 | ]
1661 | },
1662 | {
1663 | "cell_type": "code",
1664 | "execution_count": 254,
1665 | "metadata": {
1666 | "collapsed": false
1667 | },
1668 | "outputs": [
1669 | {
1670 | "data": {
1671 | "image/png": "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\nAAAASUVORK5CYII=\n",
1672 | "text/plain": [
1673 | ""
1674 | ]
1675 | },
1676 | "metadata": {},
1677 | "output_type": "display_data"
1678 | }
1679 | ],
1680 | "source": [
1681 | "#Free form visualization of all metrics of Gradient boosting(final model) and Log_regression(benchmark model)\n",
1682 | "import seaborn as sns\n",
1683 | "all_scores=[]\n",
1684 | "all_scores.append(scores)\n",
1685 | "all_scores.append(scores2)\n",
1686 | "all_scores.append(scores3)\n",
1687 | "all_scores.append(scores1)\n",
1688 | "eval1=[]\n",
1689 | "eval1.append('Accuracy')\n",
1690 | "eval1.append('Precision')\n",
1691 | "eval1.append('Recall')\n",
1692 | "eval1.append('F1')\n",
1693 | "ax=sns.boxplot(y=all_scores,x=eval1,palette=(\"RdBu_r\"),linewidth=2.0,width=0.6)\n",
1694 | "#ax.set(ylim=(0.76, 0.82))"
1695 | ]
1696 | }
1697 | ],
1698 | "metadata": {
1699 | "kernelspec": {
1700 | "display_name": "Python 3",
1701 | "language": "python",
1702 | "name": "python3"
1703 | },
1704 | "language_info": {
1705 | "codemirror_mode": {
1706 | "name": "ipython",
1707 | "version": 3
1708 | },
1709 | "file_extension": ".py",
1710 | "mimetype": "text/x-python",
1711 | "name": "python",
1712 | "nbconvert_exporter": "python",
1713 | "pygments_lexer": "ipython3",
1714 | "version": "3.6.0"
1715 | }
1716 | },
1717 | "nbformat": 4,
1718 | "nbformat_minor": 2
1719 | }
1720 |
--------------------------------------------------------------------------------
/Project Report(By Nishant Sharma).pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nishant1005/Credit-Risk-Modeling-using-Machine-Learning/b0f8a0d6de3eb4c9072f65cff859d86d5f69d0fa/Project Report(By Nishant Sharma).pdf
--------------------------------------------------------------------------------
/Proposal.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/nishant1005/Credit-Risk-Modeling-using-Machine-Learning/b0f8a0d6de3eb4c9072f65cff859d86d5f69d0fa/Proposal.pdf
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Credit-Risk-Modeling-using-Machine/Deep-Learning
2 | Captstone Project by Nishant Sharma
3 |
4 | This is a comprehensive comparison of risk prediction models.
5 |
6 |
7 | Here is what you need to see with respect to the steps followed->
8 |
9 | 1.Data analysis and visualization can be found in Xploratory_analysis.ipynb
10 |
11 |
12 | 2.Preprocessing and Feed Forward Deep Neural network training and scores can be found in deep_default.ipynb
13 |
14 | 3.Preprocessing,ensemble methods training and model evaluations can be found in Preprocessing_modeling_refinements_evaluations.ipynb
15 |
16 |
17 | Results-
18 | Finally,Gradient Boosting with tuned parameters was selected with optimal training/testing scores accross 10 folds of data.
19 |
20 |
21 |
22 | References:
23 |
24 | http://ufldl.stanford.edu/tutorial/supervised/MultiLayerNeuralNetworks/
25 |
26 | https://medium.com/towards-data-science/decision-trees-and-random-forests-df0c3123f991
27 |
28 | http://www.fon.hum.uva.nl/praat/manual/Feedforward_neural_networks_1_1__The_learning_phase.html
29 |
30 | http://vinhkhuc.github.io/2015/03/01/how-many-folds-for-cross-validation.html
31 |
32 | http://fastml.com/classifier-calibration-with-platts-scaling-and-isotonic-regression/
33 |
34 | http://scikit-learn.org/0.15/auto_examples/grid_search_digits.html
35 |
36 | https://svds.com/learning-imbalanced-classes/
37 |
38 | https://stats.stackexchange.com/questions/117643/why-use-stratified-cross-validation-why-does-this-not-damage-variance-related-b
39 |
40 | https://keras.io/optimizers/
41 |
42 | https://keras.io/models/sequential/
43 |
44 | http://seaborn.pydata.org/generated/seaborn.boxplot.html#seaborn.boxplot
45 |
46 | https://jmetzen.github.io/2015-04-14/calibration.html
47 |
48 |
49 |
--------------------------------------------------------------------------------
/deep_default.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {
7 | "collapsed": true
8 | },
9 | "outputs": [],
10 | "source": [
11 | "import pandas as pd\n",
12 | "import numpy as np\n",
13 | "seed=10\n",
14 | "np.random.seed(seed)\n",
15 | "\n",
16 | "import tensorflow as tf\n",
17 | "tf.set_random_seed(seed)"
18 | ]
19 | },
20 | {
21 | "cell_type": "code",
22 | "execution_count": 2,
23 | "metadata": {},
24 | "outputs": [
25 | {
26 | "name": "stderr",
27 | "output_type": "stream",
28 | "text": [
29 | "Using TensorFlow backend.\n"
30 | ]
31 | }
32 | ],
33 | "source": [
34 | "from keras.models import Sequential\n",
35 | "from keras.layers import Dense\n",
36 | "from keras.layers import Activation\n",
37 | "from keras.layers.core import Dropout\n",
38 | "from keras import optimizers"
39 | ]
40 | },
41 | {
42 | "cell_type": "code",
43 | "execution_count": 3,
44 | "metadata": {
45 | "collapsed": true
46 | },
47 | "outputs": [],
48 | "source": [
49 | "import keras"
50 | ]
51 | },
52 | {
53 | "cell_type": "code",
54 | "execution_count": 4,
55 | "metadata": {
56 | "collapsed": true
57 | },
58 | "outputs": [],
59 | "source": [
60 | "credit=pd.read_csv(\"Credit.csv\")"
61 | ]
62 | },
63 | {
64 | "cell_type": "code",
65 | "execution_count": 5,
66 | "metadata": {},
67 | "outputs": [
68 | {
69 | "data": {
70 | "text/html": [
71 | "\n",
72 | "\n",
85 | "
\n",
86 | " \n",
87 | " \n",
88 | " | \n",
89 | " ID | \n",
90 | " LIMIT_BAL | \n",
91 | " SEX | \n",
92 | " EDUCATION | \n",
93 | " MARRIAGE | \n",
94 | " AGE | \n",
95 | " PAY_0 | \n",
96 | " PAY_2 | \n",
97 | " PAY_3 | \n",
98 | " PAY_4 | \n",
99 | " ... | \n",
100 | " BILL_AMT4 | \n",
101 | " BILL_AMT5 | \n",
102 | " BILL_AMT6 | \n",
103 | " PAY_AMT1 | \n",
104 | " PAY_AMT2 | \n",
105 | " PAY_AMT3 | \n",
106 | " PAY_AMT4 | \n",
107 | " PAY_AMT5 | \n",
108 | " PAY_AMT6 | \n",
109 | " default.payment.next.month | \n",
110 | "
\n",
111 | " \n",
112 | " \n",
113 | " \n",
114 | " 0 | \n",
115 | " 1 | \n",
116 | " 20000.0 | \n",
117 | " 2 | \n",
118 | " 2 | \n",
119 | " 1 | \n",
120 | " 24 | \n",
121 | " 2 | \n",
122 | " 2 | \n",
123 | " -1 | \n",
124 | " -1 | \n",
125 | " ... | \n",
126 | " 0.0 | \n",
127 | " 0.0 | \n",
128 | " 0.0 | \n",
129 | " 0.0 | \n",
130 | " 689.0 | \n",
131 | " 0.0 | \n",
132 | " 0.0 | \n",
133 | " 0.0 | \n",
134 | " 0.0 | \n",
135 | " 1 | \n",
136 | "
\n",
137 | " \n",
138 | " 1 | \n",
139 | " 2 | \n",
140 | " 120000.0 | \n",
141 | " 2 | \n",
142 | " 2 | \n",
143 | " 2 | \n",
144 | " 26 | \n",
145 | " -1 | \n",
146 | " 2 | \n",
147 | " 0 | \n",
148 | " 0 | \n",
149 | " ... | \n",
150 | " 3272.0 | \n",
151 | " 3455.0 | \n",
152 | " 3261.0 | \n",
153 | " 0.0 | \n",
154 | " 1000.0 | \n",
155 | " 1000.0 | \n",
156 | " 1000.0 | \n",
157 | " 0.0 | \n",
158 | " 2000.0 | \n",
159 | " 1 | \n",
160 | "
\n",
161 | " \n",
162 | " 2 | \n",
163 | " 3 | \n",
164 | " 90000.0 | \n",
165 | " 2 | \n",
166 | " 2 | \n",
167 | " 2 | \n",
168 | " 34 | \n",
169 | " 0 | \n",
170 | " 0 | \n",
171 | " 0 | \n",
172 | " 0 | \n",
173 | " ... | \n",
174 | " 14331.0 | \n",
175 | " 14948.0 | \n",
176 | " 15549.0 | \n",
177 | " 1518.0 | \n",
178 | " 1500.0 | \n",
179 | " 1000.0 | \n",
180 | " 1000.0 | \n",
181 | " 1000.0 | \n",
182 | " 5000.0 | \n",
183 | " 0 | \n",
184 | "
\n",
185 | " \n",
186 | " 3 | \n",
187 | " 4 | \n",
188 | " 50000.0 | \n",
189 | " 2 | \n",
190 | " 2 | \n",
191 | " 1 | \n",
192 | " 37 | \n",
193 | " 0 | \n",
194 | " 0 | \n",
195 | " 0 | \n",
196 | " 0 | \n",
197 | " ... | \n",
198 | " 28314.0 | \n",
199 | " 28959.0 | \n",
200 | " 29547.0 | \n",
201 | " 2000.0 | \n",
202 | " 2019.0 | \n",
203 | " 1200.0 | \n",
204 | " 1100.0 | \n",
205 | " 1069.0 | \n",
206 | " 1000.0 | \n",
207 | " 0 | \n",
208 | "
\n",
209 | " \n",
210 | " 4 | \n",
211 | " 5 | \n",
212 | " 50000.0 | \n",
213 | " 1 | \n",
214 | " 2 | \n",
215 | " 1 | \n",
216 | " 57 | \n",
217 | " -1 | \n",
218 | " 0 | \n",
219 | " -1 | \n",
220 | " 0 | \n",
221 | " ... | \n",
222 | " 20940.0 | \n",
223 | " 19146.0 | \n",
224 | " 19131.0 | \n",
225 | " 2000.0 | \n",
226 | " 36681.0 | \n",
227 | " 10000.0 | \n",
228 | " 9000.0 | \n",
229 | " 689.0 | \n",
230 | " 679.0 | \n",
231 | " 0 | \n",
232 | "
\n",
233 | " \n",
234 | "
\n",
235 | "
5 rows × 25 columns
\n",
236 | "
"
237 | ],
238 | "text/plain": [
239 | " ID LIMIT_BAL SEX EDUCATION MARRIAGE AGE PAY_0 PAY_2 PAY_3 PAY_4 \\\n",
240 | "0 1 20000.0 2 2 1 24 2 2 -1 -1 \n",
241 | "1 2 120000.0 2 2 2 26 -1 2 0 0 \n",
242 | "2 3 90000.0 2 2 2 34 0 0 0 0 \n",
243 | "3 4 50000.0 2 2 1 37 0 0 0 0 \n",
244 | "4 5 50000.0 1 2 1 57 -1 0 -1 0 \n",
245 | "\n",
246 | " ... BILL_AMT4 BILL_AMT5 BILL_AMT6 PAY_AMT1 \\\n",
247 | "0 ... 0.0 0.0 0.0 0.0 \n",
248 | "1 ... 3272.0 3455.0 3261.0 0.0 \n",
249 | "2 ... 14331.0 14948.0 15549.0 1518.0 \n",
250 | "3 ... 28314.0 28959.0 29547.0 2000.0 \n",
251 | "4 ... 20940.0 19146.0 19131.0 2000.0 \n",
252 | "\n",
253 | " PAY_AMT2 PAY_AMT3 PAY_AMT4 PAY_AMT5 PAY_AMT6 \\\n",
254 | "0 689.0 0.0 0.0 0.0 0.0 \n",
255 | "1 1000.0 1000.0 1000.0 0.0 2000.0 \n",
256 | "2 1500.0 1000.0 1000.0 1000.0 5000.0 \n",
257 | "3 2019.0 1200.0 1100.0 1069.0 1000.0 \n",
258 | "4 36681.0 10000.0 9000.0 689.0 679.0 \n",
259 | "\n",
260 | " default.payment.next.month \n",
261 | "0 1 \n",
262 | "1 1 \n",
263 | "2 0 \n",
264 | "3 0 \n",
265 | "4 0 \n",
266 | "\n",
267 | "[5 rows x 25 columns]"
268 | ]
269 | },
270 | "execution_count": 5,
271 | "metadata": {},
272 | "output_type": "execute_result"
273 | }
274 | ],
275 | "source": [
276 | "credit.head(5)"
277 | ]
278 | },
279 | {
280 | "cell_type": "code",
281 | "execution_count": 6,
282 | "metadata": {
283 | "collapsed": true
284 | },
285 | "outputs": [],
286 | "source": [
287 | "#for convenience i have performed preprocessing here again,same is present for other algo's in preprocessing_and_modelling notebook\n",
288 | "credit.rename(columns={'PAY_0':'PAY_1'}, inplace=True)\n",
289 | "credit[\"EDUCATION\"]=credit[\"EDUCATION\"].map({0:4,1:1,2:2,3:3,4:4,5:4,6:4})\n",
290 | "credit[\"MARRIAGE\"]=credit[\"MARRIAGE\"].map({0:3,1:1,2:2,3:3})\n",
291 | "from sklearn.preprocessing import MinMaxScaler\n",
292 | "\n",
293 | "scaler = MinMaxScaler()\n",
294 | "scaler.fit_transform(credit)\n",
295 | "\n",
296 | "#split\n",
297 | "credit = credit.drop([\"ID\"],axis=1)\n",
298 | "\n",
299 | "\n",
300 | "from sklearn.model_selection import train_test_split\n",
301 | "\n",
302 | "train, test = train_test_split(credit, test_size = 0.3)"
303 | ]
304 | },
305 | {
306 | "cell_type": "code",
307 | "execution_count": 7,
308 | "metadata": {
309 | "collapsed": true
310 | },
311 | "outputs": [],
312 | "source": [
313 | "X_train = train.drop('default.payment.next.month',axis=1)\n",
314 | "\n",
315 | "y_train = train['default.payment.next.month']\n",
316 | "\n",
317 | "X_test = test.drop('default.payment.next.month',axis=1)\n",
318 | "\n",
319 | "y_test = test['default.payment.next.month']"
320 | ]
321 | },
322 | {
323 | "cell_type": "code",
324 | "execution_count": 40,
325 | "metadata": {
326 | "collapsed": true
327 | },
328 | "outputs": [],
329 | "source": [
330 | "model = Sequential()"
331 | ]
332 | },
333 | {
334 | "cell_type": "code",
335 | "execution_count": 68,
336 | "metadata": {
337 | "collapsed": true
338 | },
339 | "outputs": [],
340 | "source": [
341 | "sgd = optimizers.SGD(lr=0.01, decay=1e-6)"
342 | ]
343 | },
344 | {
345 | "cell_type": "code",
346 | "execution_count": 69,
347 | "metadata": {
348 | "collapsed": true
349 | },
350 | "outputs": [],
351 | "source": [
352 | "#Training Feed Forward Neural network.\n",
353 | "model.add(Dense(128, input_dim=(23), activation='relu'))\n",
354 | "model.add(Dense(64, activation='relu'))\n",
355 | "model.add(Dense(32, activation='relu'))\n",
356 | "model.add(Dense(32, activation='relu'))\n",
357 | "model.add(Dense(16, activation='relu'))\n",
358 | "model.add(Dense(8, activation='relu'))\n",
359 | "model.add(Dense(4, activation='relu'))\n",
360 | "\n",
361 | "model.add(Dense(1, activation='sigmoid'))"
362 | ]
363 | },
364 | {
365 | "cell_type": "code",
366 | "execution_count": 70,
367 | "metadata": {
368 | "collapsed": true
369 | },
370 | "outputs": [],
371 | "source": [
372 | "model.compile(loss='binary_crossentropy', optimizer= sgd, metrics=['accuracy'])"
373 | ]
374 | },
375 | {
376 | "cell_type": "code",
377 | "execution_count": 71,
378 | "metadata": {},
379 | "outputs": [
380 | {
381 | "name": "stdout",
382 | "output_type": "stream",
383 | "text": [
384 | "Train on 21000 samples, validate on 9000 samples\n",
385 | "Epoch 1/10\n",
386 | "21000/21000 [==============================] - 21s - loss: 0.5717 - acc: 0.7801 - val_loss: 0.5340 - val_acc: 0.7758\n",
387 | "Epoch 2/10\n",
388 | "21000/21000 [==============================] - 13s - loss: 0.5274 - acc: 0.7801 - val_loss: 0.5323 - val_acc: 0.7758\n",
389 | "Epoch 3/10\n",
390 | "21000/21000 [==============================] - 13s - loss: 0.5269 - acc: 0.7801 - val_loss: 0.5323 - val_acc: 0.7758\n",
391 | "Epoch 4/10\n",
392 | "21000/21000 [==============================] - 13s - loss: 0.5268 - acc: 0.7801 - val_loss: 0.5322 - val_acc: 0.7758\n",
393 | "Epoch 5/10\n",
394 | "21000/21000 [==============================] - 12s - loss: 0.5268 - acc: 0.7801 - val_loss: 0.5323 - val_acc: 0.7758\n",
395 | "Epoch 6/10\n",
396 | "21000/21000 [==============================] - 12s - loss: 0.5268 - acc: 0.7801 - val_loss: 0.5322 - val_acc: 0.7758\n",
397 | "Epoch 7/10\n",
398 | "21000/21000 [==============================] - 12s - loss: 0.5268 - acc: 0.7801 - val_loss: 0.5325 - val_acc: 0.7758\n",
399 | "Epoch 8/10\n",
400 | "21000/21000 [==============================] - 12s - loss: 0.5268 - acc: 0.7801 - val_loss: 0.5323 - val_acc: 0.7758\n",
401 | "Epoch 9/10\n",
402 | "21000/21000 [==============================] - 12s - loss: 0.5269 - acc: 0.7801 - val_loss: 0.5322 - val_acc: 0.7758\n",
403 | "Epoch 10/10\n",
404 | "21000/21000 [==============================] - 12s - loss: 0.5268 - acc: 0.7801 - val_loss: 0.5323 - val_acc: 0.7758\n"
405 | ]
406 | },
407 | {
408 | "data": {
409 | "text/plain": [
410 | ""
411 | ]
412 | },
413 | "execution_count": 71,
414 | "metadata": {},
415 | "output_type": "execute_result"
416 | }
417 | ],
418 | "source": [
419 | "model.fit(np.array(X_train), np.array(y_train), batch_size=100,validation_data=(np.array(X_test),np.array(y_test)), epochs=10,verbose=1)"
420 | ]
421 | },
422 | {
423 | "cell_type": "code",
424 | "execution_count": 53,
425 | "metadata": {},
426 | "outputs": [
427 | {
428 | "name": "stdout",
429 | "output_type": "stream",
430 | "text": [
431 | "9000/9000 [==============================] - 3s \n"
432 | ]
433 | },
434 | {
435 | "data": {
436 | "text/plain": [
437 | "[0.52837420458263817, 0.77577777777777779]"
438 | ]
439 | },
440 | "execution_count": 53,
441 | "metadata": {},
442 | "output_type": "execute_result"
443 | }
444 | ],
445 | "source": [
446 | "#accuracy\n",
447 | "model.evaluate(np.array(X_test),np.array(y_test))"
448 | ]
449 | },
450 | {
451 | "cell_type": "code",
452 | "execution_count": 54,
453 | "metadata": {
454 | "collapsed": true
455 | },
456 | "outputs": [],
457 | "source": [
458 | "y_pred=model.predict(np.array(X_test))"
459 | ]
460 | },
461 | {
462 | "cell_type": "code",
463 | "execution_count": 56,
464 | "metadata": {},
465 | "outputs": [
466 | {
467 | "name": "stderr",
468 | "output_type": "stream",
469 | "text": [
470 | "C:\\ProgramData\\Anaconda3\\envs\\tensor\\lib\\site-packages\\sklearn\\metrics\\classification.py:1113: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
471 | " 'precision', 'predicted', average, warn_for)\n"
472 | ]
473 | },
474 | {
475 | "data": {
476 | "text/plain": [
477 | "0.60183116049382712"
478 | ]
479 | },
480 | "execution_count": 56,
481 | "metadata": {},
482 | "output_type": "execute_result"
483 | }
484 | ],
485 | "source": [
486 | "#precision\n",
487 | "from sklearn.metrics import precision_score\n",
488 | "precision_score(y_test, y_pred.round(), average='weighted') "
489 | ]
490 | },
491 | {
492 | "cell_type": "code",
493 | "execution_count": 58,
494 | "metadata": {},
495 | "outputs": [
496 | {
497 | "name": "stderr",
498 | "output_type": "stream",
499 | "text": [
500 | "C:\\ProgramData\\Anaconda3\\envs\\tensor\\lib\\site-packages\\sklearn\\metrics\\classification.py:1113: UndefinedMetricWarning: Precision is ill-defined and being set to 0.0 in labels with no predicted samples.\n",
501 | " 'precision', 'predicted', average, warn_for)\n"
502 | ]
503 | }
504 | ],
505 | "source": [
506 | "precision=precision_score(y_test, y_pred.round(), average='weighted') "
507 | ]
508 | },
509 | {
510 | "cell_type": "code",
511 | "execution_count": 60,
512 | "metadata": {
513 | "collapsed": true
514 | },
515 | "outputs": [],
516 | "source": [
517 | "#recall\n",
518 | "from sklearn.metrics import recall_score\n",
519 | "\n",
520 | "recall=recall_score(y_test, y_pred.round(), average='weighted')"
521 | ]
522 | },
523 | {
524 | "cell_type": "code",
525 | "execution_count": 72,
526 | "metadata": {},
527 | "outputs": [
528 | {
529 | "data": {
530 | "text/plain": [
531 | "0.77577777777777779"
532 | ]
533 | },
534 | "execution_count": 72,
535 | "metadata": {},
536 | "output_type": "execute_result"
537 | }
538 | ],
539 | "source": [
540 | "recall"
541 | ]
542 | },
543 | {
544 | "cell_type": "code",
545 | "execution_count": 61,
546 | "metadata": {},
547 | "outputs": [
548 | {
549 | "data": {
550 | "text/plain": [
551 | "0.67782260598729127"
552 | ]
553 | },
554 | "execution_count": 61,
555 | "metadata": {},
556 | "output_type": "execute_result"
557 | }
558 | ],
559 | "source": [
560 | "#F1 score\n",
561 | "F1 = 2 * (precision * recall) / (precision + recall)\n",
562 | "F1"
563 | ]
564 | }
565 | ],
566 | "metadata": {
567 | "kernelspec": {
568 | "display_name": "Python 3",
569 | "language": "python",
570 | "name": "python3"
571 | },
572 | "language_info": {
573 | "codemirror_mode": {
574 | "name": "ipython",
575 | "version": 3
576 | },
577 | "file_extension": ".py",
578 | "mimetype": "text/x-python",
579 | "name": "python",
580 | "nbconvert_exporter": "python",
581 | "pygments_lexer": "ipython3",
582 | "version": "3.5.3"
583 | }
584 | },
585 | "nbformat": 4,
586 | "nbformat_minor": 2
587 | }
588 |
--------------------------------------------------------------------------------