├── README.md
├── End to End Machine Learning Workflow on Titanic Data.ipynb
├── .gitignore
├── datasets
├── iris_data.csv
├── thyroid_data.csv
└── diabetes.csv
├── Machine Learning Analysis on Thyroidism.ipynb
└── Classification Model Evaluation.ipynb
/README.md:
--------------------------------------------------------------------------------
1 | # Machine-Learning-With-Python (Hands On Practice)
2 |
3 | **GET YOUR HANDS DIRTY BY Practicing lots of examples on important techniques used in Ml**.
4 |
5 | This repository contains machine learning related projects. These mini projects are done using Jupyter notebook. This covers several publically available datasets.
6 |
7 | Includes:
8 |
9 | * Data preprocessing
10 | * Data cleaning
11 | * Data analysis
12 | * Model selection
13 | * Model evaluation techniques.
14 |
15 | To be implemented:
16 | * Techniques for clustering
17 | * Scikit Learn pipeline implementation
18 |
--------------------------------------------------------------------------------
/End to End Machine Learning Workflow on Titanic Data.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# End to End Machine Learning Workflow on Titanic Data"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": null,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": []
16 | }
17 | ],
18 | "metadata": {
19 | "kernelspec": {
20 | "display_name": "Python 3",
21 | "language": "python",
22 | "name": "python3"
23 | },
24 | "language_info": {
25 | "codemirror_mode": {
26 | "name": "ipython",
27 | "version": 3
28 | },
29 | "file_extension": ".py",
30 | "mimetype": "text/x-python",
31 | "name": "python",
32 | "nbconvert_exporter": "python",
33 | "pygments_lexer": "ipython3",
34 | "version": "3.6.9"
35 | }
36 | },
37 | "nbformat": 4,
38 | "nbformat_minor": 2
39 | }
40 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 | *$py.class
5 |
6 | # C extensions
7 | *.so
8 |
9 | # Distribution / packaging
10 | .Python
11 | env/
12 | build/
13 | develop-eggs/
14 | dist/
15 | downloads/
16 | eggs/
17 | .eggs/
18 | lib/
19 | lib64/
20 | parts/
21 | sdist/
22 | var/
23 | wheels/
24 | *.egg-info/
25 | .installed.cfg
26 | *.egg
27 |
28 | # PyInstaller
29 | # Usually these files are written by a python script from a template
30 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
31 | *.manifest
32 | *.spec
33 |
34 | # Installer logs
35 | pip-log.txt
36 | pip-delete-this-directory.txt
37 |
38 | # Unit test / coverage reports
39 | htmlcov/
40 | .tox/
41 | .coverage
42 | .coverage.*
43 | .cache
44 | nosetests.xml
45 | coverage.xml
46 | *.cover
47 | .hypothesis/
48 |
49 | # Translations
50 | *.mo
51 | *.pot
52 |
53 | # Django stuff:
54 | *.log
55 | local_settings.py
56 |
57 | # Flask stuff:
58 | instance/
59 | .webassets-cache
60 |
61 | # Scrapy stuff:
62 | .scrapy
63 |
64 | # Sphinx documentation
65 | docs/_build/
66 |
67 | # PyBuilder
68 | target/
69 |
70 | # Jupyter Notebook
71 | .ipynb_checkpoints
72 |
73 | # pyenv
74 | .python-version
75 |
76 | # celery beat schedule file
77 | celerybeat-schedule
78 |
79 | # SageMath parsed files
80 | *.sage.py
81 |
82 | # dotenv
83 | .env
84 |
85 | # virtualenv
86 | .venv
87 | venv/
88 | ENV/
89 |
90 | # Spyder project settings
91 | .spyderproject
92 | .spyproject
93 |
94 | # Rope project settings
95 | .ropeproject
96 |
97 | # mkdocs documentation
98 | /site
99 |
100 | # mypy
101 | .mypy_cache/
102 |
--------------------------------------------------------------------------------
/datasets/iris_data.csv:
--------------------------------------------------------------------------------
1 | 5.1,3.5,1.4,0.2,Iris-setosa
2 | 4.9,3.0,1.4,0.2,Iris-setosa
3 | 4.7,3.2,1.3,0.2,Iris-setosa
4 | 4.6,3.1,1.5,0.2,Iris-setosa
5 | 5.0,3.6,1.4,0.2,Iris-setosa
6 | 5.4,3.9,1.7,0.4,Iris-setosa
7 | 4.6,3.4,1.4,0.3,Iris-setosa
8 | 5.0,3.4,1.5,0.2,Iris-setosa
9 | 4.4,2.9,1.4,0.2,Iris-setosa
10 | 4.9,3.1,1.5,0.1,Iris-setosa
11 | 5.4,3.7,1.5,0.2,Iris-setosa
12 | 4.8,3.4,1.6,0.2,Iris-setosa
13 | 4.8,3.0,1.4,0.1,Iris-setosa
14 | 4.3,3.0,1.1,0.1,Iris-setosa
15 | 5.8,4.0,1.2,0.2,Iris-setosa
16 | 5.7,4.4,1.5,0.4,Iris-setosa
17 | 5.4,3.9,1.3,0.4,Iris-setosa
18 | 5.1,3.5,1.4,0.3,Iris-setosa
19 | 5.7,3.8,1.7,0.3,Iris-setosa
20 | 5.1,3.8,1.5,0.3,Iris-setosa
21 | 5.4,3.4,1.7,0.2,Iris-setosa
22 | 5.1,3.7,1.5,0.4,Iris-setosa
23 | 4.6,3.6,1.0,0.2,Iris-setosa
24 | 5.1,3.3,1.7,0.5,Iris-setosa
25 | 4.8,3.4,1.9,0.2,Iris-setosa
26 | 5.0,3.0,1.6,0.2,Iris-setosa
27 | 5.0,3.4,1.6,0.4,Iris-setosa
28 | 5.2,3.5,1.5,0.2,Iris-setosa
29 | 5.2,3.4,1.4,0.2,Iris-setosa
30 | 4.7,3.2,1.6,0.2,Iris-setosa
31 | 4.8,3.1,1.6,0.2,Iris-setosa
32 | 5.4,3.4,1.5,0.4,Iris-setosa
33 | 5.2,4.1,1.5,0.1,Iris-setosa
34 | 5.5,4.2,1.4,0.2,Iris-setosa
35 | 4.9,3.1,1.5,0.1,Iris-setosa
36 | 5.0,3.2,1.2,0.2,Iris-setosa
37 | 5.5,3.5,1.3,0.2,Iris-setosa
38 | 4.9,3.1,1.5,0.1,Iris-setosa
39 | 4.4,3.0,1.3,0.2,Iris-setosa
40 | 5.1,3.4,1.5,0.2,Iris-setosa
41 | 5.0,3.5,1.3,0.3,Iris-setosa
42 | 4.5,2.3,1.3,0.3,Iris-setosa
43 | 4.4,3.2,1.3,0.2,Iris-setosa
44 | 5.0,3.5,1.6,0.6,Iris-setosa
45 | 5.1,3.8,1.9,0.4,Iris-setosa
46 | 4.8,3.0,1.4,0.3,Iris-setosa
47 | 5.1,3.8,1.6,0.2,Iris-setosa
48 | 4.6,3.2,1.4,0.2,Iris-setosa
49 | 5.3,3.7,1.5,0.2,Iris-setosa
50 | 5.0,3.3,1.4,0.2,Iris-setosa
51 | 7.0,3.2,4.7,1.4,Iris-versicolor
52 | 6.4,3.2,4.5,1.5,Iris-versicolor
53 | 6.9,3.1,4.9,1.5,Iris-versicolor
54 | 5.5,2.3,4.0,1.3,Iris-versicolor
55 | 6.5,2.8,4.6,1.5,Iris-versicolor
56 | 5.7,2.8,4.5,1.3,Iris-versicolor
57 | 6.3,3.3,4.7,1.6,Iris-versicolor
58 | 4.9,2.4,3.3,1.0,Iris-versicolor
59 | 6.6,2.9,4.6,1.3,Iris-versicolor
60 | 5.2,2.7,3.9,1.4,Iris-versicolor
61 | 5.0,2.0,3.5,1.0,Iris-versicolor
62 | 5.9,3.0,4.2,1.5,Iris-versicolor
63 | 6.0,2.2,4.0,1.0,Iris-versicolor
64 | 6.1,2.9,4.7,1.4,Iris-versicolor
65 | 5.6,2.9,3.6,1.3,Iris-versicolor
66 | 6.7,3.1,4.4,1.4,Iris-versicolor
67 | 5.6,3.0,4.5,1.5,Iris-versicolor
68 | 5.8,2.7,4.1,1.0,Iris-versicolor
69 | 6.2,2.2,4.5,1.5,Iris-versicolor
70 | 5.6,2.5,3.9,1.1,Iris-versicolor
71 | 5.9,3.2,4.8,1.8,Iris-versicolor
72 | 6.1,2.8,4.0,1.3,Iris-versicolor
73 | 6.3,2.5,4.9,1.5,Iris-versicolor
74 | 6.1,2.8,4.7,1.2,Iris-versicolor
75 | 6.4,2.9,4.3,1.3,Iris-versicolor
76 | 6.6,3.0,4.4,1.4,Iris-versicolor
77 | 6.8,2.8,4.8,1.4,Iris-versicolor
78 | 6.7,3.0,5.0,1.7,Iris-versicolor
79 | 6.0,2.9,4.5,1.5,Iris-versicolor
80 | 5.7,2.6,3.5,1.0,Iris-versicolor
81 | 5.5,2.4,3.8,1.1,Iris-versicolor
82 | 5.5,2.4,3.7,1.0,Iris-versicolor
83 | 5.8,2.7,3.9,1.2,Iris-versicolor
84 | 6.0,2.7,5.1,1.6,Iris-versicolor
85 | 5.4,3.0,4.5,1.5,Iris-versicolor
86 | 6.0,3.4,4.5,1.6,Iris-versicolor
87 | 6.7,3.1,4.7,1.5,Iris-versicolor
88 | 6.3,2.3,4.4,1.3,Iris-versicolor
89 | 5.6,3.0,4.1,1.3,Iris-versicolor
90 | 5.5,2.5,4.0,1.3,Iris-versicolor
91 | 5.5,2.6,4.4,1.2,Iris-versicolor
92 | 6.1,3.0,4.6,1.4,Iris-versicolor
93 | 5.8,2.6,4.0,1.2,Iris-versicolor
94 | 5.0,2.3,3.3,1.0,Iris-versicolor
95 | 5.6,2.7,4.2,1.3,Iris-versicolor
96 | 5.7,3.0,4.2,1.2,Iris-versicolor
97 | 5.7,2.9,4.2,1.3,Iris-versicolor
98 | 6.2,2.9,4.3,1.3,Iris-versicolor
99 | 5.1,2.5,3.0,1.1,Iris-versicolor
100 | 5.7,2.8,4.1,1.3,Iris-versicolor
101 | 6.3,3.3,6.0,2.5,Iris-virginica
102 | 5.8,2.7,5.1,1.9,Iris-virginica
103 | 7.1,3.0,5.9,2.1,Iris-virginica
104 | 6.3,2.9,5.6,1.8,Iris-virginica
105 | 6.5,3.0,5.8,2.2,Iris-virginica
106 | 7.6,3.0,6.6,2.1,Iris-virginica
107 | 4.9,2.5,4.5,1.7,Iris-virginica
108 | 7.3,2.9,6.3,1.8,Iris-virginica
109 | 6.7,2.5,5.8,1.8,Iris-virginica
110 | 7.2,3.6,6.1,2.5,Iris-virginica
111 | 6.5,3.2,5.1,2.0,Iris-virginica
112 | 6.4,2.7,5.3,1.9,Iris-virginica
113 | 6.8,3.0,5.5,2.1,Iris-virginica
114 | 5.7,2.5,5.0,2.0,Iris-virginica
115 | 5.8,2.8,5.1,2.4,Iris-virginica
116 | 6.4,3.2,5.3,2.3,Iris-virginica
117 | 6.5,3.0,5.5,1.8,Iris-virginica
118 | 7.7,3.8,6.7,2.2,Iris-virginica
119 | 7.7,2.6,6.9,2.3,Iris-virginica
120 | 6.0,2.2,5.0,1.5,Iris-virginica
121 | 6.9,3.2,5.7,2.3,Iris-virginica
122 | 5.6,2.8,4.9,2.0,Iris-virginica
123 | 7.7,2.8,6.7,2.0,Iris-virginica
124 | 6.3,2.7,4.9,1.8,Iris-virginica
125 | 6.7,3.3,5.7,2.1,Iris-virginica
126 | 7.2,3.2,6.0,1.8,Iris-virginica
127 | 6.2,2.8,4.8,1.8,Iris-virginica
128 | 6.1,3.0,4.9,1.8,Iris-virginica
129 | 6.4,2.8,5.6,2.1,Iris-virginica
130 | 7.2,3.0,5.8,1.6,Iris-virginica
131 | 7.4,2.8,6.1,1.9,Iris-virginica
132 | 7.9,3.8,6.4,2.0,Iris-virginica
133 | 6.4,2.8,5.6,2.2,Iris-virginica
134 | 6.3,2.8,5.1,1.5,Iris-virginica
135 | 6.1,2.6,5.6,1.4,Iris-virginica
136 | 7.7,3.0,6.1,2.3,Iris-virginica
137 | 6.3,3.4,5.6,2.4,Iris-virginica
138 | 6.4,3.1,5.5,1.8,Iris-virginica
139 | 6.0,3.0,4.8,1.8,Iris-virginica
140 | 6.9,3.1,5.4,2.1,Iris-virginica
141 | 6.7,3.1,5.6,2.4,Iris-virginica
142 | 6.9,3.1,5.1,2.3,Iris-virginica
143 | 5.8,2.7,5.1,1.9,Iris-virginica
144 | 6.8,3.2,5.9,2.3,Iris-virginica
145 | 6.7,3.3,5.7,2.5,Iris-virginica
146 | 6.7,3.0,5.2,2.3,Iris-virginica
147 | 6.3,2.5,5.0,1.9,Iris-virginica
148 | 6.5,3.0,5.2,2.0,Iris-virginica
149 | 6.2,3.4,5.4,2.3,Iris-virginica
150 | 5.9,3.0,5.1,1.8,Iris-virginica
151 |
152 |
--------------------------------------------------------------------------------
/datasets/thyroid_data.csv:
--------------------------------------------------------------------------------
1 | T3_resin,Serum_thyroxin,Serum_triiodothyronine,Basal_TSH,Abs_diff_TSH,Outcome
2 | 107,10.1,2.2,0.9,2.7,1
3 | 113,9.9,3.1,2,5.9,1
4 | 127,12.9,2.4,1.4,0.6,1
5 | 109,5.3,1.6,1.4,1.5,1
6 | 105,7.3,1.5,1.5,-0.1,1
7 | 105,6.1,2.1,1.4,7,1
8 | 110,10.4,1.6,1.6,2.7,1
9 | 114,9.9,2.4,1.5,5.7,1
10 | 106,9.4,2.2,1.5,0,1
11 | 107,13,1.1,0.9,3.1,1
12 | 106,4.2,1.2,1.6,1.4,1
13 | 110,11.3,2.3,0.9,3.3,1
14 | 116,9.2,2.7,1,4.2,1
15 | 112,8.1,1.9,3.7,2,1
16 | 122,9.7,1.6,0.9,2.2,1
17 | 109,8.4,2.1,1.1,3.6,1
18 | 111,8.4,1.5,0.8,1.2,1
19 | 114,6.7,1.5,1,3.5,1
20 | 119,10.6,2.1,1.3,1.1,1
21 | 115,7.1,1.3,1.3,2,1
22 | 101,7.8,1.2,1,1.7,1
23 | 103,10.1,1.3,0.7,0.1,1
24 | 109,10.4,1.9,0.4,-0.1,1
25 | 102,7.6,1.8,2,2.5,1
26 | 121,10.1,1.7,1.3,0.1,1
27 | 100,6.1,2.4,1.8,3.8,1
28 | 106,9.6,2.4,1,1.3,1
29 | 116,10.1,2.2,1.6,0.8,1
30 | 105,11.1,2,1,1,1
31 | 110,10.4,1.8,1,2.3,1
32 | 120,8.4,1.1,1.4,1.4,1
33 | 116,11.1,2,1.2,2.3,1
34 | 110,7.8,1.9,2.1,6.4,1
35 | 90,8.1,1.6,1.4,1.1,1
36 | 117,12.2,1.9,1.2,3.9,1
37 | 117,11,1.4,1.5,2.1,1
38 | 113,9,2,1.8,1.6,1
39 | 106,9.4,1.5,0.8,0.5,1
40 | 130,9.5,1.7,0.4,3.2,1
41 | 100,10.5,2.4,0.9,1.9,1
42 | 121,10.1,2.4,0.8,3,1
43 | 110,9.2,1.6,1.5,0.3,1
44 | 129,11.9,2.7,1.2,3.5,1
45 | 121,13.5,1.5,1.6,0.5,1
46 | 123,8.1,2.3,1,5.1,1
47 | 107,8.4,1.8,1.5,0.8,1
48 | 109,10,1.3,1.8,4.3,1
49 | 120,6.8,1.9,1.3,1.9,1
50 | 100,9.5,2.5,1.3,-0.2,1
51 | 118,8.1,1.9,1.5,13.7,1
52 | 100,11.3,2.5,0.7,-0.3,1
53 | 103,12.2,1.2,1.3,2.7,1
54 | 115,8.1,1.7,0.6,2.2,1
55 | 119,8,2,0.6,3.2,1
56 | 106,9.4,1.7,0.9,3.1,1
57 | 114,10.9,2.1,0.3,1.4,1
58 | 93,8.9,1.5,0.8,2.7,1
59 | 120,10.4,2.1,1.1,1.8,1
60 | 106,11.3,1.8,0.9,1,1
61 | 110,8.7,1.9,1.6,4.4,1
62 | 103,8.1,1.4,0.5,3.8,1
63 | 101,7.1,2.2,0.8,2.2,1
64 | 115,10.4,1.8,1.6,2,1
65 | 116,10,1.7,1.5,4.3,1
66 | 117,9.2,1.9,1.5,6.8,1
67 | 106,6.7,1.5,1.2,3.9,1
68 | 118,10.5,2.1,0.7,3.5,1
69 | 97,7.8,1.3,1.2,0.9,1
70 | 113,11.1,1.7,0.8,2.3,1
71 | 104,6.3,2,1.2,4,1
72 | 96,9.4,1.5,1,3.1,1
73 | 120,12.4,2.4,0.8,1.9,1
74 | 133,9.7,2.9,0.8,1.9,1
75 | 126,9.4,2.3,1,4,1
76 | 113,8.5,1.8,0.8,0.5,1
77 | 109,9.7,1.4,1.1,2.1,1
78 | 119,12.9,1.5,1.3,3.6,1
79 | 101,7.1,1.6,1.5,1.6,1
80 | 108,10.4,2.1,1.3,2.4,1
81 | 117,6.7,2.2,1.8,6.7,1
82 | 115,15.3,2.3,2,2,1
83 | 91,8,1.7,2.1,4.6,1
84 | 103,8.5,1.8,1.9,1.1,1
85 | 98,9.1,1.4,1.9,-0.3,1
86 | 111,7.8,2,1.8,4.1,1
87 | 107,13,1.5,2.8,1.7,1
88 | 119,11.4,2.3,2.2,1.6,1
89 | 122,11.8,2.7,1.7,2.3,1
90 | 105,8.1,2,1.9,-0.5,1
91 | 109,7.6,1.3,2.2,1.9,1
92 | 105,9.5,1.8,1.6,3.6,1
93 | 112,5.9,1.7,2,1.3,1
94 | 112,9.5,2,1.2,0.7,1
95 | 98,8.6,1.6,1.6,6,1
96 | 109,12.4,2.3,1.7,0.8,1
97 | 114,9.1,2.6,1.5,1.5,1
98 | 114,11.1,2.4,2,-0.3,1
99 | 110,8.4,1.4,1,1.9,1
100 | 120,7.1,1.2,1.5,4.3,1
101 | 108,10.9,1.2,1.9,1,1
102 | 108,8.7,1.2,2.2,2.5,1
103 | 116,11.9,1.8,1.9,1.5,1
104 | 113,11.5,1.5,1.9,2.9,1
105 | 105,7,1.5,2.7,4.3,1
106 | 114,8.4,1.6,1.6,-0.2,1
107 | 114,8.1,1.6,1.6,0.5,1
108 | 105,11.1,1.1,0.8,1.2,1
109 | 107,13.8,1.5,1,1.9,1
110 | 116,11.5,1.8,1.4,5.4,1
111 | 102,9.5,1.4,1.1,1.6,1
112 | 116,16.1,0.9,1.3,1.5,1
113 | 118,10.6,1.8,1.4,3,1
114 | 109,8.9,1.7,1,0.9,1
115 | 110,7,1,1.6,4.3,1
116 | 104,9.6,1.1,1.3,0.8,1
117 | 105,8.7,1.5,1.1,1.5,1
118 | 102,8.5,1.2,1.3,1.4,1
119 | 112,6.8,1.7,1.4,3.3,1
120 | 111,8.5,1.6,1.1,3.9,1
121 | 111,8.5,1.6,1.2,7.7,1
122 | 103,7.3,1,0.7,0.5,1
123 | 98,10.4,1.6,2.3,-0.7,1
124 | 117,7.8,2,1,3.9,1
125 | 111,9.1,1.7,1.2,4.1,1
126 | 101,6.3,1.5,0.9,2.9,1
127 | 106,8.9,0.7,1,2.3,1
128 | 102,8.4,1.5,0.8,2.4,1
129 | 115,10.6,0.8,2.1,4.6,1
130 | 130,10,1.6,0.9,4.6,1
131 | 101,6.7,1.3,1,5.7,1
132 | 110,6.3,1,0.8,1,1
133 | 103,9.5,2.9,1.4,-0.1,1
134 | 113,7.8,2,1.1,3,1
135 | 112,10.6,1.6,0.9,-0.1,1
136 | 118,6.5,1.2,1.2,1.7,1
137 | 109,9.2,1.8,1.1,4.4,1
138 | 116,7.8,1.4,1.1,3.7,1
139 | 127,7.7,1.8,1.9,6.4,1
140 | 108,6.5,1,0.9,1.5,1
141 | 108,7.1,1.3,1.6,2.2,1
142 | 105,5.7,1,0.9,0.9,1
143 | 98,5.7,0.4,1.3,2.8,1
144 | 112,6.5,1.2,1.2,2,1
145 | 118,12.2,1.5,1,2.3,1
146 | 94,7.5,1.2,1.3,4.4,1
147 | 126,10.4,1.7,1.2,3.5,1
148 | 114,7.5,1.1,1.6,4.4,1
149 | 111,11.9,2.3,0.9,3.8,1
150 | 104,6.1,1.8,0.5,0.8,1
151 | 102,6.6,1.2,1.4,1.3,1
152 | 139,16.4,3.8,1.1,-0.2,2
153 | 111,16,2.1,0.9,-0.1,2
154 | 113,17.2,1.8,1,0,2
155 | 65,25.3,5.8,1.3,0.2,2
156 | 88,24.1,5.5,0.8,0.1,2
157 | 65,18.2,10,1.3,0.1,2
158 | 134,16.4,4.8,0.6,0.1,2
159 | 110,20.3,3.7,0.6,0.2,2
160 | 67,23.3,7.4,1.8,-0.6,2
161 | 95,11.1,2.7,1.6,-0.3,2
162 | 89,14.3,4.1,0.5,0.2,2
163 | 89,23.8,5.4,0.5,0.1,2
164 | 88,12.9,2.7,0.1,0.2,2
165 | 105,17.4,1.6,0.3,0.4,2
166 | 89,20.1,7.3,1.1,-0.2,2
167 | 99,13,3.6,0.7,-0.1,2
168 | 80,23,10,0.9,-0.1,2
169 | 89,21.8,7.1,0.7,-0.1,2
170 | 99,13,3.1,0.5,-0.1,2
171 | 68,14.7,7.8,0.6,-0.2,2
172 | 97,14.2,3.6,1.5,0.3,2
173 | 84,21.5,2.7,1.1,-0.6,2
174 | 84,18.5,4.4,1.1,-0.3,2
175 | 98,16.7,4.3,1.7,0.2,2
176 | 94,20.5,1.8,1.4,-0.5,2
177 | 99,17.5,1.9,1.4,0.3,2
178 | 76,25.3,4.5,1.2,-0.1,2
179 | 110,15.2,1.9,0.7,-0.2,2
180 | 144,22.3,3.3,1.3,0.6,2
181 | 105,12,3.3,1.1,0,2
182 | 88,16.5,4.9,0.8,0.1,2
183 | 97,15.1,1.8,1.2,-0.2,2
184 | 106,13.4,3,1.1,0,2
185 | 79,19,5.5,0.9,0.3,2
186 | 92,11.1,2,0.7,-0.2,2
187 | 125,2.3,0.9,16.5,9.5,3
188 | 120,6.8,2.1,10.4,38.6,3
189 | 108,3.5,0.6,1.7,1.4,3
190 | 120,3,2.5,1.2,4.5,3
191 | 119,3.8,1.1,23,5.7,3
192 | 141,5.6,1.8,9.2,14.4,3
193 | 129,1.5,0.6,12.5,2.9,3
194 | 118,3.6,1.5,11.6,48.8,3
195 | 120,1.9,0.7,18.5,24,3
196 | 119,0.8,0.7,56.4,21.6,3
197 | 123,5.6,1.1,13.7,56.3,3
198 | 115,6.3,1.2,4.7,14.4,3
199 | 126,0.5,0.2,12.2,8.8,3
200 | 121,4.7,1.8,11.2,53,3
201 | 131,2.7,0.8,9.9,4.7,3
202 | 134,2,0.5,12.2,2.2,3
203 | 141,2.5,1.3,8.5,7.5,3
204 | 113,5.1,0.7,5.8,19.6,3
205 | 136,1.4,0.3,32.6,8.4,3
206 | 120,3.4,1.8,7.5,21.5,3
207 | 125,3.7,1.1,8.5,25.9,3
208 | 123,1.9,0.3,22.8,22.2,3
209 | 112,2.6,0.7,41,19,3
210 | 134,1.9,0.6,18.4,8.2,3
211 | 119,5.1,1.1,7,40.8,3
212 | 118,6.5,1.3,1.7,11.5,3
213 | 139,4.2,0.7,4.3,6.3,3
214 | 103,5.1,1.4,1.2,5,3
215 | 97,4.7,1.1,2.1,12.6,3
216 | 102,5.3,1.4,1.3,6.7,3
217 |
--------------------------------------------------------------------------------
/datasets/diabetes.csv:
--------------------------------------------------------------------------------
1 | Pregnancies,Glucose,BloodPressure,SkinThickness,Insulin,BMI,DiabetesPedigreeFunction,Age,Outcome
2 | 6,148,72,35,0,33.6,0.627,50,1
3 | 1,85,66,29,0,26.6,0.351,31,0
4 | 8,183,64,0,0,23.3,0.672,32,1
5 | 1,89,66,23,94,28.1,0.167,21,0
6 | 0,137,40,35,168,43.1,2.288,33,1
7 | 5,116,74,0,0,25.6,0.201,30,0
8 | 3,78,50,32,88,31,0.248,26,1
9 | 10,115,0,0,0,35.3,0.134,29,0
10 | 2,197,70,45,543,30.5,0.158,53,1
11 | 8,125,96,0,0,0,0.232,54,1
12 | 4,110,92,0,0,37.6,0.191,30,0
13 | 10,168,74,0,0,38,0.537,34,1
14 | 10,139,80,0,0,27.1,1.441,57,0
15 | 1,189,60,23,846,30.1,0.398,59,1
16 | 5,166,72,19,175,25.8,0.587,51,1
17 | 7,100,0,0,0,30,0.484,32,1
18 | 0,118,84,47,230,45.8,0.551,31,1
19 | 7,107,74,0,0,29.6,0.254,31,1
20 | 1,103,30,38,83,43.3,0.183,33,0
21 | 1,115,70,30,96,34.6,0.529,32,1
22 | 3,126,88,41,235,39.3,0.704,27,0
23 | 8,99,84,0,0,35.4,0.388,50,0
24 | 7,196,90,0,0,39.8,0.451,41,1
25 | 9,119,80,35,0,29,0.263,29,1
26 | 11,143,94,33,146,36.6,0.254,51,1
27 | 10,125,70,26,115,31.1,0.205,41,1
28 | 7,147,76,0,0,39.4,0.257,43,1
29 | 1,97,66,15,140,23.2,0.487,22,0
30 | 13,145,82,19,110,22.2,0.245,57,0
31 | 5,117,92,0,0,34.1,0.337,38,0
32 | 5,109,75,26,0,36,0.546,60,0
33 | 3,158,76,36,245,31.6,0.851,28,1
34 | 3,88,58,11,54,24.8,0.267,22,0
35 | 6,92,92,0,0,19.9,0.188,28,0
36 | 10,122,78,31,0,27.6,0.512,45,0
37 | 4,103,60,33,192,24,0.966,33,0
38 | 11,138,76,0,0,33.2,0.42,35,0
39 | 9,102,76,37,0,32.9,0.665,46,1
40 | 2,90,68,42,0,38.2,0.503,27,1
41 | 4,111,72,47,207,37.1,1.39,56,1
42 | 3,180,64,25,70,34,0.271,26,0
43 | 7,133,84,0,0,40.2,0.696,37,0
44 | 7,106,92,18,0,22.7,0.235,48,0
45 | 9,171,110,24,240,45.4,0.721,54,1
46 | 7,159,64,0,0,27.4,0.294,40,0
47 | 0,180,66,39,0,42,1.893,25,1
48 | 1,146,56,0,0,29.7,0.564,29,0
49 | 2,71,70,27,0,28,0.586,22,0
50 | 7,103,66,32,0,39.1,0.344,31,1
51 | 7,105,0,0,0,0,0.305,24,0
52 | 1,103,80,11,82,19.4,0.491,22,0
53 | 1,101,50,15,36,24.2,0.526,26,0
54 | 5,88,66,21,23,24.4,0.342,30,0
55 | 8,176,90,34,300,33.7,0.467,58,1
56 | 7,150,66,42,342,34.7,0.718,42,0
57 | 1,73,50,10,0,23,0.248,21,0
58 | 7,187,68,39,304,37.7,0.254,41,1
59 | 0,100,88,60,110,46.8,0.962,31,0
60 | 0,146,82,0,0,40.5,1.781,44,0
61 | 0,105,64,41,142,41.5,0.173,22,0
62 | 2,84,0,0,0,0,0.304,21,0
63 | 8,133,72,0,0,32.9,0.27,39,1
64 | 5,44,62,0,0,25,0.587,36,0
65 | 2,141,58,34,128,25.4,0.699,24,0
66 | 7,114,66,0,0,32.8,0.258,42,1
67 | 5,99,74,27,0,29,0.203,32,0
68 | 0,109,88,30,0,32.5,0.855,38,1
69 | 2,109,92,0,0,42.7,0.845,54,0
70 | 1,95,66,13,38,19.6,0.334,25,0
71 | 4,146,85,27,100,28.9,0.189,27,0
72 | 2,100,66,20,90,32.9,0.867,28,1
73 | 5,139,64,35,140,28.6,0.411,26,0
74 | 13,126,90,0,0,43.4,0.583,42,1
75 | 4,129,86,20,270,35.1,0.231,23,0
76 | 1,79,75,30,0,32,0.396,22,0
77 | 1,0,48,20,0,24.7,0.14,22,0
78 | 7,62,78,0,0,32.6,0.391,41,0
79 | 5,95,72,33,0,37.7,0.37,27,0
80 | 0,131,0,0,0,43.2,0.27,26,1
81 | 2,112,66,22,0,25,0.307,24,0
82 | 3,113,44,13,0,22.4,0.14,22,0
83 | 2,74,0,0,0,0,0.102,22,0
84 | 7,83,78,26,71,29.3,0.767,36,0
85 | 0,101,65,28,0,24.6,0.237,22,0
86 | 5,137,108,0,0,48.8,0.227,37,1
87 | 2,110,74,29,125,32.4,0.698,27,0
88 | 13,106,72,54,0,36.6,0.178,45,0
89 | 2,100,68,25,71,38.5,0.324,26,0
90 | 15,136,70,32,110,37.1,0.153,43,1
91 | 1,107,68,19,0,26.5,0.165,24,0
92 | 1,80,55,0,0,19.1,0.258,21,0
93 | 4,123,80,15,176,32,0.443,34,0
94 | 7,81,78,40,48,46.7,0.261,42,0
95 | 4,134,72,0,0,23.8,0.277,60,1
96 | 2,142,82,18,64,24.7,0.761,21,0
97 | 6,144,72,27,228,33.9,0.255,40,0
98 | 2,92,62,28,0,31.6,0.13,24,0
99 | 1,71,48,18,76,20.4,0.323,22,0
100 | 6,93,50,30,64,28.7,0.356,23,0
101 | 1,122,90,51,220,49.7,0.325,31,1
102 | 1,163,72,0,0,39,1.222,33,1
103 | 1,151,60,0,0,26.1,0.179,22,0
104 | 0,125,96,0,0,22.5,0.262,21,0
105 | 1,81,72,18,40,26.6,0.283,24,0
106 | 2,85,65,0,0,39.6,0.93,27,0
107 | 1,126,56,29,152,28.7,0.801,21,0
108 | 1,96,122,0,0,22.4,0.207,27,0
109 | 4,144,58,28,140,29.5,0.287,37,0
110 | 3,83,58,31,18,34.3,0.336,25,0
111 | 0,95,85,25,36,37.4,0.247,24,1
112 | 3,171,72,33,135,33.3,0.199,24,1
113 | 8,155,62,26,495,34,0.543,46,1
114 | 1,89,76,34,37,31.2,0.192,23,0
115 | 4,76,62,0,0,34,0.391,25,0
116 | 7,160,54,32,175,30.5,0.588,39,1
117 | 4,146,92,0,0,31.2,0.539,61,1
118 | 5,124,74,0,0,34,0.22,38,1
119 | 5,78,48,0,0,33.7,0.654,25,0
120 | 4,97,60,23,0,28.2,0.443,22,0
121 | 4,99,76,15,51,23.2,0.223,21,0
122 | 0,162,76,56,100,53.2,0.759,25,1
123 | 6,111,64,39,0,34.2,0.26,24,0
124 | 2,107,74,30,100,33.6,0.404,23,0
125 | 5,132,80,0,0,26.8,0.186,69,0
126 | 0,113,76,0,0,33.3,0.278,23,1
127 | 1,88,30,42,99,55,0.496,26,1
128 | 3,120,70,30,135,42.9,0.452,30,0
129 | 1,118,58,36,94,33.3,0.261,23,0
130 | 1,117,88,24,145,34.5,0.403,40,1
131 | 0,105,84,0,0,27.9,0.741,62,1
132 | 4,173,70,14,168,29.7,0.361,33,1
133 | 9,122,56,0,0,33.3,1.114,33,1
134 | 3,170,64,37,225,34.5,0.356,30,1
135 | 8,84,74,31,0,38.3,0.457,39,0
136 | 2,96,68,13,49,21.1,0.647,26,0
137 | 2,125,60,20,140,33.8,0.088,31,0
138 | 0,100,70,26,50,30.8,0.597,21,0
139 | 0,93,60,25,92,28.7,0.532,22,0
140 | 0,129,80,0,0,31.2,0.703,29,0
141 | 5,105,72,29,325,36.9,0.159,28,0
142 | 3,128,78,0,0,21.1,0.268,55,0
143 | 5,106,82,30,0,39.5,0.286,38,0
144 | 2,108,52,26,63,32.5,0.318,22,0
145 | 10,108,66,0,0,32.4,0.272,42,1
146 | 4,154,62,31,284,32.8,0.237,23,0
147 | 0,102,75,23,0,0,0.572,21,0
148 | 9,57,80,37,0,32.8,0.096,41,0
149 | 2,106,64,35,119,30.5,1.4,34,0
150 | 5,147,78,0,0,33.7,0.218,65,0
151 | 2,90,70,17,0,27.3,0.085,22,0
152 | 1,136,74,50,204,37.4,0.399,24,0
153 | 4,114,65,0,0,21.9,0.432,37,0
154 | 9,156,86,28,155,34.3,1.189,42,1
155 | 1,153,82,42,485,40.6,0.687,23,0
156 | 8,188,78,0,0,47.9,0.137,43,1
157 | 7,152,88,44,0,50,0.337,36,1
158 | 2,99,52,15,94,24.6,0.637,21,0
159 | 1,109,56,21,135,25.2,0.833,23,0
160 | 2,88,74,19,53,29,0.229,22,0
161 | 17,163,72,41,114,40.9,0.817,47,1
162 | 4,151,90,38,0,29.7,0.294,36,0
163 | 7,102,74,40,105,37.2,0.204,45,0
164 | 0,114,80,34,285,44.2,0.167,27,0
165 | 2,100,64,23,0,29.7,0.368,21,0
166 | 0,131,88,0,0,31.6,0.743,32,1
167 | 6,104,74,18,156,29.9,0.722,41,1
168 | 3,148,66,25,0,32.5,0.256,22,0
169 | 4,120,68,0,0,29.6,0.709,34,0
170 | 4,110,66,0,0,31.9,0.471,29,0
171 | 3,111,90,12,78,28.4,0.495,29,0
172 | 6,102,82,0,0,30.8,0.18,36,1
173 | 6,134,70,23,130,35.4,0.542,29,1
174 | 2,87,0,23,0,28.9,0.773,25,0
175 | 1,79,60,42,48,43.5,0.678,23,0
176 | 2,75,64,24,55,29.7,0.37,33,0
177 | 8,179,72,42,130,32.7,0.719,36,1
178 | 6,85,78,0,0,31.2,0.382,42,0
179 | 0,129,110,46,130,67.1,0.319,26,1
180 | 5,143,78,0,0,45,0.19,47,0
181 | 5,130,82,0,0,39.1,0.956,37,1
182 | 6,87,80,0,0,23.2,0.084,32,0
183 | 0,119,64,18,92,34.9,0.725,23,0
184 | 1,0,74,20,23,27.7,0.299,21,0
185 | 5,73,60,0,0,26.8,0.268,27,0
186 | 4,141,74,0,0,27.6,0.244,40,0
187 | 7,194,68,28,0,35.9,0.745,41,1
188 | 8,181,68,36,495,30.1,0.615,60,1
189 | 1,128,98,41,58,32,1.321,33,1
190 | 8,109,76,39,114,27.9,0.64,31,1
191 | 5,139,80,35,160,31.6,0.361,25,1
192 | 3,111,62,0,0,22.6,0.142,21,0
193 | 9,123,70,44,94,33.1,0.374,40,0
194 | 7,159,66,0,0,30.4,0.383,36,1
195 | 11,135,0,0,0,52.3,0.578,40,1
196 | 8,85,55,20,0,24.4,0.136,42,0
197 | 5,158,84,41,210,39.4,0.395,29,1
198 | 1,105,58,0,0,24.3,0.187,21,0
199 | 3,107,62,13,48,22.9,0.678,23,1
200 | 4,109,64,44,99,34.8,0.905,26,1
201 | 4,148,60,27,318,30.9,0.15,29,1
202 | 0,113,80,16,0,31,0.874,21,0
203 | 1,138,82,0,0,40.1,0.236,28,0
204 | 0,108,68,20,0,27.3,0.787,32,0
205 | 2,99,70,16,44,20.4,0.235,27,0
206 | 6,103,72,32,190,37.7,0.324,55,0
207 | 5,111,72,28,0,23.9,0.407,27,0
208 | 8,196,76,29,280,37.5,0.605,57,1
209 | 5,162,104,0,0,37.7,0.151,52,1
210 | 1,96,64,27,87,33.2,0.289,21,0
211 | 7,184,84,33,0,35.5,0.355,41,1
212 | 2,81,60,22,0,27.7,0.29,25,0
213 | 0,147,85,54,0,42.8,0.375,24,0
214 | 7,179,95,31,0,34.2,0.164,60,0
215 | 0,140,65,26,130,42.6,0.431,24,1
216 | 9,112,82,32,175,34.2,0.26,36,1
217 | 12,151,70,40,271,41.8,0.742,38,1
218 | 5,109,62,41,129,35.8,0.514,25,1
219 | 6,125,68,30,120,30,0.464,32,0
220 | 5,85,74,22,0,29,1.224,32,1
221 | 5,112,66,0,0,37.8,0.261,41,1
222 | 0,177,60,29,478,34.6,1.072,21,1
223 | 2,158,90,0,0,31.6,0.805,66,1
224 | 7,119,0,0,0,25.2,0.209,37,0
225 | 7,142,60,33,190,28.8,0.687,61,0
226 | 1,100,66,15,56,23.6,0.666,26,0
227 | 1,87,78,27,32,34.6,0.101,22,0
228 | 0,101,76,0,0,35.7,0.198,26,0
229 | 3,162,52,38,0,37.2,0.652,24,1
230 | 4,197,70,39,744,36.7,2.329,31,0
231 | 0,117,80,31,53,45.2,0.089,24,0
232 | 4,142,86,0,0,44,0.645,22,1
233 | 6,134,80,37,370,46.2,0.238,46,1
234 | 1,79,80,25,37,25.4,0.583,22,0
235 | 4,122,68,0,0,35,0.394,29,0
236 | 3,74,68,28,45,29.7,0.293,23,0
237 | 4,171,72,0,0,43.6,0.479,26,1
238 | 7,181,84,21,192,35.9,0.586,51,1
239 | 0,179,90,27,0,44.1,0.686,23,1
240 | 9,164,84,21,0,30.8,0.831,32,1
241 | 0,104,76,0,0,18.4,0.582,27,0
242 | 1,91,64,24,0,29.2,0.192,21,0
243 | 4,91,70,32,88,33.1,0.446,22,0
244 | 3,139,54,0,0,25.6,0.402,22,1
245 | 6,119,50,22,176,27.1,1.318,33,1
246 | 2,146,76,35,194,38.2,0.329,29,0
247 | 9,184,85,15,0,30,1.213,49,1
248 | 10,122,68,0,0,31.2,0.258,41,0
249 | 0,165,90,33,680,52.3,0.427,23,0
250 | 9,124,70,33,402,35.4,0.282,34,0
251 | 1,111,86,19,0,30.1,0.143,23,0
252 | 9,106,52,0,0,31.2,0.38,42,0
253 | 2,129,84,0,0,28,0.284,27,0
254 | 2,90,80,14,55,24.4,0.249,24,0
255 | 0,86,68,32,0,35.8,0.238,25,0
256 | 12,92,62,7,258,27.6,0.926,44,1
257 | 1,113,64,35,0,33.6,0.543,21,1
258 | 3,111,56,39,0,30.1,0.557,30,0
259 | 2,114,68,22,0,28.7,0.092,25,0
260 | 1,193,50,16,375,25.9,0.655,24,0
261 | 11,155,76,28,150,33.3,1.353,51,1
262 | 3,191,68,15,130,30.9,0.299,34,0
263 | 3,141,0,0,0,30,0.761,27,1
264 | 4,95,70,32,0,32.1,0.612,24,0
265 | 3,142,80,15,0,32.4,0.2,63,0
266 | 4,123,62,0,0,32,0.226,35,1
267 | 5,96,74,18,67,33.6,0.997,43,0
268 | 0,138,0,0,0,36.3,0.933,25,1
269 | 2,128,64,42,0,40,1.101,24,0
270 | 0,102,52,0,0,25.1,0.078,21,0
271 | 2,146,0,0,0,27.5,0.24,28,1
272 | 10,101,86,37,0,45.6,1.136,38,1
273 | 2,108,62,32,56,25.2,0.128,21,0
274 | 3,122,78,0,0,23,0.254,40,0
275 | 1,71,78,50,45,33.2,0.422,21,0
276 | 13,106,70,0,0,34.2,0.251,52,0
277 | 2,100,70,52,57,40.5,0.677,25,0
278 | 7,106,60,24,0,26.5,0.296,29,1
279 | 0,104,64,23,116,27.8,0.454,23,0
280 | 5,114,74,0,0,24.9,0.744,57,0
281 | 2,108,62,10,278,25.3,0.881,22,0
282 | 0,146,70,0,0,37.9,0.334,28,1
283 | 10,129,76,28,122,35.9,0.28,39,0
284 | 7,133,88,15,155,32.4,0.262,37,0
285 | 7,161,86,0,0,30.4,0.165,47,1
286 | 2,108,80,0,0,27,0.259,52,1
287 | 7,136,74,26,135,26,0.647,51,0
288 | 5,155,84,44,545,38.7,0.619,34,0
289 | 1,119,86,39,220,45.6,0.808,29,1
290 | 4,96,56,17,49,20.8,0.34,26,0
291 | 5,108,72,43,75,36.1,0.263,33,0
292 | 0,78,88,29,40,36.9,0.434,21,0
293 | 0,107,62,30,74,36.6,0.757,25,1
294 | 2,128,78,37,182,43.3,1.224,31,1
295 | 1,128,48,45,194,40.5,0.613,24,1
296 | 0,161,50,0,0,21.9,0.254,65,0
297 | 6,151,62,31,120,35.5,0.692,28,0
298 | 2,146,70,38,360,28,0.337,29,1
299 | 0,126,84,29,215,30.7,0.52,24,0
300 | 14,100,78,25,184,36.6,0.412,46,1
301 | 8,112,72,0,0,23.6,0.84,58,0
302 | 0,167,0,0,0,32.3,0.839,30,1
303 | 2,144,58,33,135,31.6,0.422,25,1
304 | 5,77,82,41,42,35.8,0.156,35,0
305 | 5,115,98,0,0,52.9,0.209,28,1
306 | 3,150,76,0,0,21,0.207,37,0
307 | 2,120,76,37,105,39.7,0.215,29,0
308 | 10,161,68,23,132,25.5,0.326,47,1
309 | 0,137,68,14,148,24.8,0.143,21,0
310 | 0,128,68,19,180,30.5,1.391,25,1
311 | 2,124,68,28,205,32.9,0.875,30,1
312 | 6,80,66,30,0,26.2,0.313,41,0
313 | 0,106,70,37,148,39.4,0.605,22,0
314 | 2,155,74,17,96,26.6,0.433,27,1
315 | 3,113,50,10,85,29.5,0.626,25,0
316 | 7,109,80,31,0,35.9,1.127,43,1
317 | 2,112,68,22,94,34.1,0.315,26,0
318 | 3,99,80,11,64,19.3,0.284,30,0
319 | 3,182,74,0,0,30.5,0.345,29,1
320 | 3,115,66,39,140,38.1,0.15,28,0
321 | 6,194,78,0,0,23.5,0.129,59,1
322 | 4,129,60,12,231,27.5,0.527,31,0
323 | 3,112,74,30,0,31.6,0.197,25,1
324 | 0,124,70,20,0,27.4,0.254,36,1
325 | 13,152,90,33,29,26.8,0.731,43,1
326 | 2,112,75,32,0,35.7,0.148,21,0
327 | 1,157,72,21,168,25.6,0.123,24,0
328 | 1,122,64,32,156,35.1,0.692,30,1
329 | 10,179,70,0,0,35.1,0.2,37,0
330 | 2,102,86,36,120,45.5,0.127,23,1
331 | 6,105,70,32,68,30.8,0.122,37,0
332 | 8,118,72,19,0,23.1,1.476,46,0
333 | 2,87,58,16,52,32.7,0.166,25,0
334 | 1,180,0,0,0,43.3,0.282,41,1
335 | 12,106,80,0,0,23.6,0.137,44,0
336 | 1,95,60,18,58,23.9,0.26,22,0
337 | 0,165,76,43,255,47.9,0.259,26,0
338 | 0,117,0,0,0,33.8,0.932,44,0
339 | 5,115,76,0,0,31.2,0.343,44,1
340 | 9,152,78,34,171,34.2,0.893,33,1
341 | 7,178,84,0,0,39.9,0.331,41,1
342 | 1,130,70,13,105,25.9,0.472,22,0
343 | 1,95,74,21,73,25.9,0.673,36,0
344 | 1,0,68,35,0,32,0.389,22,0
345 | 5,122,86,0,0,34.7,0.29,33,0
346 | 8,95,72,0,0,36.8,0.485,57,0
347 | 8,126,88,36,108,38.5,0.349,49,0
348 | 1,139,46,19,83,28.7,0.654,22,0
349 | 3,116,0,0,0,23.5,0.187,23,0
350 | 3,99,62,19,74,21.8,0.279,26,0
351 | 5,0,80,32,0,41,0.346,37,1
352 | 4,92,80,0,0,42.2,0.237,29,0
353 | 4,137,84,0,0,31.2,0.252,30,0
354 | 3,61,82,28,0,34.4,0.243,46,0
355 | 1,90,62,12,43,27.2,0.58,24,0
356 | 3,90,78,0,0,42.7,0.559,21,0
357 | 9,165,88,0,0,30.4,0.302,49,1
358 | 1,125,50,40,167,33.3,0.962,28,1
359 | 13,129,0,30,0,39.9,0.569,44,1
360 | 12,88,74,40,54,35.3,0.378,48,0
361 | 1,196,76,36,249,36.5,0.875,29,1
362 | 5,189,64,33,325,31.2,0.583,29,1
363 | 5,158,70,0,0,29.8,0.207,63,0
364 | 5,103,108,37,0,39.2,0.305,65,0
365 | 4,146,78,0,0,38.5,0.52,67,1
366 | 4,147,74,25,293,34.9,0.385,30,0
367 | 5,99,54,28,83,34,0.499,30,0
368 | 6,124,72,0,0,27.6,0.368,29,1
369 | 0,101,64,17,0,21,0.252,21,0
370 | 3,81,86,16,66,27.5,0.306,22,0
371 | 1,133,102,28,140,32.8,0.234,45,1
372 | 3,173,82,48,465,38.4,2.137,25,1
373 | 0,118,64,23,89,0,1.731,21,0
374 | 0,84,64,22,66,35.8,0.545,21,0
375 | 2,105,58,40,94,34.9,0.225,25,0
376 | 2,122,52,43,158,36.2,0.816,28,0
377 | 12,140,82,43,325,39.2,0.528,58,1
378 | 0,98,82,15,84,25.2,0.299,22,0
379 | 1,87,60,37,75,37.2,0.509,22,0
380 | 4,156,75,0,0,48.3,0.238,32,1
381 | 0,93,100,39,72,43.4,1.021,35,0
382 | 1,107,72,30,82,30.8,0.821,24,0
383 | 0,105,68,22,0,20,0.236,22,0
384 | 1,109,60,8,182,25.4,0.947,21,0
385 | 1,90,62,18,59,25.1,1.268,25,0
386 | 1,125,70,24,110,24.3,0.221,25,0
387 | 1,119,54,13,50,22.3,0.205,24,0
388 | 5,116,74,29,0,32.3,0.66,35,1
389 | 8,105,100,36,0,43.3,0.239,45,1
390 | 5,144,82,26,285,32,0.452,58,1
391 | 3,100,68,23,81,31.6,0.949,28,0
392 | 1,100,66,29,196,32,0.444,42,0
393 | 5,166,76,0,0,45.7,0.34,27,1
394 | 1,131,64,14,415,23.7,0.389,21,0
395 | 4,116,72,12,87,22.1,0.463,37,0
396 | 4,158,78,0,0,32.9,0.803,31,1
397 | 2,127,58,24,275,27.7,1.6,25,0
398 | 3,96,56,34,115,24.7,0.944,39,0
399 | 0,131,66,40,0,34.3,0.196,22,1
400 | 3,82,70,0,0,21.1,0.389,25,0
401 | 3,193,70,31,0,34.9,0.241,25,1
402 | 4,95,64,0,0,32,0.161,31,1
403 | 6,137,61,0,0,24.2,0.151,55,0
404 | 5,136,84,41,88,35,0.286,35,1
405 | 9,72,78,25,0,31.6,0.28,38,0
406 | 5,168,64,0,0,32.9,0.135,41,1
407 | 2,123,48,32,165,42.1,0.52,26,0
408 | 4,115,72,0,0,28.9,0.376,46,1
409 | 0,101,62,0,0,21.9,0.336,25,0
410 | 8,197,74,0,0,25.9,1.191,39,1
411 | 1,172,68,49,579,42.4,0.702,28,1
412 | 6,102,90,39,0,35.7,0.674,28,0
413 | 1,112,72,30,176,34.4,0.528,25,0
414 | 1,143,84,23,310,42.4,1.076,22,0
415 | 1,143,74,22,61,26.2,0.256,21,0
416 | 0,138,60,35,167,34.6,0.534,21,1
417 | 3,173,84,33,474,35.7,0.258,22,1
418 | 1,97,68,21,0,27.2,1.095,22,0
419 | 4,144,82,32,0,38.5,0.554,37,1
420 | 1,83,68,0,0,18.2,0.624,27,0
421 | 3,129,64,29,115,26.4,0.219,28,1
422 | 1,119,88,41,170,45.3,0.507,26,0
423 | 2,94,68,18,76,26,0.561,21,0
424 | 0,102,64,46,78,40.6,0.496,21,0
425 | 2,115,64,22,0,30.8,0.421,21,0
426 | 8,151,78,32,210,42.9,0.516,36,1
427 | 4,184,78,39,277,37,0.264,31,1
428 | 0,94,0,0,0,0,0.256,25,0
429 | 1,181,64,30,180,34.1,0.328,38,1
430 | 0,135,94,46,145,40.6,0.284,26,0
431 | 1,95,82,25,180,35,0.233,43,1
432 | 2,99,0,0,0,22.2,0.108,23,0
433 | 3,89,74,16,85,30.4,0.551,38,0
434 | 1,80,74,11,60,30,0.527,22,0
435 | 2,139,75,0,0,25.6,0.167,29,0
436 | 1,90,68,8,0,24.5,1.138,36,0
437 | 0,141,0,0,0,42.4,0.205,29,1
438 | 12,140,85,33,0,37.4,0.244,41,0
439 | 5,147,75,0,0,29.9,0.434,28,0
440 | 1,97,70,15,0,18.2,0.147,21,0
441 | 6,107,88,0,0,36.8,0.727,31,0
442 | 0,189,104,25,0,34.3,0.435,41,1
443 | 2,83,66,23,50,32.2,0.497,22,0
444 | 4,117,64,27,120,33.2,0.23,24,0
445 | 8,108,70,0,0,30.5,0.955,33,1
446 | 4,117,62,12,0,29.7,0.38,30,1
447 | 0,180,78,63,14,59.4,2.42,25,1
448 | 1,100,72,12,70,25.3,0.658,28,0
449 | 0,95,80,45,92,36.5,0.33,26,0
450 | 0,104,64,37,64,33.6,0.51,22,1
451 | 0,120,74,18,63,30.5,0.285,26,0
452 | 1,82,64,13,95,21.2,0.415,23,0
453 | 2,134,70,0,0,28.9,0.542,23,1
454 | 0,91,68,32,210,39.9,0.381,25,0
455 | 2,119,0,0,0,19.6,0.832,72,0
456 | 2,100,54,28,105,37.8,0.498,24,0
457 | 14,175,62,30,0,33.6,0.212,38,1
458 | 1,135,54,0,0,26.7,0.687,62,0
459 | 5,86,68,28,71,30.2,0.364,24,0
460 | 10,148,84,48,237,37.6,1.001,51,1
461 | 9,134,74,33,60,25.9,0.46,81,0
462 | 9,120,72,22,56,20.8,0.733,48,0
463 | 1,71,62,0,0,21.8,0.416,26,0
464 | 8,74,70,40,49,35.3,0.705,39,0
465 | 5,88,78,30,0,27.6,0.258,37,0
466 | 10,115,98,0,0,24,1.022,34,0
467 | 0,124,56,13,105,21.8,0.452,21,0
468 | 0,74,52,10,36,27.8,0.269,22,0
469 | 0,97,64,36,100,36.8,0.6,25,0
470 | 8,120,0,0,0,30,0.183,38,1
471 | 6,154,78,41,140,46.1,0.571,27,0
472 | 1,144,82,40,0,41.3,0.607,28,0
473 | 0,137,70,38,0,33.2,0.17,22,0
474 | 0,119,66,27,0,38.8,0.259,22,0
475 | 7,136,90,0,0,29.9,0.21,50,0
476 | 4,114,64,0,0,28.9,0.126,24,0
477 | 0,137,84,27,0,27.3,0.231,59,0
478 | 2,105,80,45,191,33.7,0.711,29,1
479 | 7,114,76,17,110,23.8,0.466,31,0
480 | 8,126,74,38,75,25.9,0.162,39,0
481 | 4,132,86,31,0,28,0.419,63,0
482 | 3,158,70,30,328,35.5,0.344,35,1
483 | 0,123,88,37,0,35.2,0.197,29,0
484 | 4,85,58,22,49,27.8,0.306,28,0
485 | 0,84,82,31,125,38.2,0.233,23,0
486 | 0,145,0,0,0,44.2,0.63,31,1
487 | 0,135,68,42,250,42.3,0.365,24,1
488 | 1,139,62,41,480,40.7,0.536,21,0
489 | 0,173,78,32,265,46.5,1.159,58,0
490 | 4,99,72,17,0,25.6,0.294,28,0
491 | 8,194,80,0,0,26.1,0.551,67,0
492 | 2,83,65,28,66,36.8,0.629,24,0
493 | 2,89,90,30,0,33.5,0.292,42,0
494 | 4,99,68,38,0,32.8,0.145,33,0
495 | 4,125,70,18,122,28.9,1.144,45,1
496 | 3,80,0,0,0,0,0.174,22,0
497 | 6,166,74,0,0,26.6,0.304,66,0
498 | 5,110,68,0,0,26,0.292,30,0
499 | 2,81,72,15,76,30.1,0.547,25,0
500 | 7,195,70,33,145,25.1,0.163,55,1
501 | 6,154,74,32,193,29.3,0.839,39,0
502 | 2,117,90,19,71,25.2,0.313,21,0
503 | 3,84,72,32,0,37.2,0.267,28,0
504 | 6,0,68,41,0,39,0.727,41,1
505 | 7,94,64,25,79,33.3,0.738,41,0
506 | 3,96,78,39,0,37.3,0.238,40,0
507 | 10,75,82,0,0,33.3,0.263,38,0
508 | 0,180,90,26,90,36.5,0.314,35,1
509 | 1,130,60,23,170,28.6,0.692,21,0
510 | 2,84,50,23,76,30.4,0.968,21,0
511 | 8,120,78,0,0,25,0.409,64,0
512 | 12,84,72,31,0,29.7,0.297,46,1
513 | 0,139,62,17,210,22.1,0.207,21,0
514 | 9,91,68,0,0,24.2,0.2,58,0
515 | 2,91,62,0,0,27.3,0.525,22,0
516 | 3,99,54,19,86,25.6,0.154,24,0
517 | 3,163,70,18,105,31.6,0.268,28,1
518 | 9,145,88,34,165,30.3,0.771,53,1
519 | 7,125,86,0,0,37.6,0.304,51,0
520 | 13,76,60,0,0,32.8,0.18,41,0
521 | 6,129,90,7,326,19.6,0.582,60,0
522 | 2,68,70,32,66,25,0.187,25,0
523 | 3,124,80,33,130,33.2,0.305,26,0
524 | 6,114,0,0,0,0,0.189,26,0
525 | 9,130,70,0,0,34.2,0.652,45,1
526 | 3,125,58,0,0,31.6,0.151,24,0
527 | 3,87,60,18,0,21.8,0.444,21,0
528 | 1,97,64,19,82,18.2,0.299,21,0
529 | 3,116,74,15,105,26.3,0.107,24,0
530 | 0,117,66,31,188,30.8,0.493,22,0
531 | 0,111,65,0,0,24.6,0.66,31,0
532 | 2,122,60,18,106,29.8,0.717,22,0
533 | 0,107,76,0,0,45.3,0.686,24,0
534 | 1,86,66,52,65,41.3,0.917,29,0
535 | 6,91,0,0,0,29.8,0.501,31,0
536 | 1,77,56,30,56,33.3,1.251,24,0
537 | 4,132,0,0,0,32.9,0.302,23,1
538 | 0,105,90,0,0,29.6,0.197,46,0
539 | 0,57,60,0,0,21.7,0.735,67,0
540 | 0,127,80,37,210,36.3,0.804,23,0
541 | 3,129,92,49,155,36.4,0.968,32,1
542 | 8,100,74,40,215,39.4,0.661,43,1
543 | 3,128,72,25,190,32.4,0.549,27,1
544 | 10,90,85,32,0,34.9,0.825,56,1
545 | 4,84,90,23,56,39.5,0.159,25,0
546 | 1,88,78,29,76,32,0.365,29,0
547 | 8,186,90,35,225,34.5,0.423,37,1
548 | 5,187,76,27,207,43.6,1.034,53,1
549 | 4,131,68,21,166,33.1,0.16,28,0
550 | 1,164,82,43,67,32.8,0.341,50,0
551 | 4,189,110,31,0,28.5,0.68,37,0
552 | 1,116,70,28,0,27.4,0.204,21,0
553 | 3,84,68,30,106,31.9,0.591,25,0
554 | 6,114,88,0,0,27.8,0.247,66,0
555 | 1,88,62,24,44,29.9,0.422,23,0
556 | 1,84,64,23,115,36.9,0.471,28,0
557 | 7,124,70,33,215,25.5,0.161,37,0
558 | 1,97,70,40,0,38.1,0.218,30,0
559 | 8,110,76,0,0,27.8,0.237,58,0
560 | 11,103,68,40,0,46.2,0.126,42,0
561 | 11,85,74,0,0,30.1,0.3,35,0
562 | 6,125,76,0,0,33.8,0.121,54,1
563 | 0,198,66,32,274,41.3,0.502,28,1
564 | 1,87,68,34,77,37.6,0.401,24,0
565 | 6,99,60,19,54,26.9,0.497,32,0
566 | 0,91,80,0,0,32.4,0.601,27,0
567 | 2,95,54,14,88,26.1,0.748,22,0
568 | 1,99,72,30,18,38.6,0.412,21,0
569 | 6,92,62,32,126,32,0.085,46,0
570 | 4,154,72,29,126,31.3,0.338,37,0
571 | 0,121,66,30,165,34.3,0.203,33,1
572 | 3,78,70,0,0,32.5,0.27,39,0
573 | 2,130,96,0,0,22.6,0.268,21,0
574 | 3,111,58,31,44,29.5,0.43,22,0
575 | 2,98,60,17,120,34.7,0.198,22,0
576 | 1,143,86,30,330,30.1,0.892,23,0
577 | 1,119,44,47,63,35.5,0.28,25,0
578 | 6,108,44,20,130,24,0.813,35,0
579 | 2,118,80,0,0,42.9,0.693,21,1
580 | 10,133,68,0,0,27,0.245,36,0
581 | 2,197,70,99,0,34.7,0.575,62,1
582 | 0,151,90,46,0,42.1,0.371,21,1
583 | 6,109,60,27,0,25,0.206,27,0
584 | 12,121,78,17,0,26.5,0.259,62,0
585 | 8,100,76,0,0,38.7,0.19,42,0
586 | 8,124,76,24,600,28.7,0.687,52,1
587 | 1,93,56,11,0,22.5,0.417,22,0
588 | 8,143,66,0,0,34.9,0.129,41,1
589 | 6,103,66,0,0,24.3,0.249,29,0
590 | 3,176,86,27,156,33.3,1.154,52,1
591 | 0,73,0,0,0,21.1,0.342,25,0
592 | 11,111,84,40,0,46.8,0.925,45,1
593 | 2,112,78,50,140,39.4,0.175,24,0
594 | 3,132,80,0,0,34.4,0.402,44,1
595 | 2,82,52,22,115,28.5,1.699,25,0
596 | 6,123,72,45,230,33.6,0.733,34,0
597 | 0,188,82,14,185,32,0.682,22,1
598 | 0,67,76,0,0,45.3,0.194,46,0
599 | 1,89,24,19,25,27.8,0.559,21,0
600 | 1,173,74,0,0,36.8,0.088,38,1
601 | 1,109,38,18,120,23.1,0.407,26,0
602 | 1,108,88,19,0,27.1,0.4,24,0
603 | 6,96,0,0,0,23.7,0.19,28,0
604 | 1,124,74,36,0,27.8,0.1,30,0
605 | 7,150,78,29,126,35.2,0.692,54,1
606 | 4,183,0,0,0,28.4,0.212,36,1
607 | 1,124,60,32,0,35.8,0.514,21,0
608 | 1,181,78,42,293,40,1.258,22,1
609 | 1,92,62,25,41,19.5,0.482,25,0
610 | 0,152,82,39,272,41.5,0.27,27,0
611 | 1,111,62,13,182,24,0.138,23,0
612 | 3,106,54,21,158,30.9,0.292,24,0
613 | 3,174,58,22,194,32.9,0.593,36,1
614 | 7,168,88,42,321,38.2,0.787,40,1
615 | 6,105,80,28,0,32.5,0.878,26,0
616 | 11,138,74,26,144,36.1,0.557,50,1
617 | 3,106,72,0,0,25.8,0.207,27,0
618 | 6,117,96,0,0,28.7,0.157,30,0
619 | 2,68,62,13,15,20.1,0.257,23,0
620 | 9,112,82,24,0,28.2,1.282,50,1
621 | 0,119,0,0,0,32.4,0.141,24,1
622 | 2,112,86,42,160,38.4,0.246,28,0
623 | 2,92,76,20,0,24.2,1.698,28,0
624 | 6,183,94,0,0,40.8,1.461,45,0
625 | 0,94,70,27,115,43.5,0.347,21,0
626 | 2,108,64,0,0,30.8,0.158,21,0
627 | 4,90,88,47,54,37.7,0.362,29,0
628 | 0,125,68,0,0,24.7,0.206,21,0
629 | 0,132,78,0,0,32.4,0.393,21,0
630 | 5,128,80,0,0,34.6,0.144,45,0
631 | 4,94,65,22,0,24.7,0.148,21,0
632 | 7,114,64,0,0,27.4,0.732,34,1
633 | 0,102,78,40,90,34.5,0.238,24,0
634 | 2,111,60,0,0,26.2,0.343,23,0
635 | 1,128,82,17,183,27.5,0.115,22,0
636 | 10,92,62,0,0,25.9,0.167,31,0
637 | 13,104,72,0,0,31.2,0.465,38,1
638 | 5,104,74,0,0,28.8,0.153,48,0
639 | 2,94,76,18,66,31.6,0.649,23,0
640 | 7,97,76,32,91,40.9,0.871,32,1
641 | 1,100,74,12,46,19.5,0.149,28,0
642 | 0,102,86,17,105,29.3,0.695,27,0
643 | 4,128,70,0,0,34.3,0.303,24,0
644 | 6,147,80,0,0,29.5,0.178,50,1
645 | 4,90,0,0,0,28,0.61,31,0
646 | 3,103,72,30,152,27.6,0.73,27,0
647 | 2,157,74,35,440,39.4,0.134,30,0
648 | 1,167,74,17,144,23.4,0.447,33,1
649 | 0,179,50,36,159,37.8,0.455,22,1
650 | 11,136,84,35,130,28.3,0.26,42,1
651 | 0,107,60,25,0,26.4,0.133,23,0
652 | 1,91,54,25,100,25.2,0.234,23,0
653 | 1,117,60,23,106,33.8,0.466,27,0
654 | 5,123,74,40,77,34.1,0.269,28,0
655 | 2,120,54,0,0,26.8,0.455,27,0
656 | 1,106,70,28,135,34.2,0.142,22,0
657 | 2,155,52,27,540,38.7,0.24,25,1
658 | 2,101,58,35,90,21.8,0.155,22,0
659 | 1,120,80,48,200,38.9,1.162,41,0
660 | 11,127,106,0,0,39,0.19,51,0
661 | 3,80,82,31,70,34.2,1.292,27,1
662 | 10,162,84,0,0,27.7,0.182,54,0
663 | 1,199,76,43,0,42.9,1.394,22,1
664 | 8,167,106,46,231,37.6,0.165,43,1
665 | 9,145,80,46,130,37.9,0.637,40,1
666 | 6,115,60,39,0,33.7,0.245,40,1
667 | 1,112,80,45,132,34.8,0.217,24,0
668 | 4,145,82,18,0,32.5,0.235,70,1
669 | 10,111,70,27,0,27.5,0.141,40,1
670 | 6,98,58,33,190,34,0.43,43,0
671 | 9,154,78,30,100,30.9,0.164,45,0
672 | 6,165,68,26,168,33.6,0.631,49,0
673 | 1,99,58,10,0,25.4,0.551,21,0
674 | 10,68,106,23,49,35.5,0.285,47,0
675 | 3,123,100,35,240,57.3,0.88,22,0
676 | 8,91,82,0,0,35.6,0.587,68,0
677 | 6,195,70,0,0,30.9,0.328,31,1
678 | 9,156,86,0,0,24.8,0.23,53,1
679 | 0,93,60,0,0,35.3,0.263,25,0
680 | 3,121,52,0,0,36,0.127,25,1
681 | 2,101,58,17,265,24.2,0.614,23,0
682 | 2,56,56,28,45,24.2,0.332,22,0
683 | 0,162,76,36,0,49.6,0.364,26,1
684 | 0,95,64,39,105,44.6,0.366,22,0
685 | 4,125,80,0,0,32.3,0.536,27,1
686 | 5,136,82,0,0,0,0.64,69,0
687 | 2,129,74,26,205,33.2,0.591,25,0
688 | 3,130,64,0,0,23.1,0.314,22,0
689 | 1,107,50,19,0,28.3,0.181,29,0
690 | 1,140,74,26,180,24.1,0.828,23,0
691 | 1,144,82,46,180,46.1,0.335,46,1
692 | 8,107,80,0,0,24.6,0.856,34,0
693 | 13,158,114,0,0,42.3,0.257,44,1
694 | 2,121,70,32,95,39.1,0.886,23,0
695 | 7,129,68,49,125,38.5,0.439,43,1
696 | 2,90,60,0,0,23.5,0.191,25,0
697 | 7,142,90,24,480,30.4,0.128,43,1
698 | 3,169,74,19,125,29.9,0.268,31,1
699 | 0,99,0,0,0,25,0.253,22,0
700 | 4,127,88,11,155,34.5,0.598,28,0
701 | 4,118,70,0,0,44.5,0.904,26,0
702 | 2,122,76,27,200,35.9,0.483,26,0
703 | 6,125,78,31,0,27.6,0.565,49,1
704 | 1,168,88,29,0,35,0.905,52,1
705 | 2,129,0,0,0,38.5,0.304,41,0
706 | 4,110,76,20,100,28.4,0.118,27,0
707 | 6,80,80,36,0,39.8,0.177,28,0
708 | 10,115,0,0,0,0,0.261,30,1
709 | 2,127,46,21,335,34.4,0.176,22,0
710 | 9,164,78,0,0,32.8,0.148,45,1
711 | 2,93,64,32,160,38,0.674,23,1
712 | 3,158,64,13,387,31.2,0.295,24,0
713 | 5,126,78,27,22,29.6,0.439,40,0
714 | 10,129,62,36,0,41.2,0.441,38,1
715 | 0,134,58,20,291,26.4,0.352,21,0
716 | 3,102,74,0,0,29.5,0.121,32,0
717 | 7,187,50,33,392,33.9,0.826,34,1
718 | 3,173,78,39,185,33.8,0.97,31,1
719 | 10,94,72,18,0,23.1,0.595,56,0
720 | 1,108,60,46,178,35.5,0.415,24,0
721 | 5,97,76,27,0,35.6,0.378,52,1
722 | 4,83,86,19,0,29.3,0.317,34,0
723 | 1,114,66,36,200,38.1,0.289,21,0
724 | 1,149,68,29,127,29.3,0.349,42,1
725 | 5,117,86,30,105,39.1,0.251,42,0
726 | 1,111,94,0,0,32.8,0.265,45,0
727 | 4,112,78,40,0,39.4,0.236,38,0
728 | 1,116,78,29,180,36.1,0.496,25,0
729 | 0,141,84,26,0,32.4,0.433,22,0
730 | 2,175,88,0,0,22.9,0.326,22,0
731 | 2,92,52,0,0,30.1,0.141,22,0
732 | 3,130,78,23,79,28.4,0.323,34,1
733 | 8,120,86,0,0,28.4,0.259,22,1
734 | 2,174,88,37,120,44.5,0.646,24,1
735 | 2,106,56,27,165,29,0.426,22,0
736 | 2,105,75,0,0,23.3,0.56,53,0
737 | 4,95,60,32,0,35.4,0.284,28,0
738 | 0,126,86,27,120,27.4,0.515,21,0
739 | 8,65,72,23,0,32,0.6,42,0
740 | 2,99,60,17,160,36.6,0.453,21,0
741 | 1,102,74,0,0,39.5,0.293,42,1
742 | 11,120,80,37,150,42.3,0.785,48,1
743 | 3,102,44,20,94,30.8,0.4,26,0
744 | 1,109,58,18,116,28.5,0.219,22,0
745 | 9,140,94,0,0,32.7,0.734,45,1
746 | 13,153,88,37,140,40.6,1.174,39,0
747 | 12,100,84,33,105,30,0.488,46,0
748 | 1,147,94,41,0,49.3,0.358,27,1
749 | 1,81,74,41,57,46.3,1.096,32,0
750 | 3,187,70,22,200,36.4,0.408,36,1
751 | 6,162,62,0,0,24.3,0.178,50,1
752 | 4,136,70,0,0,31.2,1.182,22,1
753 | 1,121,78,39,74,39,0.261,28,0
754 | 3,108,62,24,0,26,0.223,25,0
755 | 0,181,88,44,510,43.3,0.222,26,1
756 | 8,154,78,32,0,32.4,0.443,45,1
757 | 1,128,88,39,110,36.5,1.057,37,1
758 | 7,137,90,41,0,32,0.391,39,0
759 | 0,123,72,0,0,36.3,0.258,52,1
760 | 1,106,76,0,0,37.5,0.197,26,0
761 | 6,190,92,0,0,35.5,0.278,66,1
762 | 2,88,58,26,16,28.4,0.766,22,0
763 | 9,170,74,31,0,44,0.403,43,1
764 | 9,89,62,0,0,22.5,0.142,33,0
765 | 10,101,76,48,180,32.9,0.171,63,0
766 | 2,122,70,27,0,36.8,0.34,27,0
767 | 5,121,72,23,112,26.2,0.245,30,0
768 | 1,126,60,0,0,30.1,0.349,47,1
769 | 1,93,70,31,0,30.4,0.315,23,0
770 |
--------------------------------------------------------------------------------
/Machine Learning Analysis on Thyroidism.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "code",
5 | "execution_count": 1,
6 | "metadata": {},
7 | "outputs": [],
8 | "source": [
9 | "%matplotlib inline\n",
10 | "import pandas as pd\n",
11 | "import numpy as np\n",
12 | "import matplotlib.pyplot as plt\n",
13 | "import seaborn as sns"
14 | ]
15 | },
16 | {
17 | "cell_type": "code",
18 | "execution_count": 2,
19 | "metadata": {},
20 | "outputs": [
21 | {
22 | "name": "stdout",
23 | "output_type": "stream",
24 | "text": [
25 | "Index(['T3_resin', 'Serum_thyroxin', 'Serum_triiodothyronine', 'Basal_TSH',\n",
26 | " 'Abs_diff_TSH', 'Outcome'],\n",
27 | " dtype='object')\n"
28 | ]
29 | }
30 | ],
31 | "source": [
32 | "thyroid_data = pd.read_csv('datasets/thyroid_data.csv')\n",
33 | "print(thyroid_data.columns)"
34 | ]
35 | },
36 | {
37 | "cell_type": "code",
38 | "execution_count": 3,
39 | "metadata": {},
40 | "outputs": [
41 | {
42 | "data": {
43 | "text/plain": [
44 | "(215, 6)"
45 | ]
46 | },
47 | "execution_count": 3,
48 | "metadata": {},
49 | "output_type": "execute_result"
50 | }
51 | ],
52 | "source": [
53 | "thyroid_data.shape"
54 | ]
55 | },
56 | {
57 | "cell_type": "code",
58 | "execution_count": 4,
59 | "metadata": {},
60 | "outputs": [
61 | {
62 | "data": {
63 | "text/html": [
64 | "
\n",
65 | "\n",
78 | "
\n",
79 | " \n",
80 | " \n",
81 | " | \n",
82 | " T3_resin | \n",
83 | " Serum_thyroxin | \n",
84 | " Serum_triiodothyronine | \n",
85 | " Basal_TSH | \n",
86 | " Abs_diff_TSH | \n",
87 | " Outcome | \n",
88 | "
\n",
89 | " \n",
90 | " \n",
91 | " \n",
92 | " | 0 | \n",
93 | " 107 | \n",
94 | " 10.1 | \n",
95 | " 2.2 | \n",
96 | " 0.9 | \n",
97 | " 2.7 | \n",
98 | " 1 | \n",
99 | "
\n",
100 | " \n",
101 | " | 1 | \n",
102 | " 113 | \n",
103 | " 9.9 | \n",
104 | " 3.1 | \n",
105 | " 2.0 | \n",
106 | " 5.9 | \n",
107 | " 1 | \n",
108 | "
\n",
109 | " \n",
110 | " | 2 | \n",
111 | " 127 | \n",
112 | " 12.9 | \n",
113 | " 2.4 | \n",
114 | " 1.4 | \n",
115 | " 0.6 | \n",
116 | " 1 | \n",
117 | "
\n",
118 | " \n",
119 | " | 3 | \n",
120 | " 109 | \n",
121 | " 5.3 | \n",
122 | " 1.6 | \n",
123 | " 1.4 | \n",
124 | " 1.5 | \n",
125 | " 1 | \n",
126 | "
\n",
127 | " \n",
128 | " | 4 | \n",
129 | " 105 | \n",
130 | " 7.3 | \n",
131 | " 1.5 | \n",
132 | " 1.5 | \n",
133 | " -0.1 | \n",
134 | " 1 | \n",
135 | "
\n",
136 | " \n",
137 | "
\n",
138 | "
"
139 | ],
140 | "text/plain": [
141 | " T3_resin Serum_thyroxin Serum_triiodothyronine Basal_TSH Abs_diff_TSH \\\n",
142 | "0 107 10.1 2.2 0.9 2.7 \n",
143 | "1 113 9.9 3.1 2.0 5.9 \n",
144 | "2 127 12.9 2.4 1.4 0.6 \n",
145 | "3 109 5.3 1.6 1.4 1.5 \n",
146 | "4 105 7.3 1.5 1.5 -0.1 \n",
147 | "\n",
148 | " Outcome \n",
149 | "0 1 \n",
150 | "1 1 \n",
151 | "2 1 \n",
152 | "3 1 \n",
153 | "4 1 "
154 | ]
155 | },
156 | "execution_count": 4,
157 | "metadata": {},
158 | "output_type": "execute_result"
159 | }
160 | ],
161 | "source": [
162 | "thyroid_data.head()"
163 | ]
164 | },
165 | {
166 | "cell_type": "code",
167 | "execution_count": 5,
168 | "metadata": {},
169 | "outputs": [
170 | {
171 | "data": {
172 | "text/plain": [
173 | "Outcome\n",
174 | "1 150\n",
175 | "2 35\n",
176 | "3 30\n",
177 | "dtype: int64"
178 | ]
179 | },
180 | "execution_count": 5,
181 | "metadata": {},
182 | "output_type": "execute_result"
183 | }
184 | ],
185 | "source": [
186 | "thyroid_data.groupby('Outcome').size()"
187 | ]
188 | },
189 | {
190 | "cell_type": "code",
191 | "execution_count": 6,
192 | "metadata": {},
193 | "outputs": [
194 | {
195 | "data": {
196 | "text/plain": [
197 | "array([[,\n",
198 | " ],\n",
199 | " [,\n",
200 | " ],\n",
201 | " [,\n",
202 | " ]],\n",
203 | " dtype=object)"
204 | ]
205 | },
206 | "execution_count": 6,
207 | "metadata": {},
208 | "output_type": "execute_result"
209 | },
210 | {
211 | "data": {
212 | "image/png": "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\n",
213 | "text/plain": [
214 | ""
215 | ]
216 | },
217 | "metadata": {
218 | "needs_background": "light"
219 | },
220 | "output_type": "display_data"
221 | }
222 | ],
223 | "source": [
224 | "thyroid_data.hist(figsize=(9, 9))"
225 | ]
226 | },
227 | {
228 | "cell_type": "code",
229 | "execution_count": 7,
230 | "metadata": {},
231 | "outputs": [
232 | {
233 | "data": {
234 | "text/plain": [
235 | "T3_resin 0\n",
236 | "Serum_thyroxin 0\n",
237 | "Serum_triiodothyronine 0\n",
238 | "Basal_TSH 0\n",
239 | "Abs_diff_TSH 0\n",
240 | "Outcome 0\n",
241 | "dtype: int64"
242 | ]
243 | },
244 | "execution_count": 7,
245 | "metadata": {},
246 | "output_type": "execute_result"
247 | }
248 | ],
249 | "source": [
250 | "thyroid_data.isnull().sum()"
251 | ]
252 | },
253 | {
254 | "cell_type": "code",
255 | "execution_count": 10,
256 | "metadata": {},
257 | "outputs": [
258 | {
259 | "data": {
260 | "text/plain": [
261 | "T3_resin 0\n",
262 | "Serum_thyroxin 0\n",
263 | "Serum_triiodothyronine 0\n",
264 | "Basal_TSH 0\n",
265 | "Abs_diff_TSH 0\n",
266 | "Outcome 0\n",
267 | "dtype: int64"
268 | ]
269 | },
270 | "execution_count": 10,
271 | "metadata": {},
272 | "output_type": "execute_result"
273 | }
274 | ],
275 | "source": [
276 | "thyroid_data.isna().sum()"
277 | ]
278 | },
279 | {
280 | "cell_type": "code",
281 | "execution_count": 8,
282 | "metadata": {},
283 | "outputs": [],
284 | "source": [
285 | "# Features/Response\n",
286 | "feature_names = ['T3_resin', 'Serum_thyroxin', 'Serum_triiodothyronine', 'Basal_TSH', 'Abs_diff_TSH']\n",
287 | "X = thyroid_data[feature_names]\n",
288 | "y = thyroid_data.Outcome"
289 | ]
290 | },
291 | {
292 | "cell_type": "code",
293 | "execution_count": 9,
294 | "metadata": {},
295 | "outputs": [],
296 | "source": [
297 | "from sklearn.model_selection import cross_val_score\n",
298 | "from sklearn.model_selection import StratifiedKFold\n",
299 | "\n",
300 | "from sklearn.neighbors import KNeighborsClassifier\n",
301 | "from sklearn.linear_model import LogisticRegression\n",
302 | "from sklearn.svm import SVC\n",
303 | "from sklearn.ensemble import GradientBoostingClassifier\n",
304 | "from sklearn.ensemble import RandomForestClassifier\n",
305 | "from sklearn.tree import DecisionTreeClassifier\n",
306 | "from sklearn.naive_bayes import BernoulliNB\n",
307 | "from sklearn.naive_bayes import GaussianNB\n",
308 | "from sklearn.neural_network import MLPClassifier"
309 | ]
310 | },
311 | {
312 | "cell_type": "code",
313 | "execution_count": 11,
314 | "metadata": {},
315 | "outputs": [],
316 | "source": [
317 | "# Initial model selection process\n",
318 | "models = []\n",
319 | "\n",
320 | "models.append(('KNN', KNeighborsClassifier()))\n",
321 | "models.append(('SVC', SVC(gamma='scale')))\n",
322 | "models.append(('LR', LogisticRegression(solver='lbfgs', max_iter=4000, multi_class='auto')))\n",
323 | "models.append(('DT', DecisionTreeClassifier()))\n",
324 | "models.append(('GNB', GaussianNB()))\n",
325 | "models.append(('RF', RandomForestClassifier(n_estimators=100)))\n",
326 | "models.append(('GB', GradientBoostingClassifier()))"
327 | ]
328 | },
329 | {
330 | "cell_type": "code",
331 | "execution_count": 12,
332 | "metadata": {},
333 | "outputs": [
334 | {
335 | "name": "stdout",
336 | "output_type": "stream",
337 | "text": [
338 | " Name Score\n",
339 | "0 KNN 0.925758\n",
340 | "1 SVC 0.939394\n",
341 | "2 LR 0.967316\n",
342 | "3 DT 0.939394\n",
343 | "4 GNB 0.967749\n",
344 | "5 RF 0.958009\n",
345 | "6 GB 0.939610\n"
346 | ]
347 | }
348 | ],
349 | "source": [
350 | "strat_k_fold = StratifiedKFold(n_splits=10, random_state=10)\n",
351 | "\n",
352 | "names = []\n",
353 | "scores = []\n",
354 | "\n",
355 | "for name, model in models:\n",
356 | " \n",
357 | " score = cross_val_score(model, X, y, cv=strat_k_fold, scoring='accuracy').mean()\n",
358 | " names.append(name)\n",
359 | " scores.append(score)\n",
360 | "\n",
361 | "kf_cross_val = pd.DataFrame({'Name': names, 'Score': scores})\n",
362 | "print(kf_cross_val)"
363 | ]
364 | },
365 | {
366 | "cell_type": "code",
367 | "execution_count": 13,
368 | "metadata": {},
369 | "outputs": [
370 | {
371 | "data": {
372 | "image/png": "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P3nr1q29ZcuWfscdd7i7+9ixY/3ll192d/epU6d6q1atvHXr1n7dddeFmt3dZ82a5e3bt/d27dr50KFDffv27WFZjx49/LXXXtvtvu655x7Pzs72k08+2bt27erz58+vUe37+vOfzufe3f2pp57yQYMG1ajmEm+//bafc845Yfquu+7yu+66q9z2W7du9aZNm5a5bOjQoT516lTfuHGjt2zZMsxfu3atn3TSSe7ufs455/jbb7/t7u7ffvutN2rUKJzJVh3pfu+sWLHCc3JyfNOmTe7u/tlnn1VaIymefZTxD/mq/u3PoZDKf4zs7Gxft26du7vv2rXLjzjiiD22U/JmWr9+vS9YsMB79+4dlj3zzDN+0003henhw4f7K6+84j169NgrobAv0/OfOd9++623aNHCV69eHT5UFy9evFubwsJC37lzp7u7/+pXv/KxY8e6u/umTZvCh2phYaG3atXKlyxZEj7sly9f7u7ujz/+uF988cXu7v7QQw/5jTfe6O7ukyZN8ksvvbRG9af7vXPLLbf4Y489VqUaUw2FOK9ozojXX3+d4cOHs3PnTq6//vrQh1hi7dq1XHvttRQWFtKwYUN+//vfk5WVRV5eHjfddBNbtmyhbt26jBkzhkGDBgFw9dVXM2/ePBo0aADAxIkTycnJYfPmzQwePJhPPvmE4uJiRo4cyTXXXFPt2svqV3333Xd3a1PSrzp8+PDd+lUbNWrEunXr6Nu3L/n5+dx///00adKEQw89lI8//pg1a9aQlZXFtGnT2LFjBwAffPAB69at44ILLmD8+PHVrrvbg92qvW6c3vrJW1Vqvy8+/w/9/JVqrRe3Yb++sErt69Wrx0MPPcS5557Lzp07ufbaa2nbti3jxo0jNzeXfv36MXfuXEaPHo2ZccYZZzBhwgQAli1bxo033kidOnXYtWsXo0aNCt1fjz32GJdccgl16tThqKOOCmeoXXfddVx11VW0atWKhg0bMnny5Bo93nS/d1asWAFAt27d2LlzJ7fddhvnnXdejR5Dif0qFEpOa/vzn/9MVlYWnTt3pl+/frv1j5ac1jZ06FDmzJnD6NGjefbZZznssMN45plnaN26NRs2bKBTp06ce+65HHnkkUDiCs6BAwfudn8TJkwgOzubV155hcLCQtq0acOVV15J/fr1q1W/p9ivOmzYMCZOnMgZZ5yxW79qs2bN+Oijj9iwYQP9+/dn4MCB/OAHP+Dhhx9m0KBB1KlTh9NOO43Vq1eza9cuRowYscdZJgcyPf+Z1adPH/r06bPbvNtvvz3cHjhw4B7/BwFOO+00/v73v5e5zQEDBjBgwIA95h9yyCFMnTq1hhV/J53vHYDi4mJWrlzJ3LlzKSgooHv37ixevDh8XtXEfhUKyae1AeG0tuRQWLp0KQ888ACQOK2t5GKcE044IbRp0qQJ3//+9yksLKzwSTYztm7diruzbds2GjZsGF7k6qjKGSQA27Zt48UXXwx7MMlt2rZty/z58xk4cCAXXnghF16Y+Ob26KOPUrduXbZu3crixYvp2bMnAP/85z/p168f06dPJzc3t9qPYV+m5z/97hy854d8bTDm9y9UqX063zsl99e1a1cOOuggWrRoQZs2bVi5ciWdO3eu8mMtbb8aOrump7WVWLBgATt27OD4448P88aMGUOHDh0YMWIE27dvB2DYsGEsW7aMJk2a0L59e37zm99Qp071n9KanEFSUFDA119/DcAXX3zBW2+9RZs2bQDYuHFjmP/b3/6W66+/ngYNGlBUVMSaNWtYs2YNXbt2PeA+kErT8y/Vlc73DkD//v154403wnZXrFgRvgzX1H4VCqnuwpV3WhvAp59+ylVXXcVTTz0VPuDvvvtuPv74YxYuXMimTZu49957AZg5cyY5OTls2LCBvLw8hg0bFi6UqY7kftWTTjqJH/7wh6FfteQqzblz59KmTRtOOOEEPvvsM8aMGQMk+lW7dOnCySefTI8ePRg5ciTt27cHYPjw4WRnZ9OtWzdGjRq1216RfEfPv1RXut875557Lo0aNSI7O5tevXpx//331/h07BJW1gdpbZabm+vlnc/9zjvvcNtttzFz5kwg8WEO7HY5fLJt27Zx4oknhvOFt2zZQs+ePRk9ejSXXnppmevMnTuX8ePH8+qrr9K3b19GjRpF9+7dATjzzDO55557OPXUU2v0GPc1+8uB5n3Rvn6geX/pPtoXmNl77l7pruh+dUwheReuadOmTJ48meeff363NkVFRTRs2JA6derstgu3Y8cOBgwYwJAhQ/YIhE8//ZRjjjkGd2fatGm0a5f4zaBjjz2W2bNn0717dz777DOWL19erV24T25vX81HHK9jx5V98G5/Mu+MHpkuoVw93pyX6RKkEsvu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\n",
373 | "text/plain": [
374 | ""
375 | ]
376 | },
377 | "metadata": {
378 | "needs_background": "light"
379 | },
380 | "output_type": "display_data"
381 | }
382 | ],
383 | "source": [
384 | "axis = sns.barplot(x = 'Name', y = 'Score', data = kf_cross_val)\n",
385 | "axis.set(xlabel='Classifier', ylabel='Accuracy')\n",
386 | "\n",
387 | "for p in axis.patches:\n",
388 | " height = p.get_height()\n",
389 | " axis.text(p.get_x() + p.get_width()/2, height + 0.005, '{:1.4f}'.format(height), ha=\"center\") \n",
390 | " \n",
391 | "plt.show()"
392 | ]
393 | }
394 | ],
395 | "metadata": {
396 | "kernelspec": {
397 | "display_name": "Python 3",
398 | "language": "python",
399 | "name": "python3"
400 | },
401 | "language_info": {
402 | "codemirror_mode": {
403 | "name": "ipython",
404 | "version": 3
405 | },
406 | "file_extension": ".py",
407 | "mimetype": "text/x-python",
408 | "name": "python",
409 | "nbconvert_exporter": "python",
410 | "pygments_lexer": "ipython3",
411 | "version": "3.6.6"
412 | }
413 | },
414 | "nbformat": 4,
415 | "nbformat_minor": 2
416 | }
417 |
--------------------------------------------------------------------------------
/Classification Model Evaluation.ipynb:
--------------------------------------------------------------------------------
1 | {
2 | "cells": [
3 | {
4 | "cell_type": "markdown",
5 | "metadata": {},
6 | "source": [
7 | "# Classification Model Evaluation"
8 | ]
9 | },
10 | {
11 | "cell_type": "code",
12 | "execution_count": 1,
13 | "metadata": {},
14 | "outputs": [],
15 | "source": [
16 | "%matplotlib inline\n",
17 | "import pandas as pd\n",
18 | "import numpy as np\n",
19 | "import matplotlib.pyplot as plt\n",
20 | "import itertools\n",
21 | "from sklearn.linear_model import LogisticRegression\n",
22 | "from sklearn.model_selection import train_test_split, StratifiedKFold, cross_val_score\n",
23 | "from sklearn.metrics import accuracy_score"
24 | ]
25 | },
26 | {
27 | "cell_type": "markdown",
28 | "metadata": {},
29 | "source": [
30 | "## Model Selection Process"
31 | ]
32 | },
33 | {
34 | "cell_type": "markdown",
35 | "metadata": {},
36 | "source": [
37 | "### Data Cleaning and Preparation"
38 | ]
39 | },
40 | {
41 | "cell_type": "code",
42 | "execution_count": 2,
43 | "metadata": {},
44 | "outputs": [
45 | {
46 | "data": {
47 | "text/html": [
48 | "\n",
49 | "\n",
62 | "
\n",
63 | " \n",
64 | " \n",
65 | " | \n",
66 | " Pregnancies | \n",
67 | " Glucose | \n",
68 | " BloodPressure | \n",
69 | " SkinThickness | \n",
70 | " Insulin | \n",
71 | " BMI | \n",
72 | " DiabetesPedigreeFunction | \n",
73 | " Age | \n",
74 | " Outcome | \n",
75 | "
\n",
76 | " \n",
77 | " \n",
78 | " \n",
79 | " | 0 | \n",
80 | " 6 | \n",
81 | " 148 | \n",
82 | " 72 | \n",
83 | " 35 | \n",
84 | " 0 | \n",
85 | " 33.6 | \n",
86 | " 0.627 | \n",
87 | " 50 | \n",
88 | " 1 | \n",
89 | "
\n",
90 | " \n",
91 | " | 1 | \n",
92 | " 1 | \n",
93 | " 85 | \n",
94 | " 66 | \n",
95 | " 29 | \n",
96 | " 0 | \n",
97 | " 26.6 | \n",
98 | " 0.351 | \n",
99 | " 31 | \n",
100 | " 0 | \n",
101 | "
\n",
102 | " \n",
103 | "
\n",
104 | "
"
105 | ],
106 | "text/plain": [
107 | " Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
108 | "0 6 148 72 35 0 33.6 \n",
109 | "1 1 85 66 29 0 26.6 \n",
110 | "\n",
111 | " DiabetesPedigreeFunction Age Outcome \n",
112 | "0 0.627 50 1 \n",
113 | "1 0.351 31 0 "
114 | ]
115 | },
116 | "execution_count": 2,
117 | "metadata": {},
118 | "output_type": "execute_result"
119 | }
120 | ],
121 | "source": [
122 | "# Read data\n",
123 | "diabetes = pd.read_csv('datasets/diabetes.csv')\n",
124 | "diabetes.head(2)"
125 | ]
126 | },
127 | {
128 | "cell_type": "code",
129 | "execution_count": 3,
130 | "metadata": {},
131 | "outputs": [
132 | {
133 | "name": "stdout",
134 | "output_type": "stream",
135 | "text": [
136 | "(768, 9)\n"
137 | ]
138 | }
139 | ],
140 | "source": [
141 | "# Dimensions of the data set\n",
142 | "print(diabetes.shape)"
143 | ]
144 | },
145 | {
146 | "cell_type": "code",
147 | "execution_count": 4,
148 | "metadata": {},
149 | "outputs": [
150 | {
151 | "name": "stdout",
152 | "output_type": "stream",
153 | "text": [
154 | "(724, 9)\n"
155 | ]
156 | }
157 | ],
158 | "source": [
159 | "# Remove unusual rows of data\n",
160 | "diabetes_mod = diabetes[(diabetes.BloodPressure != 0) & (diabetes.BMI != 0) & (diabetes.Glucose != 0)]\n",
161 | "\n",
162 | "# Dimensions of data set after cleansing\n",
163 | "print(diabetes_mod.shape)"
164 | ]
165 | },
166 | {
167 | "cell_type": "markdown",
168 | "metadata": {},
169 | "source": [
170 | "### Feature Selection"
171 | ]
172 | },
173 | {
174 | "cell_type": "code",
175 | "execution_count": 5,
176 | "metadata": {},
177 | "outputs": [],
178 | "source": [
179 | "# Features/Response\n",
180 | "feature_names = ['Pregnancies', 'Glucose', 'BMI', 'DiabetesPedigreeFunction']\n",
181 | "X = diabetes_mod[feature_names]\n",
182 | "y = diabetes_mod.Outcome"
183 | ]
184 | },
185 | {
186 | "cell_type": "markdown",
187 | "metadata": {},
188 | "source": [
189 | "### Model Selection"
190 | ]
191 | },
192 | {
193 | "cell_type": "code",
194 | "execution_count": 6,
195 | "metadata": {},
196 | "outputs": [],
197 | "source": [
198 | "logreg = LogisticRegression(C=1, multi_class='ovr', penalty='l2', solver='liblinear')"
199 | ]
200 | },
201 | {
202 | "cell_type": "markdown",
203 | "metadata": {},
204 | "source": [
205 | "## Model Evaluation Procedures"
206 | ]
207 | },
208 | {
209 | "cell_type": "markdown",
210 | "metadata": {},
211 | "source": [
212 | "### 01. Train/Test Split"
213 | ]
214 | },
215 | {
216 | "cell_type": "code",
217 | "execution_count": 7,
218 | "metadata": {},
219 | "outputs": [
220 | {
221 | "name": "stdout",
222 | "output_type": "stream",
223 | "text": [
224 | "Accuracy 0.7955801104972375\n"
225 | ]
226 | }
227 | ],
228 | "source": [
229 | "# Split the data into train and test sets\n",
230 | "X_train, X_test, y_train, y_test = train_test_split(X, y, stratify = y, random_state = 0)\n",
231 | "\n",
232 | "logreg.fit(X_train, y_train)\n",
233 | "y_pred = logreg.predict(X_test)\n",
234 | "\n",
235 | "accuracy = accuracy_score(y_test, y_pred)\n",
236 | "\n",
237 | "print(\"Accuracy {}\".format(accuracy))"
238 | ]
239 | },
240 | {
241 | "cell_type": "markdown",
242 | "metadata": {},
243 | "source": [
244 | "### 02. K-Fold Cross Validation"
245 | ]
246 | },
247 | {
248 | "cell_type": "code",
249 | "execution_count": 8,
250 | "metadata": {},
251 | "outputs": [
252 | {
253 | "name": "stdout",
254 | "output_type": "stream",
255 | "text": [
256 | "Accuracy 0.7805877119643279\n"
257 | ]
258 | }
259 | ],
260 | "source": [
261 | "accuracy = cross_val_score(logreg, X, y, cv = 10, scoring='accuracy').mean()\n",
262 | "\n",
263 | "print(\"Accuracy {}\".format(accuracy))"
264 | ]
265 | },
266 | {
267 | "cell_type": "markdown",
268 | "metadata": {},
269 | "source": [
270 | "## Model Evaluation Metrics"
271 | ]
272 | },
273 | {
274 | "cell_type": "markdown",
275 | "metadata": {},
276 | "source": [
277 | "### 01. Classification Accuracy"
278 | ]
279 | },
280 | {
281 | "cell_type": "markdown",
282 | "metadata": {
283 | "collapsed": true
284 | },
285 | "source": [
286 | "We already discussed how classification accuracy works in the previous section."
287 | ]
288 | },
289 | {
290 | "cell_type": "markdown",
291 | "metadata": {},
292 | "source": [
293 | "### 02. Confusion Matrix"
294 | ]
295 | },
296 | {
297 | "cell_type": "code",
298 | "execution_count": 9,
299 | "metadata": {},
300 | "outputs": [],
301 | "source": [
302 | "from sklearn.metrics import confusion_matrix"
303 | ]
304 | },
305 | {
306 | "cell_type": "code",
307 | "execution_count": 10,
308 | "metadata": {},
309 | "outputs": [],
310 | "source": [
311 | "# Method to plot the confusion matrix\n",
312 | "def plot_confusion_matrix(cm, classes, normalize=False, title='Confusion matrix', cmap=plt.cm.Blues):\n",
313 | "\n",
314 | " if normalize:\n",
315 | " cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis]\n",
316 | " print(\"Normalized confusion matrix\")\n",
317 | " else:\n",
318 | " print('Confusion matrix, without normalization')\n",
319 | "\n",
320 | " print(cm)\n",
321 | "\n",
322 | " plt.imshow(cm, interpolation='nearest', cmap=cmap)\n",
323 | " plt.title(title)\n",
324 | " plt.colorbar()\n",
325 | " tick_marks = np.arange(len(classes))\n",
326 | " plt.xticks(tick_marks, classes, rotation=45)\n",
327 | " plt.yticks(tick_marks, classes)\n",
328 | "\n",
329 | " fmt = '.2f' if normalize else 'd'\n",
330 | " thresh = cm.max() / 2.\n",
331 | " for i, j in itertools.product(range(cm.shape[0]), range(cm.shape[1])):\n",
332 | " plt.text(j, i, format(cm[i, j], fmt),\n",
333 | " horizontalalignment=\"center\",\n",
334 | " color=\"white\" if cm[i, j] > thresh else \"black\")\n",
335 | "\n",
336 | " plt.tight_layout()\n",
337 | " plt.ylabel('True label')\n",
338 | " plt.xlabel('Predicted label')\n",
339 | " plt.show()"
340 | ]
341 | },
342 | {
343 | "cell_type": "code",
344 | "execution_count": 11,
345 | "metadata": {},
346 | "outputs": [
347 | {
348 | "name": "stdout",
349 | "output_type": "stream",
350 | "text": [
351 | "[[108 11]\n",
352 | " [ 26 36]]\n"
353 | ]
354 | }
355 | ],
356 | "source": [
357 | "confusion = confusion_matrix(y_test, y_pred)\n",
358 | "print(confusion)"
359 | ]
360 | },
361 | {
362 | "cell_type": "code",
363 | "execution_count": 12,
364 | "metadata": {},
365 | "outputs": [
366 | {
367 | "name": "stdout",
368 | "output_type": "stream",
369 | "text": [
370 | "Confusion matrix, without normalization\n",
371 | "[[108 11]\n",
372 | " [ 26 36]]\n"
373 | ]
374 | },
375 | {
376 | "data": {
377 | "image/png": "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\n",
378 | "text/plain": [
379 | ""
380 | ]
381 | },
382 | "metadata": {
383 | "needs_background": "light"
384 | },
385 | "output_type": "display_data"
386 | }
387 | ],
388 | "source": [
389 | "plot_confusion_matrix(confusion, classes=['Non Diabetic', 'Diabetic'], title='Confusion matrix')"
390 | ]
391 | },
392 | {
393 | "cell_type": "code",
394 | "execution_count": 13,
395 | "metadata": {},
396 | "outputs": [],
397 | "source": [
398 | "# True Positives\n",
399 | "TP = confusion[1, 1]\n",
400 | "\n",
401 | "# True Negatives\n",
402 | "TN = confusion[0, 0] \n",
403 | "\n",
404 | "# False Positives\n",
405 | "FP = confusion[0, 1] \n",
406 | "\n",
407 | "# False Negatives\n",
408 | "FN = confusion[1, 0] "
409 | ]
410 | },
411 | {
412 | "cell_type": "markdown",
413 | "metadata": {
414 | "collapsed": true
415 | },
416 | "source": [
417 | "### 03. Metrics computed from the Confusion Matrix"
418 | ]
419 | },
420 | {
421 | "cell_type": "code",
422 | "execution_count": 14,
423 | "metadata": {},
424 | "outputs": [],
425 | "source": [
426 | "from sklearn.metrics import recall_score, precision_score"
427 | ]
428 | },
429 | {
430 | "cell_type": "markdown",
431 | "metadata": {},
432 | "source": [
433 | "#### Classification accuracy"
434 | ]
435 | },
436 | {
437 | "cell_type": "code",
438 | "execution_count": 15,
439 | "metadata": {},
440 | "outputs": [
441 | {
442 | "name": "stdout",
443 | "output_type": "stream",
444 | "text": [
445 | "0.7955801104972375\n",
446 | "0.7955801104972375\n"
447 | ]
448 | }
449 | ],
450 | "source": [
451 | "print((TP + TN) / float(TP + TN + FP + FN))\n",
452 | "print(accuracy_score(y_test, y_pred))"
453 | ]
454 | },
455 | {
456 | "cell_type": "markdown",
457 | "metadata": {},
458 | "source": [
459 | "#### Sensitivity/Recall"
460 | ]
461 | },
462 | {
463 | "cell_type": "code",
464 | "execution_count": 16,
465 | "metadata": {},
466 | "outputs": [
467 | {
468 | "name": "stdout",
469 | "output_type": "stream",
470 | "text": [
471 | "0.5806451612903226\n",
472 | "0.5806451612903226\n"
473 | ]
474 | }
475 | ],
476 | "source": [
477 | "print(TP / float(TP + FN))\n",
478 | "print(recall_score(y_test, y_pred))"
479 | ]
480 | },
481 | {
482 | "cell_type": "markdown",
483 | "metadata": {},
484 | "source": [
485 | "#### Specificity"
486 | ]
487 | },
488 | {
489 | "cell_type": "code",
490 | "execution_count": 17,
491 | "metadata": {},
492 | "outputs": [
493 | {
494 | "name": "stdout",
495 | "output_type": "stream",
496 | "text": [
497 | "0.907563025210084\n"
498 | ]
499 | }
500 | ],
501 | "source": [
502 | "print(TN / float(TN + FP))"
503 | ]
504 | },
505 | {
506 | "cell_type": "markdown",
507 | "metadata": {},
508 | "source": [
509 | "#### False Positive Rate"
510 | ]
511 | },
512 | {
513 | "cell_type": "code",
514 | "execution_count": 18,
515 | "metadata": {},
516 | "outputs": [
517 | {
518 | "name": "stdout",
519 | "output_type": "stream",
520 | "text": [
521 | "0.09243697478991597\n"
522 | ]
523 | }
524 | ],
525 | "source": [
526 | "print(FP / float(TN + FP))"
527 | ]
528 | },
529 | {
530 | "cell_type": "markdown",
531 | "metadata": {},
532 | "source": [
533 | "#### Precision"
534 | ]
535 | },
536 | {
537 | "cell_type": "code",
538 | "execution_count": 19,
539 | "metadata": {},
540 | "outputs": [
541 | {
542 | "name": "stdout",
543 | "output_type": "stream",
544 | "text": [
545 | "0.7659574468085106\n",
546 | "0.7659574468085106\n"
547 | ]
548 | }
549 | ],
550 | "source": [
551 | "print(TP / float(TP + FP))\n",
552 | "print(precision_score(y_test, y_pred))"
553 | ]
554 | },
555 | {
556 | "cell_type": "markdown",
557 | "metadata": {},
558 | "source": [
559 | "### Adjusting Classification Threshold"
560 | ]
561 | },
562 | {
563 | "cell_type": "code",
564 | "execution_count": 20,
565 | "metadata": {},
566 | "outputs": [
567 | {
568 | "data": {
569 | "text/plain": [
570 | "array([0, 0, 0, 1, 1, 0, 0, 0, 0, 0], dtype=int64)"
571 | ]
572 | },
573 | "execution_count": 20,
574 | "metadata": {},
575 | "output_type": "execute_result"
576 | }
577 | ],
578 | "source": [
579 | "# print the first 10 predicted responses\n",
580 | "logreg.predict(X_test)[0:10]"
581 | ]
582 | },
583 | {
584 | "cell_type": "code",
585 | "execution_count": 21,
586 | "metadata": {},
587 | "outputs": [
588 | {
589 | "data": {
590 | "text/plain": [
591 | "array([[0.80085377, 0.19914623],\n",
592 | " [0.70450063, 0.29549937],\n",
593 | " [0.81765257, 0.18234743],\n",
594 | " [0.45582948, 0.54417052],\n",
595 | " [0.32622925, 0.67377075],\n",
596 | " [0.79674719, 0.20325281],\n",
597 | " [0.74752722, 0.25247278],\n",
598 | " [0.64438483, 0.35561517],\n",
599 | " [0.62830673, 0.37169327],\n",
600 | " [0.69703945, 0.30296055]])"
601 | ]
602 | },
603 | "execution_count": 21,
604 | "metadata": {},
605 | "output_type": "execute_result"
606 | }
607 | ],
608 | "source": [
609 | "# print the first 10 predicted probabilities of class membership\n",
610 | "logreg.predict_proba(X_test)[0:10, :]"
611 | ]
612 | },
613 | {
614 | "cell_type": "code",
615 | "execution_count": 22,
616 | "metadata": {},
617 | "outputs": [],
618 | "source": [
619 | "# store the predicted probabilities for class 1 (diabetic)\n",
620 | "y_pred_prob = logreg.predict_proba(X_test)[:, 1]"
621 | ]
622 | },
623 | {
624 | "cell_type": "code",
625 | "execution_count": 23,
626 | "metadata": {},
627 | "outputs": [
628 | {
629 | "data": {
630 | "text/plain": [
631 | "Text(0, 0.5, 'Frequency')"
632 | ]
633 | },
634 | "execution_count": 23,
635 | "metadata": {},
636 | "output_type": "execute_result"
637 | },
638 | {
639 | "data": {
640 | "image/png": "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\n",
641 | "text/plain": [
642 | ""
643 | ]
644 | },
645 | "metadata": {
646 | "needs_background": "light"
647 | },
648 | "output_type": "display_data"
649 | }
650 | ],
651 | "source": [
652 | "# histogram of predicted probabilities\n",
653 | "plt.hist(y_pred_prob, bins=8, linewidth=1.2)\n",
654 | "plt.xlim(0, 1)\n",
655 | "plt.title('Histogram of predicted probabilities')\n",
656 | "plt.xlabel('Predicted probability of diabetes')\n",
657 | "plt.ylabel('Frequency')"
658 | ]
659 | },
660 | {
661 | "cell_type": "markdown",
662 | "metadata": {},
663 | "source": [
664 | "Decrease the threshold for predicting diabetes in order to increase the sensitivity of the classifier"
665 | ]
666 | },
667 | {
668 | "cell_type": "code",
669 | "execution_count": 24,
670 | "metadata": {},
671 | "outputs": [],
672 | "source": [
673 | "# predict diabetes if the predicted probability is greater than 0.3\n",
674 | "from sklearn.preprocessing import binarize\n",
675 | "\n",
676 | "y_pred_class = binarize([y_pred_prob], 0.3)[0]"
677 | ]
678 | },
679 | {
680 | "cell_type": "code",
681 | "execution_count": 25,
682 | "metadata": {},
683 | "outputs": [
684 | {
685 | "name": "stdout",
686 | "output_type": "stream",
687 | "text": [
688 | "[[108 11]\n",
689 | " [ 26 36]]\n"
690 | ]
691 | }
692 | ],
693 | "source": [
694 | "# previous confusion matrix (default threshold of 0.5)\n",
695 | "print(confusion)"
696 | ]
697 | },
698 | {
699 | "cell_type": "code",
700 | "execution_count": 26,
701 | "metadata": {},
702 | "outputs": [
703 | {
704 | "name": "stdout",
705 | "output_type": "stream",
706 | "text": [
707 | "[[82 37]\n",
708 | " [ 8 54]]\n"
709 | ]
710 | }
711 | ],
712 | "source": [
713 | "# new confusion matrix (threshold of 0.3)\n",
714 | "confusion_new = confusion_matrix(y_test, y_pred_class)\n",
715 | "print(confusion_new)"
716 | ]
717 | },
718 | {
719 | "cell_type": "code",
720 | "execution_count": 27,
721 | "metadata": {},
722 | "outputs": [],
723 | "source": [
724 | "# True Positives\n",
725 | "TP = confusion_new[1, 1]\n",
726 | "\n",
727 | "# True Negatives\n",
728 | "TN = confusion_new[0, 0] \n",
729 | "\n",
730 | "# False Positives\n",
731 | "FP = confusion_new[0, 1] \n",
732 | "\n",
733 | "# False Negatives\n",
734 | "FN = confusion_new[1, 0] "
735 | ]
736 | },
737 | {
738 | "cell_type": "code",
739 | "execution_count": 28,
740 | "metadata": {},
741 | "outputs": [
742 | {
743 | "name": "stdout",
744 | "output_type": "stream",
745 | "text": [
746 | "0.8709677419354839\n",
747 | "0.8709677419354839\n"
748 | ]
749 | }
750 | ],
751 | "source": [
752 | "# sensitivity has increased\n",
753 | "print(TP / float(TP + FN))\n",
754 | "print(recall_score(y_test, y_pred_class))"
755 | ]
756 | },
757 | {
758 | "cell_type": "code",
759 | "execution_count": 29,
760 | "metadata": {},
761 | "outputs": [
762 | {
763 | "name": "stdout",
764 | "output_type": "stream",
765 | "text": [
766 | "0.6890756302521008\n"
767 | ]
768 | }
769 | ],
770 | "source": [
771 | "# specificity has decreased\n",
772 | "print(TN / float(TN + FP))"
773 | ]
774 | },
775 | {
776 | "cell_type": "markdown",
777 | "metadata": {},
778 | "source": [
779 | "### 04. ROC Curves and Area Under the Curve (AUC)"
780 | ]
781 | },
782 | {
783 | "cell_type": "code",
784 | "execution_count": 30,
785 | "metadata": {},
786 | "outputs": [],
787 | "source": [
788 | "from sklearn.metrics import roc_curve, roc_auc_score"
789 | ]
790 | },
791 | {
792 | "cell_type": "code",
793 | "execution_count": 31,
794 | "metadata": {},
795 | "outputs": [
796 | {
797 | "data": {
798 | "image/png": "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\n",
799 | "text/plain": [
800 | ""
801 | ]
802 | },
803 | "metadata": {
804 | "needs_background": "light"
805 | },
806 | "output_type": "display_data"
807 | }
808 | ],
809 | "source": [
810 | "fpr, tpr, thresholds = roc_curve(y_test, y_pred_prob)\n",
811 | "plt.plot(fpr, tpr)\n",
812 | "plt.xlim([0.0, 1.0])\n",
813 | "plt.ylim([0.0, 1.0])\n",
814 | "plt.title('ROC curve for diabetes classifier')\n",
815 | "plt.xlabel('False Positive Rate (1 - Specificity)')\n",
816 | "plt.ylabel('True Positive Rate (Sensitivity)')\n",
817 | "plt.grid(True)"
818 | ]
819 | },
820 | {
821 | "cell_type": "code",
822 | "execution_count": 32,
823 | "metadata": {},
824 | "outputs": [],
825 | "source": [
826 | "# define a function that accepts a threshold and prints sensitivity and specificity\n",
827 | "def evaluate_threshold(threshold):\n",
828 | " print('Sensitivity:', tpr[thresholds > threshold][-1])\n",
829 | " print('Specificity:', 1 - fpr[thresholds > threshold][-1])"
830 | ]
831 | },
832 | {
833 | "cell_type": "code",
834 | "execution_count": 33,
835 | "metadata": {},
836 | "outputs": [
837 | {
838 | "name": "stdout",
839 | "output_type": "stream",
840 | "text": [
841 | "Sensitivity: 0.8709677419354839\n",
842 | "Specificity: 0.7058823529411764\n"
843 | ]
844 | }
845 | ],
846 | "source": [
847 | "evaluate_threshold(0.3)"
848 | ]
849 | },
850 | {
851 | "cell_type": "code",
852 | "execution_count": 34,
853 | "metadata": {},
854 | "outputs": [
855 | {
856 | "name": "stdout",
857 | "output_type": "stream",
858 | "text": [
859 | "Sensitivity: 0.5806451612903226\n",
860 | "Specificity: 0.907563025210084\n"
861 | ]
862 | }
863 | ],
864 | "source": [
865 | "evaluate_threshold(0.5)"
866 | ]
867 | },
868 | {
869 | "cell_type": "code",
870 | "execution_count": 35,
871 | "metadata": {},
872 | "outputs": [
873 | {
874 | "name": "stdout",
875 | "output_type": "stream",
876 | "text": [
877 | "0.8587693141772839\n"
878 | ]
879 | }
880 | ],
881 | "source": [
882 | "print(roc_auc_score(y_test, y_pred_prob))"
883 | ]
884 | },
885 | {
886 | "cell_type": "code",
887 | "execution_count": 36,
888 | "metadata": {},
889 | "outputs": [
890 | {
891 | "data": {
892 | "text/plain": [
893 | "0.8374308510638298"
894 | ]
895 | },
896 | "execution_count": 36,
897 | "metadata": {},
898 | "output_type": "execute_result"
899 | }
900 | ],
901 | "source": [
902 | "# calculate cross-validated AUC\n",
903 | "cross_val_score(logreg, X, y, cv=10, scoring='roc_auc').mean()"
904 | ]
905 | }
906 | ],
907 | "metadata": {
908 | "kernelspec": {
909 | "display_name": "Python 3",
910 | "language": "python",
911 | "name": "python3"
912 | },
913 | "language_info": {
914 | "codemirror_mode": {
915 | "name": "ipython",
916 | "version": 3
917 | },
918 | "file_extension": ".py",
919 | "mimetype": "text/x-python",
920 | "name": "python",
921 | "nbconvert_exporter": "python",
922 | "pygments_lexer": "ipython3",
923 | "version": "3.6.6"
924 | }
925 | },
926 | "nbformat": 4,
927 | "nbformat_minor": 2
928 | }
929 |
--------------------------------------------------------------------------------