schandel08 commited on
Commit
a8b81f3
·
1 Parent(s): ea3b6d6

Files uploaded

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. 1.26.0 +0 -0
  2. =1.26.0, +0 -0
  3. =1.4.0, +0 -0
  4. Diabetes_Prediction (1).ipynb +1832 -0
  5. Diabetes_Prediction_Fixed.ipynb +0 -0
  6. Heart_Disease_Prediction.ipynb +1488 -0
  7. Parkinsons.ipynb +2211 -0
  8. Project_19_Breast_Cancer_Classification_using_Machine_Learning.ipynb +0 -0
  9. app/streamlit_app.py +1307 -0
  10. check_setup.py +35 -0
  11. datasets/data.csv +0 -0
  12. datasets/diabetes.csv +769 -0
  13. datasets/heart.csv +1026 -0
  14. datasets/parkinsons.csv +196 -0
  15. diabetes_prediction.py +77 -0
  16. models/breast_cancer_model.pkl +3 -0
  17. models/diabetes_model.pkl +3 -0
  18. models/heart_disease_model.pkl +3 -0
  19. models/parkinsons_model.pkl +3 -0
  20. requirements.txt +6 -0
  21. src/__init__.py +0 -0
  22. src/__pycache__/__init__.cpython-310.pyc +0 -0
  23. src/__pycache__/__init__.cpython-311.pyc +0 -0
  24. src/__pycache__/config.cpython-310.pyc +0 -0
  25. src/__pycache__/config.cpython-311.pyc +0 -0
  26. src/__pycache__/data_preprocessing.cpython-311.pyc +0 -0
  27. src/__pycache__/model.cpython-310.pyc +0 -0
  28. src/__pycache__/model.cpython-311.pyc +0 -0
  29. src/config.py +21 -0
  30. src/data_preprocessing.py +28 -0
  31. src/model.py +120 -0
  32. src/models/__pycache__/base_model.cpython-310.pyc +0 -0
  33. src/models/__pycache__/base_model.cpython-311.pyc +0 -0
  34. src/models/__pycache__/breast_cancer.cpython-311.pyc +0 -0
  35. src/models/__pycache__/diabetes.cpython-310.pyc +0 -0
  36. src/models/__pycache__/diabetes.cpython-311.pyc +0 -0
  37. src/models/__pycache__/heart_disease.cpython-310.pyc +0 -0
  38. src/models/__pycache__/heart_disease.cpython-311.pyc +0 -0
  39. src/models/__pycache__/parkinsons.cpython-310.pyc +0 -0
  40. src/models/__pycache__/parkinsons.cpython-311.pyc +0 -0
  41. src/models/base_model.py +45 -0
  42. src/models/breast_cancer.py +28 -0
  43. src/models/diabetes.py +61 -0
  44. src/models/heart_disease.py +112 -0
  45. src/models/parkinsons.py +148 -0
  46. src/preprocessing/__pycache__/diabetes.cpython-311.pyc +0 -0
  47. src/preprocessing/__pycache__/heart_disease.cpython-311.pyc +0 -0
  48. src/preprocessing/__pycache__/parkinsons.cpython-311.pyc +0 -0
  49. src/preprocessing/diabetes.py +50 -0
  50. src/preprocessing/heart_disease.py +36 -0
1.26.0 ADDED
File without changes
=1.26.0, ADDED
File without changes
=1.4.0, ADDED
File without changes
Diabetes_Prediction (1).ipynb ADDED
@@ -0,0 +1,1832 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 3,
6
+ "metadata": {
7
+ "id": "_Gco0Fvcpu0m"
8
+ },
9
+ "outputs": [],
10
+ "source": [
11
+ "import numpy as np\n",
12
+ "import pandas as pd\n",
13
+ "from sklearn.preprocessing import StandardScaler\n",
14
+ "from sklearn.model_selection import train_test_split\n",
15
+ "from sklearn import svm\n",
16
+ "from sklearn.metrics import accuracy_score"
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": 1,
22
+ "metadata": {
23
+ "id": "0JF5qkBivY5g"
24
+ },
25
+ "outputs": [
26
+ {
27
+ "ename": "NameError",
28
+ "evalue": "name 'pd' is not defined",
29
+ "output_type": "error",
30
+ "traceback": [
31
+ "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
32
+ "\u001b[1;31mNameError\u001b[0m Traceback (most recent call last)",
33
+ "Cell \u001b[1;32mIn[1], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m diabetes_dataset \u001b[38;5;241m=\u001b[39m \u001b[43mpd\u001b[49m\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mC:\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mUsers\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mHP\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mOneDrive\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mDesktop\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mHackAI\u001b[39m\u001b[38;5;130;01m\\\\\u001b[39;00m\u001b[38;5;124mdiabetes.csv\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
34
+ "\u001b[1;31mNameError\u001b[0m: name 'pd' is not defined"
35
+ ]
36
+ }
37
+ ],
38
+ "source": [
39
+ "diabetes_dataset = pd.read_csv(r'C:\\\\Users\\\\HP\\\\OneDrive\\\\Desktop\\\\HackAI\\\\datasets\\\\diabetes.csv')"
40
+ ]
41
+ },
42
+ {
43
+ "cell_type": "code",
44
+ "execution_count": 5,
45
+ "metadata": {
46
+ "colab": {
47
+ "base_uri": "https://localhost:8080/",
48
+ "height": 206
49
+ },
50
+ "id": "Q2z7ibVjvylj",
51
+ "outputId": "e15b892b-8e84-41c8-dc99-496f77b6a072"
52
+ },
53
+ "outputs": [
54
+ {
55
+ "data": {
56
+ "text/html": [
57
+ "<div>\n",
58
+ "<style scoped>\n",
59
+ " .dataframe tbody tr th:only-of-type {\n",
60
+ " vertical-align: middle;\n",
61
+ " }\n",
62
+ "\n",
63
+ " .dataframe tbody tr th {\n",
64
+ " vertical-align: top;\n",
65
+ " }\n",
66
+ "\n",
67
+ " .dataframe thead th {\n",
68
+ " text-align: right;\n",
69
+ " }\n",
70
+ "</style>\n",
71
+ "<table border=\"1\" class=\"dataframe\">\n",
72
+ " <thead>\n",
73
+ " <tr style=\"text-align: right;\">\n",
74
+ " <th></th>\n",
75
+ " <th>Pregnancies</th>\n",
76
+ " <th>Glucose</th>\n",
77
+ " <th>BloodPressure</th>\n",
78
+ " <th>SkinThickness</th>\n",
79
+ " <th>Insulin</th>\n",
80
+ " <th>BMI</th>\n",
81
+ " <th>DiabetesPedigreeFunction</th>\n",
82
+ " <th>Age</th>\n",
83
+ " <th>Outcome</th>\n",
84
+ " </tr>\n",
85
+ " </thead>\n",
86
+ " <tbody>\n",
87
+ " <tr>\n",
88
+ " <th>0</th>\n",
89
+ " <td>6</td>\n",
90
+ " <td>148</td>\n",
91
+ " <td>72</td>\n",
92
+ " <td>35</td>\n",
93
+ " <td>0</td>\n",
94
+ " <td>33.6</td>\n",
95
+ " <td>0.627</td>\n",
96
+ " <td>50</td>\n",
97
+ " <td>1</td>\n",
98
+ " </tr>\n",
99
+ " <tr>\n",
100
+ " <th>1</th>\n",
101
+ " <td>1</td>\n",
102
+ " <td>85</td>\n",
103
+ " <td>66</td>\n",
104
+ " <td>29</td>\n",
105
+ " <td>0</td>\n",
106
+ " <td>26.6</td>\n",
107
+ " <td>0.351</td>\n",
108
+ " <td>31</td>\n",
109
+ " <td>0</td>\n",
110
+ " </tr>\n",
111
+ " <tr>\n",
112
+ " <th>2</th>\n",
113
+ " <td>8</td>\n",
114
+ " <td>183</td>\n",
115
+ " <td>64</td>\n",
116
+ " <td>0</td>\n",
117
+ " <td>0</td>\n",
118
+ " <td>23.3</td>\n",
119
+ " <td>0.672</td>\n",
120
+ " <td>32</td>\n",
121
+ " <td>1</td>\n",
122
+ " </tr>\n",
123
+ " <tr>\n",
124
+ " <th>3</th>\n",
125
+ " <td>1</td>\n",
126
+ " <td>89</td>\n",
127
+ " <td>66</td>\n",
128
+ " <td>23</td>\n",
129
+ " <td>94</td>\n",
130
+ " <td>28.1</td>\n",
131
+ " <td>0.167</td>\n",
132
+ " <td>21</td>\n",
133
+ " <td>0</td>\n",
134
+ " </tr>\n",
135
+ " <tr>\n",
136
+ " <th>4</th>\n",
137
+ " <td>0</td>\n",
138
+ " <td>137</td>\n",
139
+ " <td>40</td>\n",
140
+ " <td>35</td>\n",
141
+ " <td>168</td>\n",
142
+ " <td>43.1</td>\n",
143
+ " <td>2.288</td>\n",
144
+ " <td>33</td>\n",
145
+ " <td>1</td>\n",
146
+ " </tr>\n",
147
+ " </tbody>\n",
148
+ "</table>\n",
149
+ "</div>"
150
+ ],
151
+ "text/plain": [
152
+ " Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
153
+ "0 6 148 72 35 0 33.6 \n",
154
+ "1 1 85 66 29 0 26.6 \n",
155
+ "2 8 183 64 0 0 23.3 \n",
156
+ "3 1 89 66 23 94 28.1 \n",
157
+ "4 0 137 40 35 168 43.1 \n",
158
+ "\n",
159
+ " DiabetesPedigreeFunction Age Outcome \n",
160
+ "0 0.627 50 1 \n",
161
+ "1 0.351 31 0 \n",
162
+ "2 0.672 32 1 \n",
163
+ "3 0.167 21 0 \n",
164
+ "4 2.288 33 1 "
165
+ ]
166
+ },
167
+ "execution_count": 5,
168
+ "metadata": {},
169
+ "output_type": "execute_result"
170
+ }
171
+ ],
172
+ "source": [
173
+ "diabetes_dataset.head()"
174
+ ]
175
+ },
176
+ {
177
+ "cell_type": "code",
178
+ "execution_count": 6,
179
+ "metadata": {
180
+ "colab": {
181
+ "base_uri": "https://localhost:8080/"
182
+ },
183
+ "id": "nrfucFyW6N2r",
184
+ "outputId": "415c0733-0b31-4f70-b8d7-8dd38ef00279"
185
+ },
186
+ "outputs": [
187
+ {
188
+ "data": {
189
+ "text/plain": [
190
+ "(768, 9)"
191
+ ]
192
+ },
193
+ "execution_count": 6,
194
+ "metadata": {},
195
+ "output_type": "execute_result"
196
+ }
197
+ ],
198
+ "source": [
199
+ "diabetes_dataset.shape"
200
+ ]
201
+ },
202
+ {
203
+ "cell_type": "code",
204
+ "execution_count": 7,
205
+ "metadata": {
206
+ "colab": {
207
+ "base_uri": "https://localhost:8080/",
208
+ "height": 300
209
+ },
210
+ "id": "DUjrYTQY6XFj",
211
+ "outputId": "6275bc84-0067-43ba-cd3c-91b9d4aee02c"
212
+ },
213
+ "outputs": [
214
+ {
215
+ "data": {
216
+ "text/html": [
217
+ "<div>\n",
218
+ "<style scoped>\n",
219
+ " .dataframe tbody tr th:only-of-type {\n",
220
+ " vertical-align: middle;\n",
221
+ " }\n",
222
+ "\n",
223
+ " .dataframe tbody tr th {\n",
224
+ " vertical-align: top;\n",
225
+ " }\n",
226
+ "\n",
227
+ " .dataframe thead th {\n",
228
+ " text-align: right;\n",
229
+ " }\n",
230
+ "</style>\n",
231
+ "<table border=\"1\" class=\"dataframe\">\n",
232
+ " <thead>\n",
233
+ " <tr style=\"text-align: right;\">\n",
234
+ " <th></th>\n",
235
+ " <th>Pregnancies</th>\n",
236
+ " <th>Glucose</th>\n",
237
+ " <th>BloodPressure</th>\n",
238
+ " <th>SkinThickness</th>\n",
239
+ " <th>Insulin</th>\n",
240
+ " <th>BMI</th>\n",
241
+ " <th>DiabetesPedigreeFunction</th>\n",
242
+ " <th>Age</th>\n",
243
+ " <th>Outcome</th>\n",
244
+ " </tr>\n",
245
+ " </thead>\n",
246
+ " <tbody>\n",
247
+ " <tr>\n",
248
+ " <th>count</th>\n",
249
+ " <td>768.000000</td>\n",
250
+ " <td>768.000000</td>\n",
251
+ " <td>768.000000</td>\n",
252
+ " <td>768.000000</td>\n",
253
+ " <td>768.000000</td>\n",
254
+ " <td>768.000000</td>\n",
255
+ " <td>768.000000</td>\n",
256
+ " <td>768.000000</td>\n",
257
+ " <td>768.000000</td>\n",
258
+ " </tr>\n",
259
+ " <tr>\n",
260
+ " <th>mean</th>\n",
261
+ " <td>3.845052</td>\n",
262
+ " <td>120.894531</td>\n",
263
+ " <td>69.105469</td>\n",
264
+ " <td>20.536458</td>\n",
265
+ " <td>79.799479</td>\n",
266
+ " <td>31.992578</td>\n",
267
+ " <td>0.471876</td>\n",
268
+ " <td>33.240885</td>\n",
269
+ " <td>0.348958</td>\n",
270
+ " </tr>\n",
271
+ " <tr>\n",
272
+ " <th>std</th>\n",
273
+ " <td>3.369578</td>\n",
274
+ " <td>31.972618</td>\n",
275
+ " <td>19.355807</td>\n",
276
+ " <td>15.952218</td>\n",
277
+ " <td>115.244002</td>\n",
278
+ " <td>7.884160</td>\n",
279
+ " <td>0.331329</td>\n",
280
+ " <td>11.760232</td>\n",
281
+ " <td>0.476951</td>\n",
282
+ " </tr>\n",
283
+ " <tr>\n",
284
+ " <th>min</th>\n",
285
+ " <td>0.000000</td>\n",
286
+ " <td>0.000000</td>\n",
287
+ " <td>0.000000</td>\n",
288
+ " <td>0.000000</td>\n",
289
+ " <td>0.000000</td>\n",
290
+ " <td>0.000000</td>\n",
291
+ " <td>0.078000</td>\n",
292
+ " <td>21.000000</td>\n",
293
+ " <td>0.000000</td>\n",
294
+ " </tr>\n",
295
+ " <tr>\n",
296
+ " <th>25%</th>\n",
297
+ " <td>1.000000</td>\n",
298
+ " <td>99.000000</td>\n",
299
+ " <td>62.000000</td>\n",
300
+ " <td>0.000000</td>\n",
301
+ " <td>0.000000</td>\n",
302
+ " <td>27.300000</td>\n",
303
+ " <td>0.243750</td>\n",
304
+ " <td>24.000000</td>\n",
305
+ " <td>0.000000</td>\n",
306
+ " </tr>\n",
307
+ " <tr>\n",
308
+ " <th>50%</th>\n",
309
+ " <td>3.000000</td>\n",
310
+ " <td>117.000000</td>\n",
311
+ " <td>72.000000</td>\n",
312
+ " <td>23.000000</td>\n",
313
+ " <td>30.500000</td>\n",
314
+ " <td>32.000000</td>\n",
315
+ " <td>0.372500</td>\n",
316
+ " <td>29.000000</td>\n",
317
+ " <td>0.000000</td>\n",
318
+ " </tr>\n",
319
+ " <tr>\n",
320
+ " <th>75%</th>\n",
321
+ " <td>6.000000</td>\n",
322
+ " <td>140.250000</td>\n",
323
+ " <td>80.000000</td>\n",
324
+ " <td>32.000000</td>\n",
325
+ " <td>127.250000</td>\n",
326
+ " <td>36.600000</td>\n",
327
+ " <td>0.626250</td>\n",
328
+ " <td>41.000000</td>\n",
329
+ " <td>1.000000</td>\n",
330
+ " </tr>\n",
331
+ " <tr>\n",
332
+ " <th>max</th>\n",
333
+ " <td>17.000000</td>\n",
334
+ " <td>199.000000</td>\n",
335
+ " <td>122.000000</td>\n",
336
+ " <td>99.000000</td>\n",
337
+ " <td>846.000000</td>\n",
338
+ " <td>67.100000</td>\n",
339
+ " <td>2.420000</td>\n",
340
+ " <td>81.000000</td>\n",
341
+ " <td>1.000000</td>\n",
342
+ " </tr>\n",
343
+ " </tbody>\n",
344
+ "</table>\n",
345
+ "</div>"
346
+ ],
347
+ "text/plain": [
348
+ " Pregnancies Glucose BloodPressure SkinThickness Insulin \\\n",
349
+ "count 768.000000 768.000000 768.000000 768.000000 768.000000 \n",
350
+ "mean 3.845052 120.894531 69.105469 20.536458 79.799479 \n",
351
+ "std 3.369578 31.972618 19.355807 15.952218 115.244002 \n",
352
+ "min 0.000000 0.000000 0.000000 0.000000 0.000000 \n",
353
+ "25% 1.000000 99.000000 62.000000 0.000000 0.000000 \n",
354
+ "50% 3.000000 117.000000 72.000000 23.000000 30.500000 \n",
355
+ "75% 6.000000 140.250000 80.000000 32.000000 127.250000 \n",
356
+ "max 17.000000 199.000000 122.000000 99.000000 846.000000 \n",
357
+ "\n",
358
+ " BMI DiabetesPedigreeFunction Age Outcome \n",
359
+ "count 768.000000 768.000000 768.000000 768.000000 \n",
360
+ "mean 31.992578 0.471876 33.240885 0.348958 \n",
361
+ "std 7.884160 0.331329 11.760232 0.476951 \n",
362
+ "min 0.000000 0.078000 21.000000 0.000000 \n",
363
+ "25% 27.300000 0.243750 24.000000 0.000000 \n",
364
+ "50% 32.000000 0.372500 29.000000 0.000000 \n",
365
+ "75% 36.600000 0.626250 41.000000 1.000000 \n",
366
+ "max 67.100000 2.420000 81.000000 1.000000 "
367
+ ]
368
+ },
369
+ "execution_count": 7,
370
+ "metadata": {},
371
+ "output_type": "execute_result"
372
+ }
373
+ ],
374
+ "source": [
375
+ "diabetes_dataset.describe()"
376
+ ]
377
+ },
378
+ {
379
+ "cell_type": "code",
380
+ "execution_count": 8,
381
+ "metadata": {
382
+ "colab": {
383
+ "base_uri": "https://localhost:8080/",
384
+ "height": 178
385
+ },
386
+ "id": "QNCCoOa_6bzV",
387
+ "outputId": "af9285a8-065e-4ac5-e2fb-df8fc58854ab"
388
+ },
389
+ "outputs": [
390
+ {
391
+ "data": {
392
+ "text/plain": [
393
+ "Outcome\n",
394
+ "0 500\n",
395
+ "1 268\n",
396
+ "Name: count, dtype: int64"
397
+ ]
398
+ },
399
+ "execution_count": 8,
400
+ "metadata": {},
401
+ "output_type": "execute_result"
402
+ }
403
+ ],
404
+ "source": [
405
+ "diabetes_dataset['Outcome'].value_counts()"
406
+ ]
407
+ },
408
+ {
409
+ "cell_type": "code",
410
+ "execution_count": 9,
411
+ "metadata": {
412
+ "colab": {
413
+ "base_uri": "https://localhost:8080/",
414
+ "height": 143
415
+ },
416
+ "id": "j2lxGwDR6pdd",
417
+ "outputId": "048a63b5-e930-407e-d69d-a91152370eba"
418
+ },
419
+ "outputs": [
420
+ {
421
+ "data": {
422
+ "text/html": [
423
+ "<div>\n",
424
+ "<style scoped>\n",
425
+ " .dataframe tbody tr th:only-of-type {\n",
426
+ " vertical-align: middle;\n",
427
+ " }\n",
428
+ "\n",
429
+ " .dataframe tbody tr th {\n",
430
+ " vertical-align: top;\n",
431
+ " }\n",
432
+ "\n",
433
+ " .dataframe thead th {\n",
434
+ " text-align: right;\n",
435
+ " }\n",
436
+ "</style>\n",
437
+ "<table border=\"1\" class=\"dataframe\">\n",
438
+ " <thead>\n",
439
+ " <tr style=\"text-align: right;\">\n",
440
+ " <th></th>\n",
441
+ " <th>Pregnancies</th>\n",
442
+ " <th>Glucose</th>\n",
443
+ " <th>BloodPressure</th>\n",
444
+ " <th>SkinThickness</th>\n",
445
+ " <th>Insulin</th>\n",
446
+ " <th>BMI</th>\n",
447
+ " <th>DiabetesPedigreeFunction</th>\n",
448
+ " <th>Age</th>\n",
449
+ " </tr>\n",
450
+ " <tr>\n",
451
+ " <th>Outcome</th>\n",
452
+ " <th></th>\n",
453
+ " <th></th>\n",
454
+ " <th></th>\n",
455
+ " <th></th>\n",
456
+ " <th></th>\n",
457
+ " <th></th>\n",
458
+ " <th></th>\n",
459
+ " <th></th>\n",
460
+ " </tr>\n",
461
+ " </thead>\n",
462
+ " <tbody>\n",
463
+ " <tr>\n",
464
+ " <th>0</th>\n",
465
+ " <td>3.298000</td>\n",
466
+ " <td>109.980000</td>\n",
467
+ " <td>68.184000</td>\n",
468
+ " <td>19.664000</td>\n",
469
+ " <td>68.792000</td>\n",
470
+ " <td>30.304200</td>\n",
471
+ " <td>0.429734</td>\n",
472
+ " <td>31.190000</td>\n",
473
+ " </tr>\n",
474
+ " <tr>\n",
475
+ " <th>1</th>\n",
476
+ " <td>4.865672</td>\n",
477
+ " <td>141.257463</td>\n",
478
+ " <td>70.824627</td>\n",
479
+ " <td>22.164179</td>\n",
480
+ " <td>100.335821</td>\n",
481
+ " <td>35.142537</td>\n",
482
+ " <td>0.550500</td>\n",
483
+ " <td>37.067164</td>\n",
484
+ " </tr>\n",
485
+ " </tbody>\n",
486
+ "</table>\n",
487
+ "</div>"
488
+ ],
489
+ "text/plain": [
490
+ " Pregnancies Glucose BloodPressure SkinThickness Insulin \\\n",
491
+ "Outcome \n",
492
+ "0 3.298000 109.980000 68.184000 19.664000 68.792000 \n",
493
+ "1 4.865672 141.257463 70.824627 22.164179 100.335821 \n",
494
+ "\n",
495
+ " BMI DiabetesPedigreeFunction Age \n",
496
+ "Outcome \n",
497
+ "0 30.304200 0.429734 31.190000 \n",
498
+ "1 35.142537 0.550500 37.067164 "
499
+ ]
500
+ },
501
+ "execution_count": 9,
502
+ "metadata": {},
503
+ "output_type": "execute_result"
504
+ }
505
+ ],
506
+ "source": [
507
+ "diabetes_dataset.groupby('Outcome').mean()"
508
+ ]
509
+ },
510
+ {
511
+ "cell_type": "code",
512
+ "execution_count": 10,
513
+ "metadata": {
514
+ "id": "7wLphCXC6yrX"
515
+ },
516
+ "outputs": [],
517
+ "source": [
518
+ "X = diabetes_dataset.drop(columns = 'Outcome', axis=1)\n",
519
+ "Y = diabetes_dataset['Outcome']"
520
+ ]
521
+ },
522
+ {
523
+ "cell_type": "code",
524
+ "execution_count": 11,
525
+ "metadata": {
526
+ "colab": {
527
+ "base_uri": "https://localhost:8080/"
528
+ },
529
+ "id": "rtsUoiSX7BtH",
530
+ "outputId": "7d7679a5-1e8b-4111-c7b7-04494885ad01"
531
+ },
532
+ "outputs": [
533
+ {
534
+ "name": "stdout",
535
+ "output_type": "stream",
536
+ "text": [
537
+ " Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
538
+ "0 6 148 72 35 0 33.6 \n",
539
+ "1 1 85 66 29 0 26.6 \n",
540
+ "2 8 183 64 0 0 23.3 \n",
541
+ "3 1 89 66 23 94 28.1 \n",
542
+ "4 0 137 40 35 168 43.1 \n",
543
+ ".. ... ... ... ... ... ... \n",
544
+ "763 10 101 76 48 180 32.9 \n",
545
+ "764 2 122 70 27 0 36.8 \n",
546
+ "765 5 121 72 23 112 26.2 \n",
547
+ "766 1 126 60 0 0 30.1 \n",
548
+ "767 1 93 70 31 0 30.4 \n",
549
+ "\n",
550
+ " DiabetesPedigreeFunction Age \n",
551
+ "0 0.627 50 \n",
552
+ "1 0.351 31 \n",
553
+ "2 0.672 32 \n",
554
+ "3 0.167 21 \n",
555
+ "4 2.288 33 \n",
556
+ ".. ... ... \n",
557
+ "763 0.171 63 \n",
558
+ "764 0.340 27 \n",
559
+ "765 0.245 30 \n",
560
+ "766 0.349 47 \n",
561
+ "767 0.315 23 \n",
562
+ "\n",
563
+ "[768 rows x 8 columns]\n"
564
+ ]
565
+ }
566
+ ],
567
+ "source": [
568
+ "print(X)"
569
+ ]
570
+ },
571
+ {
572
+ "cell_type": "code",
573
+ "execution_count": 12,
574
+ "metadata": {
575
+ "colab": {
576
+ "base_uri": "https://localhost:8080/"
577
+ },
578
+ "id": "_jnjO9kF7FYm",
579
+ "outputId": "526d8e6e-1d3b-4104-8e1c-ffc35616467c"
580
+ },
581
+ "outputs": [
582
+ {
583
+ "name": "stdout",
584
+ "output_type": "stream",
585
+ "text": [
586
+ "0 1\n",
587
+ "1 0\n",
588
+ "2 1\n",
589
+ "3 0\n",
590
+ "4 1\n",
591
+ " ..\n",
592
+ "763 0\n",
593
+ "764 0\n",
594
+ "765 0\n",
595
+ "766 1\n",
596
+ "767 0\n",
597
+ "Name: Outcome, Length: 768, dtype: int64\n"
598
+ ]
599
+ }
600
+ ],
601
+ "source": [
602
+ "print(Y)"
603
+ ]
604
+ },
605
+ {
606
+ "cell_type": "code",
607
+ "execution_count": 13,
608
+ "metadata": {
609
+ "id": "b1qp_9cs7H7U"
610
+ },
611
+ "outputs": [],
612
+ "source": [
613
+ "scaler = StandardScaler()"
614
+ ]
615
+ },
616
+ {
617
+ "cell_type": "markdown",
618
+ "metadata": {
619
+ "id": "yYM3oZMu8bfg"
620
+ },
621
+ "source": []
622
+ },
623
+ {
624
+ "cell_type": "code",
625
+ "execution_count": 14,
626
+ "metadata": {
627
+ "colab": {
628
+ "base_uri": "https://localhost:8080/",
629
+ "height": 57
630
+ },
631
+ "id": "IGdNbrwz7-gc",
632
+ "outputId": "90947c44-6f69-41f5-9e6b-7bdb5d6eb1b2"
633
+ },
634
+ "outputs": [
635
+ {
636
+ "data": {
637
+ "text/html": [
638
+ "<style>#sk-container-id-1 {\n",
639
+ " /* Definition of color scheme common for light and dark mode */\n",
640
+ " --sklearn-color-text: #000;\n",
641
+ " --sklearn-color-text-muted: #666;\n",
642
+ " --sklearn-color-line: gray;\n",
643
+ " /* Definition of color scheme for unfitted estimators */\n",
644
+ " --sklearn-color-unfitted-level-0: #fff5e6;\n",
645
+ " --sklearn-color-unfitted-level-1: #f6e4d2;\n",
646
+ " --sklearn-color-unfitted-level-2: #ffe0b3;\n",
647
+ " --sklearn-color-unfitted-level-3: chocolate;\n",
648
+ " /* Definition of color scheme for fitted estimators */\n",
649
+ " --sklearn-color-fitted-level-0: #f0f8ff;\n",
650
+ " --sklearn-color-fitted-level-1: #d4ebff;\n",
651
+ " --sklearn-color-fitted-level-2: #b3dbfd;\n",
652
+ " --sklearn-color-fitted-level-3: cornflowerblue;\n",
653
+ "\n",
654
+ " /* Specific color for light theme */\n",
655
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
656
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
657
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
658
+ " --sklearn-color-icon: #696969;\n",
659
+ "\n",
660
+ " @media (prefers-color-scheme: dark) {\n",
661
+ " /* Redefinition of color scheme for dark theme */\n",
662
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
663
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
664
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
665
+ " --sklearn-color-icon: #878787;\n",
666
+ " }\n",
667
+ "}\n",
668
+ "\n",
669
+ "#sk-container-id-1 {\n",
670
+ " color: var(--sklearn-color-text);\n",
671
+ "}\n",
672
+ "\n",
673
+ "#sk-container-id-1 pre {\n",
674
+ " padding: 0;\n",
675
+ "}\n",
676
+ "\n",
677
+ "#sk-container-id-1 input.sk-hidden--visually {\n",
678
+ " border: 0;\n",
679
+ " clip: rect(1px 1px 1px 1px);\n",
680
+ " clip: rect(1px, 1px, 1px, 1px);\n",
681
+ " height: 1px;\n",
682
+ " margin: -1px;\n",
683
+ " overflow: hidden;\n",
684
+ " padding: 0;\n",
685
+ " position: absolute;\n",
686
+ " width: 1px;\n",
687
+ "}\n",
688
+ "\n",
689
+ "#sk-container-id-1 div.sk-dashed-wrapped {\n",
690
+ " border: 1px dashed var(--sklearn-color-line);\n",
691
+ " margin: 0 0.4em 0.5em 0.4em;\n",
692
+ " box-sizing: border-box;\n",
693
+ " padding-bottom: 0.4em;\n",
694
+ " background-color: var(--sklearn-color-background);\n",
695
+ "}\n",
696
+ "\n",
697
+ "#sk-container-id-1 div.sk-container {\n",
698
+ " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
699
+ " but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
700
+ " so we also need the `!important` here to be able to override the\n",
701
+ " default hidden behavior on the sphinx rendered scikit-learn.org.\n",
702
+ " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
703
+ " display: inline-block !important;\n",
704
+ " position: relative;\n",
705
+ "}\n",
706
+ "\n",
707
+ "#sk-container-id-1 div.sk-text-repr-fallback {\n",
708
+ " display: none;\n",
709
+ "}\n",
710
+ "\n",
711
+ "div.sk-parallel-item,\n",
712
+ "div.sk-serial,\n",
713
+ "div.sk-item {\n",
714
+ " /* draw centered vertical line to link estimators */\n",
715
+ " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
716
+ " background-size: 2px 100%;\n",
717
+ " background-repeat: no-repeat;\n",
718
+ " background-position: center center;\n",
719
+ "}\n",
720
+ "\n",
721
+ "/* Parallel-specific style estimator block */\n",
722
+ "\n",
723
+ "#sk-container-id-1 div.sk-parallel-item::after {\n",
724
+ " content: \"\";\n",
725
+ " width: 100%;\n",
726
+ " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
727
+ " flex-grow: 1;\n",
728
+ "}\n",
729
+ "\n",
730
+ "#sk-container-id-1 div.sk-parallel {\n",
731
+ " display: flex;\n",
732
+ " align-items: stretch;\n",
733
+ " justify-content: center;\n",
734
+ " background-color: var(--sklearn-color-background);\n",
735
+ " position: relative;\n",
736
+ "}\n",
737
+ "\n",
738
+ "#sk-container-id-1 div.sk-parallel-item {\n",
739
+ " display: flex;\n",
740
+ " flex-direction: column;\n",
741
+ "}\n",
742
+ "\n",
743
+ "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
744
+ " align-self: flex-end;\n",
745
+ " width: 50%;\n",
746
+ "}\n",
747
+ "\n",
748
+ "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
749
+ " align-self: flex-start;\n",
750
+ " width: 50%;\n",
751
+ "}\n",
752
+ "\n",
753
+ "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
754
+ " width: 0;\n",
755
+ "}\n",
756
+ "\n",
757
+ "/* Serial-specific style estimator block */\n",
758
+ "\n",
759
+ "#sk-container-id-1 div.sk-serial {\n",
760
+ " display: flex;\n",
761
+ " flex-direction: column;\n",
762
+ " align-items: center;\n",
763
+ " background-color: var(--sklearn-color-background);\n",
764
+ " padding-right: 1em;\n",
765
+ " padding-left: 1em;\n",
766
+ "}\n",
767
+ "\n",
768
+ "\n",
769
+ "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
770
+ "clickable and can be expanded/collapsed.\n",
771
+ "- Pipeline and ColumnTransformer use this feature and define the default style\n",
772
+ "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
773
+ "*/\n",
774
+ "\n",
775
+ "/* Pipeline and ColumnTransformer style (default) */\n",
776
+ "\n",
777
+ "#sk-container-id-1 div.sk-toggleable {\n",
778
+ " /* Default theme specific background. It is overwritten whether we have a\n",
779
+ " specific estimator or a Pipeline/ColumnTransformer */\n",
780
+ " background-color: var(--sklearn-color-background);\n",
781
+ "}\n",
782
+ "\n",
783
+ "/* Toggleable label */\n",
784
+ "#sk-container-id-1 label.sk-toggleable__label {\n",
785
+ " cursor: pointer;\n",
786
+ " display: flex;\n",
787
+ " width: 100%;\n",
788
+ " margin-bottom: 0;\n",
789
+ " padding: 0.5em;\n",
790
+ " box-sizing: border-box;\n",
791
+ " text-align: center;\n",
792
+ " align-items: start;\n",
793
+ " justify-content: space-between;\n",
794
+ " gap: 0.5em;\n",
795
+ "}\n",
796
+ "\n",
797
+ "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
798
+ " font-size: 0.6rem;\n",
799
+ " font-weight: lighter;\n",
800
+ " color: var(--sklearn-color-text-muted);\n",
801
+ "}\n",
802
+ "\n",
803
+ "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
804
+ " /* Arrow on the left of the label */\n",
805
+ " content: \"▸\";\n",
806
+ " float: left;\n",
807
+ " margin-right: 0.25em;\n",
808
+ " color: var(--sklearn-color-icon);\n",
809
+ "}\n",
810
+ "\n",
811
+ "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
812
+ " color: var(--sklearn-color-text);\n",
813
+ "}\n",
814
+ "\n",
815
+ "/* Toggleable content - dropdown */\n",
816
+ "\n",
817
+ "#sk-container-id-1 div.sk-toggleable__content {\n",
818
+ " max-height: 0;\n",
819
+ " max-width: 0;\n",
820
+ " overflow: hidden;\n",
821
+ " text-align: left;\n",
822
+ " /* unfitted */\n",
823
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
824
+ "}\n",
825
+ "\n",
826
+ "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
827
+ " /* fitted */\n",
828
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
829
+ "}\n",
830
+ "\n",
831
+ "#sk-container-id-1 div.sk-toggleable__content pre {\n",
832
+ " margin: 0.2em;\n",
833
+ " border-radius: 0.25em;\n",
834
+ " color: var(--sklearn-color-text);\n",
835
+ " /* unfitted */\n",
836
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
837
+ "}\n",
838
+ "\n",
839
+ "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
840
+ " /* unfitted */\n",
841
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
842
+ "}\n",
843
+ "\n",
844
+ "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
845
+ " /* Expand drop-down */\n",
846
+ " max-height: 200px;\n",
847
+ " max-width: 100%;\n",
848
+ " overflow: auto;\n",
849
+ "}\n",
850
+ "\n",
851
+ "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
852
+ " content: \"▾\";\n",
853
+ "}\n",
854
+ "\n",
855
+ "/* Pipeline/ColumnTransformer-specific style */\n",
856
+ "\n",
857
+ "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
858
+ " color: var(--sklearn-color-text);\n",
859
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
860
+ "}\n",
861
+ "\n",
862
+ "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
863
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
864
+ "}\n",
865
+ "\n",
866
+ "/* Estimator-specific style */\n",
867
+ "\n",
868
+ "/* Colorize estimator box */\n",
869
+ "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
870
+ " /* unfitted */\n",
871
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
872
+ "}\n",
873
+ "\n",
874
+ "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
875
+ " /* fitted */\n",
876
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
877
+ "}\n",
878
+ "\n",
879
+ "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
880
+ "#sk-container-id-1 div.sk-label label {\n",
881
+ " /* The background is the default theme color */\n",
882
+ " color: var(--sklearn-color-text-on-default-background);\n",
883
+ "}\n",
884
+ "\n",
885
+ "/* On hover, darken the color of the background */\n",
886
+ "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
887
+ " color: var(--sklearn-color-text);\n",
888
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
889
+ "}\n",
890
+ "\n",
891
+ "/* Label box, darken color on hover, fitted */\n",
892
+ "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
893
+ " color: var(--sklearn-color-text);\n",
894
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
895
+ "}\n",
896
+ "\n",
897
+ "/* Estimator label */\n",
898
+ "\n",
899
+ "#sk-container-id-1 div.sk-label label {\n",
900
+ " font-family: monospace;\n",
901
+ " font-weight: bold;\n",
902
+ " display: inline-block;\n",
903
+ " line-height: 1.2em;\n",
904
+ "}\n",
905
+ "\n",
906
+ "#sk-container-id-1 div.sk-label-container {\n",
907
+ " text-align: center;\n",
908
+ "}\n",
909
+ "\n",
910
+ "/* Estimator-specific */\n",
911
+ "#sk-container-id-1 div.sk-estimator {\n",
912
+ " font-family: monospace;\n",
913
+ " border: 1px dotted var(--sklearn-color-border-box);\n",
914
+ " border-radius: 0.25em;\n",
915
+ " box-sizing: border-box;\n",
916
+ " margin-bottom: 0.5em;\n",
917
+ " /* unfitted */\n",
918
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
919
+ "}\n",
920
+ "\n",
921
+ "#sk-container-id-1 div.sk-estimator.fitted {\n",
922
+ " /* fitted */\n",
923
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
924
+ "}\n",
925
+ "\n",
926
+ "/* on hover */\n",
927
+ "#sk-container-id-1 div.sk-estimator:hover {\n",
928
+ " /* unfitted */\n",
929
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
930
+ "}\n",
931
+ "\n",
932
+ "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
933
+ " /* fitted */\n",
934
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
935
+ "}\n",
936
+ "\n",
937
+ "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
938
+ "\n",
939
+ "/* Common style for \"i\" and \"?\" */\n",
940
+ "\n",
941
+ ".sk-estimator-doc-link,\n",
942
+ "a:link.sk-estimator-doc-link,\n",
943
+ "a:visited.sk-estimator-doc-link {\n",
944
+ " float: right;\n",
945
+ " font-size: smaller;\n",
946
+ " line-height: 1em;\n",
947
+ " font-family: monospace;\n",
948
+ " background-color: var(--sklearn-color-background);\n",
949
+ " border-radius: 1em;\n",
950
+ " height: 1em;\n",
951
+ " width: 1em;\n",
952
+ " text-decoration: none !important;\n",
953
+ " margin-left: 0.5em;\n",
954
+ " text-align: center;\n",
955
+ " /* unfitted */\n",
956
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
957
+ " color: var(--sklearn-color-unfitted-level-1);\n",
958
+ "}\n",
959
+ "\n",
960
+ ".sk-estimator-doc-link.fitted,\n",
961
+ "a:link.sk-estimator-doc-link.fitted,\n",
962
+ "a:visited.sk-estimator-doc-link.fitted {\n",
963
+ " /* fitted */\n",
964
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
965
+ " color: var(--sklearn-color-fitted-level-1);\n",
966
+ "}\n",
967
+ "\n",
968
+ "/* On hover */\n",
969
+ "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
970
+ ".sk-estimator-doc-link:hover,\n",
971
+ "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
972
+ ".sk-estimator-doc-link:hover {\n",
973
+ " /* unfitted */\n",
974
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
975
+ " color: var(--sklearn-color-background);\n",
976
+ " text-decoration: none;\n",
977
+ "}\n",
978
+ "\n",
979
+ "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
980
+ ".sk-estimator-doc-link.fitted:hover,\n",
981
+ "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
982
+ ".sk-estimator-doc-link.fitted:hover {\n",
983
+ " /* fitted */\n",
984
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
985
+ " color: var(--sklearn-color-background);\n",
986
+ " text-decoration: none;\n",
987
+ "}\n",
988
+ "\n",
989
+ "/* Span, style for the box shown on hovering the info icon */\n",
990
+ ".sk-estimator-doc-link span {\n",
991
+ " display: none;\n",
992
+ " z-index: 9999;\n",
993
+ " position: relative;\n",
994
+ " font-weight: normal;\n",
995
+ " right: .2ex;\n",
996
+ " padding: .5ex;\n",
997
+ " margin: .5ex;\n",
998
+ " width: min-content;\n",
999
+ " min-width: 20ex;\n",
1000
+ " max-width: 50ex;\n",
1001
+ " color: var(--sklearn-color-text);\n",
1002
+ " box-shadow: 2pt 2pt 4pt #999;\n",
1003
+ " /* unfitted */\n",
1004
+ " background: var(--sklearn-color-unfitted-level-0);\n",
1005
+ " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
1006
+ "}\n",
1007
+ "\n",
1008
+ ".sk-estimator-doc-link.fitted span {\n",
1009
+ " /* fitted */\n",
1010
+ " background: var(--sklearn-color-fitted-level-0);\n",
1011
+ " border: var(--sklearn-color-fitted-level-3);\n",
1012
+ "}\n",
1013
+ "\n",
1014
+ ".sk-estimator-doc-link:hover span {\n",
1015
+ " display: block;\n",
1016
+ "}\n",
1017
+ "\n",
1018
+ "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
1019
+ "\n",
1020
+ "#sk-container-id-1 a.estimator_doc_link {\n",
1021
+ " float: right;\n",
1022
+ " font-size: 1rem;\n",
1023
+ " line-height: 1em;\n",
1024
+ " font-family: monospace;\n",
1025
+ " background-color: var(--sklearn-color-background);\n",
1026
+ " border-radius: 1rem;\n",
1027
+ " height: 1rem;\n",
1028
+ " width: 1rem;\n",
1029
+ " text-decoration: none;\n",
1030
+ " /* unfitted */\n",
1031
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1032
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1033
+ "}\n",
1034
+ "\n",
1035
+ "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
1036
+ " /* fitted */\n",
1037
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1038
+ " color: var(--sklearn-color-fitted-level-1);\n",
1039
+ "}\n",
1040
+ "\n",
1041
+ "/* On hover */\n",
1042
+ "#sk-container-id-1 a.estimator_doc_link:hover {\n",
1043
+ " /* unfitted */\n",
1044
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1045
+ " color: var(--sklearn-color-background);\n",
1046
+ " text-decoration: none;\n",
1047
+ "}\n",
1048
+ "\n",
1049
+ "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
1050
+ " /* fitted */\n",
1051
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1052
+ "}\n",
1053
+ "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>StandardScaler()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div>"
1054
+ ],
1055
+ "text/plain": [
1056
+ "StandardScaler()"
1057
+ ]
1058
+ },
1059
+ "execution_count": 14,
1060
+ "metadata": {},
1061
+ "output_type": "execute_result"
1062
+ }
1063
+ ],
1064
+ "source": [
1065
+ "scaler.fit(X)"
1066
+ ]
1067
+ },
1068
+ {
1069
+ "cell_type": "markdown",
1070
+ "metadata": {
1071
+ "id": "KsS6JOFw8bZk"
1072
+ },
1073
+ "source": []
1074
+ },
1075
+ {
1076
+ "cell_type": "markdown",
1077
+ "metadata": {
1078
+ "id": "huU7m8Pd8bWR"
1079
+ },
1080
+ "source": []
1081
+ },
1082
+ {
1083
+ "cell_type": "code",
1084
+ "execution_count": 15,
1085
+ "metadata": {
1086
+ "id": "s49vp8nQ8Gxe"
1087
+ },
1088
+ "outputs": [],
1089
+ "source": [
1090
+ "standardized_data = scaler.transform(X)"
1091
+ ]
1092
+ },
1093
+ {
1094
+ "cell_type": "code",
1095
+ "execution_count": 16,
1096
+ "metadata": {
1097
+ "colab": {
1098
+ "base_uri": "https://localhost:8080/"
1099
+ },
1100
+ "id": "Lsyq0mji8I9B",
1101
+ "outputId": "dfb7b721-08c8-45f7-ff07-20fa4e4136be"
1102
+ },
1103
+ "outputs": [
1104
+ {
1105
+ "name": "stdout",
1106
+ "output_type": "stream",
1107
+ "text": [
1108
+ "[[ 0.63994726 0.84832379 0.14964075 ... 0.20401277 0.46849198\n",
1109
+ " 1.4259954 ]\n",
1110
+ " [-0.84488505 -1.12339636 -0.16054575 ... -0.68442195 -0.36506078\n",
1111
+ " -0.19067191]\n",
1112
+ " [ 1.23388019 1.94372388 -0.26394125 ... -1.10325546 0.60439732\n",
1113
+ " -0.10558415]\n",
1114
+ " ...\n",
1115
+ " [ 0.3429808 0.00330087 0.14964075 ... -0.73518964 -0.68519336\n",
1116
+ " -0.27575966]\n",
1117
+ " [-0.84488505 0.1597866 -0.47073225 ... -0.24020459 -0.37110101\n",
1118
+ " 1.17073215]\n",
1119
+ " [-0.84488505 -0.8730192 0.04624525 ... -0.20212881 -0.47378505\n",
1120
+ " -0.87137393]]\n"
1121
+ ]
1122
+ }
1123
+ ],
1124
+ "source": [
1125
+ "print(standardized_data)"
1126
+ ]
1127
+ },
1128
+ {
1129
+ "cell_type": "code",
1130
+ "execution_count": 17,
1131
+ "metadata": {
1132
+ "id": "crWoLd0r8iz8"
1133
+ },
1134
+ "outputs": [],
1135
+ "source": [
1136
+ "X = standardized_data\n",
1137
+ "Y = diabetes_dataset['Outcome']"
1138
+ ]
1139
+ },
1140
+ {
1141
+ "cell_type": "code",
1142
+ "execution_count": 18,
1143
+ "metadata": {
1144
+ "colab": {
1145
+ "base_uri": "https://localhost:8080/"
1146
+ },
1147
+ "id": "uyefyWM48mm7",
1148
+ "outputId": "05ef46a6-3bf5-45a1-9f76-5be5629757fb"
1149
+ },
1150
+ "outputs": [
1151
+ {
1152
+ "name": "stdout",
1153
+ "output_type": "stream",
1154
+ "text": [
1155
+ "[[ 0.63994726 0.84832379 0.14964075 ... 0.20401277 0.46849198\n",
1156
+ " 1.4259954 ]\n",
1157
+ " [-0.84488505 -1.12339636 -0.16054575 ... -0.68442195 -0.36506078\n",
1158
+ " -0.19067191]\n",
1159
+ " [ 1.23388019 1.94372388 -0.26394125 ... -1.10325546 0.60439732\n",
1160
+ " -0.10558415]\n",
1161
+ " ...\n",
1162
+ " [ 0.3429808 0.00330087 0.14964075 ... -0.73518964 -0.68519336\n",
1163
+ " -0.27575966]\n",
1164
+ " [-0.84488505 0.1597866 -0.47073225 ... -0.24020459 -0.37110101\n",
1165
+ " 1.17073215]\n",
1166
+ " [-0.84488505 -0.8730192 0.04624525 ... -0.20212881 -0.47378505\n",
1167
+ " -0.87137393]]\n",
1168
+ "0 1\n",
1169
+ "1 0\n",
1170
+ "2 1\n",
1171
+ "3 0\n",
1172
+ "4 1\n",
1173
+ " ..\n",
1174
+ "763 0\n",
1175
+ "764 0\n",
1176
+ "765 0\n",
1177
+ "766 1\n",
1178
+ "767 0\n",
1179
+ "Name: Outcome, Length: 768, dtype: int64\n"
1180
+ ]
1181
+ }
1182
+ ],
1183
+ "source": [
1184
+ "print(X)\n",
1185
+ "print(Y)"
1186
+ ]
1187
+ },
1188
+ {
1189
+ "cell_type": "code",
1190
+ "execution_count": 19,
1191
+ "metadata": {
1192
+ "id": "LNHOwa_A8wAP"
1193
+ },
1194
+ "outputs": [],
1195
+ "source": [
1196
+ "X_train, X_test, Y_train, Y_test = train_test_split(X,Y, test_size = 0.2, stratify=Y, random_state=2)"
1197
+ ]
1198
+ },
1199
+ {
1200
+ "cell_type": "code",
1201
+ "execution_count": 20,
1202
+ "metadata": {
1203
+ "colab": {
1204
+ "base_uri": "https://localhost:8080/"
1205
+ },
1206
+ "id": "VoL2r2Xj80cz",
1207
+ "outputId": "53133539-64b7-4136-993d-a51e2c4e7541"
1208
+ },
1209
+ "outputs": [
1210
+ {
1211
+ "name": "stdout",
1212
+ "output_type": "stream",
1213
+ "text": [
1214
+ "(768, 8) (614, 8) (154, 8)\n"
1215
+ ]
1216
+ }
1217
+ ],
1218
+ "source": [
1219
+ "print(X.shape, X_train.shape, X_test.shape)"
1220
+ ]
1221
+ },
1222
+ {
1223
+ "cell_type": "code",
1224
+ "execution_count": 21,
1225
+ "metadata": {
1226
+ "id": "yVIrVzEJ84vp"
1227
+ },
1228
+ "outputs": [],
1229
+ "source": [
1230
+ "classifier = svm.SVC(kernel='linear')"
1231
+ ]
1232
+ },
1233
+ {
1234
+ "cell_type": "code",
1235
+ "execution_count": 22,
1236
+ "metadata": {
1237
+ "colab": {
1238
+ "base_uri": "https://localhost:8080/",
1239
+ "height": 80
1240
+ },
1241
+ "id": "XZqCLlbL9I2v",
1242
+ "outputId": "298621ed-b9f8-4b32-fe46-48052263e1e5"
1243
+ },
1244
+ "outputs": [
1245
+ {
1246
+ "data": {
1247
+ "text/html": [
1248
+ "<style>#sk-container-id-2 {\n",
1249
+ " /* Definition of color scheme common for light and dark mode */\n",
1250
+ " --sklearn-color-text: #000;\n",
1251
+ " --sklearn-color-text-muted: #666;\n",
1252
+ " --sklearn-color-line: gray;\n",
1253
+ " /* Definition of color scheme for unfitted estimators */\n",
1254
+ " --sklearn-color-unfitted-level-0: #fff5e6;\n",
1255
+ " --sklearn-color-unfitted-level-1: #f6e4d2;\n",
1256
+ " --sklearn-color-unfitted-level-2: #ffe0b3;\n",
1257
+ " --sklearn-color-unfitted-level-3: chocolate;\n",
1258
+ " /* Definition of color scheme for fitted estimators */\n",
1259
+ " --sklearn-color-fitted-level-0: #f0f8ff;\n",
1260
+ " --sklearn-color-fitted-level-1: #d4ebff;\n",
1261
+ " --sklearn-color-fitted-level-2: #b3dbfd;\n",
1262
+ " --sklearn-color-fitted-level-3: cornflowerblue;\n",
1263
+ "\n",
1264
+ " /* Specific color for light theme */\n",
1265
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
1266
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
1267
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
1268
+ " --sklearn-color-icon: #696969;\n",
1269
+ "\n",
1270
+ " @media (prefers-color-scheme: dark) {\n",
1271
+ " /* Redefinition of color scheme for dark theme */\n",
1272
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
1273
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
1274
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
1275
+ " --sklearn-color-icon: #878787;\n",
1276
+ " }\n",
1277
+ "}\n",
1278
+ "\n",
1279
+ "#sk-container-id-2 {\n",
1280
+ " color: var(--sklearn-color-text);\n",
1281
+ "}\n",
1282
+ "\n",
1283
+ "#sk-container-id-2 pre {\n",
1284
+ " padding: 0;\n",
1285
+ "}\n",
1286
+ "\n",
1287
+ "#sk-container-id-2 input.sk-hidden--visually {\n",
1288
+ " border: 0;\n",
1289
+ " clip: rect(1px 1px 1px 1px);\n",
1290
+ " clip: rect(1px, 1px, 1px, 1px);\n",
1291
+ " height: 1px;\n",
1292
+ " margin: -1px;\n",
1293
+ " overflow: hidden;\n",
1294
+ " padding: 0;\n",
1295
+ " position: absolute;\n",
1296
+ " width: 1px;\n",
1297
+ "}\n",
1298
+ "\n",
1299
+ "#sk-container-id-2 div.sk-dashed-wrapped {\n",
1300
+ " border: 1px dashed var(--sklearn-color-line);\n",
1301
+ " margin: 0 0.4em 0.5em 0.4em;\n",
1302
+ " box-sizing: border-box;\n",
1303
+ " padding-bottom: 0.4em;\n",
1304
+ " background-color: var(--sklearn-color-background);\n",
1305
+ "}\n",
1306
+ "\n",
1307
+ "#sk-container-id-2 div.sk-container {\n",
1308
+ " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
1309
+ " but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
1310
+ " so we also need the `!important` here to be able to override the\n",
1311
+ " default hidden behavior on the sphinx rendered scikit-learn.org.\n",
1312
+ " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
1313
+ " display: inline-block !important;\n",
1314
+ " position: relative;\n",
1315
+ "}\n",
1316
+ "\n",
1317
+ "#sk-container-id-2 div.sk-text-repr-fallback {\n",
1318
+ " display: none;\n",
1319
+ "}\n",
1320
+ "\n",
1321
+ "div.sk-parallel-item,\n",
1322
+ "div.sk-serial,\n",
1323
+ "div.sk-item {\n",
1324
+ " /* draw centered vertical line to link estimators */\n",
1325
+ " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
1326
+ " background-size: 2px 100%;\n",
1327
+ " background-repeat: no-repeat;\n",
1328
+ " background-position: center center;\n",
1329
+ "}\n",
1330
+ "\n",
1331
+ "/* Parallel-specific style estimator block */\n",
1332
+ "\n",
1333
+ "#sk-container-id-2 div.sk-parallel-item::after {\n",
1334
+ " content: \"\";\n",
1335
+ " width: 100%;\n",
1336
+ " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
1337
+ " flex-grow: 1;\n",
1338
+ "}\n",
1339
+ "\n",
1340
+ "#sk-container-id-2 div.sk-parallel {\n",
1341
+ " display: flex;\n",
1342
+ " align-items: stretch;\n",
1343
+ " justify-content: center;\n",
1344
+ " background-color: var(--sklearn-color-background);\n",
1345
+ " position: relative;\n",
1346
+ "}\n",
1347
+ "\n",
1348
+ "#sk-container-id-2 div.sk-parallel-item {\n",
1349
+ " display: flex;\n",
1350
+ " flex-direction: column;\n",
1351
+ "}\n",
1352
+ "\n",
1353
+ "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
1354
+ " align-self: flex-end;\n",
1355
+ " width: 50%;\n",
1356
+ "}\n",
1357
+ "\n",
1358
+ "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
1359
+ " align-self: flex-start;\n",
1360
+ " width: 50%;\n",
1361
+ "}\n",
1362
+ "\n",
1363
+ "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
1364
+ " width: 0;\n",
1365
+ "}\n",
1366
+ "\n",
1367
+ "/* Serial-specific style estimator block */\n",
1368
+ "\n",
1369
+ "#sk-container-id-2 div.sk-serial {\n",
1370
+ " display: flex;\n",
1371
+ " flex-direction: column;\n",
1372
+ " align-items: center;\n",
1373
+ " background-color: var(--sklearn-color-background);\n",
1374
+ " padding-right: 1em;\n",
1375
+ " padding-left: 1em;\n",
1376
+ "}\n",
1377
+ "\n",
1378
+ "\n",
1379
+ "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
1380
+ "clickable and can be expanded/collapsed.\n",
1381
+ "- Pipeline and ColumnTransformer use this feature and define the default style\n",
1382
+ "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
1383
+ "*/\n",
1384
+ "\n",
1385
+ "/* Pipeline and ColumnTransformer style (default) */\n",
1386
+ "\n",
1387
+ "#sk-container-id-2 div.sk-toggleable {\n",
1388
+ " /* Default theme specific background. It is overwritten whether we have a\n",
1389
+ " specific estimator or a Pipeline/ColumnTransformer */\n",
1390
+ " background-color: var(--sklearn-color-background);\n",
1391
+ "}\n",
1392
+ "\n",
1393
+ "/* Toggleable label */\n",
1394
+ "#sk-container-id-2 label.sk-toggleable__label {\n",
1395
+ " cursor: pointer;\n",
1396
+ " display: flex;\n",
1397
+ " width: 100%;\n",
1398
+ " margin-bottom: 0;\n",
1399
+ " padding: 0.5em;\n",
1400
+ " box-sizing: border-box;\n",
1401
+ " text-align: center;\n",
1402
+ " align-items: start;\n",
1403
+ " justify-content: space-between;\n",
1404
+ " gap: 0.5em;\n",
1405
+ "}\n",
1406
+ "\n",
1407
+ "#sk-container-id-2 label.sk-toggleable__label .caption {\n",
1408
+ " font-size: 0.6rem;\n",
1409
+ " font-weight: lighter;\n",
1410
+ " color: var(--sklearn-color-text-muted);\n",
1411
+ "}\n",
1412
+ "\n",
1413
+ "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
1414
+ " /* Arrow on the left of the label */\n",
1415
+ " content: \"▸\";\n",
1416
+ " float: left;\n",
1417
+ " margin-right: 0.25em;\n",
1418
+ " color: var(--sklearn-color-icon);\n",
1419
+ "}\n",
1420
+ "\n",
1421
+ "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
1422
+ " color: var(--sklearn-color-text);\n",
1423
+ "}\n",
1424
+ "\n",
1425
+ "/* Toggleable content - dropdown */\n",
1426
+ "\n",
1427
+ "#sk-container-id-2 div.sk-toggleable__content {\n",
1428
+ " max-height: 0;\n",
1429
+ " max-width: 0;\n",
1430
+ " overflow: hidden;\n",
1431
+ " text-align: left;\n",
1432
+ " /* unfitted */\n",
1433
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1434
+ "}\n",
1435
+ "\n",
1436
+ "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
1437
+ " /* fitted */\n",
1438
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1439
+ "}\n",
1440
+ "\n",
1441
+ "#sk-container-id-2 div.sk-toggleable__content pre {\n",
1442
+ " margin: 0.2em;\n",
1443
+ " border-radius: 0.25em;\n",
1444
+ " color: var(--sklearn-color-text);\n",
1445
+ " /* unfitted */\n",
1446
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1447
+ "}\n",
1448
+ "\n",
1449
+ "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
1450
+ " /* unfitted */\n",
1451
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1452
+ "}\n",
1453
+ "\n",
1454
+ "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
1455
+ " /* Expand drop-down */\n",
1456
+ " max-height: 200px;\n",
1457
+ " max-width: 100%;\n",
1458
+ " overflow: auto;\n",
1459
+ "}\n",
1460
+ "\n",
1461
+ "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
1462
+ " content: \"▾\";\n",
1463
+ "}\n",
1464
+ "\n",
1465
+ "/* Pipeline/ColumnTransformer-specific style */\n",
1466
+ "\n",
1467
+ "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1468
+ " color: var(--sklearn-color-text);\n",
1469
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1470
+ "}\n",
1471
+ "\n",
1472
+ "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1473
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1474
+ "}\n",
1475
+ "\n",
1476
+ "/* Estimator-specific style */\n",
1477
+ "\n",
1478
+ "/* Colorize estimator box */\n",
1479
+ "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1480
+ " /* unfitted */\n",
1481
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1482
+ "}\n",
1483
+ "\n",
1484
+ "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1485
+ " /* fitted */\n",
1486
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1487
+ "}\n",
1488
+ "\n",
1489
+ "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
1490
+ "#sk-container-id-2 div.sk-label label {\n",
1491
+ " /* The background is the default theme color */\n",
1492
+ " color: var(--sklearn-color-text-on-default-background);\n",
1493
+ "}\n",
1494
+ "\n",
1495
+ "/* On hover, darken the color of the background */\n",
1496
+ "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
1497
+ " color: var(--sklearn-color-text);\n",
1498
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1499
+ "}\n",
1500
+ "\n",
1501
+ "/* Label box, darken color on hover, fitted */\n",
1502
+ "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
1503
+ " color: var(--sklearn-color-text);\n",
1504
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1505
+ "}\n",
1506
+ "\n",
1507
+ "/* Estimator label */\n",
1508
+ "\n",
1509
+ "#sk-container-id-2 div.sk-label label {\n",
1510
+ " font-family: monospace;\n",
1511
+ " font-weight: bold;\n",
1512
+ " display: inline-block;\n",
1513
+ " line-height: 1.2em;\n",
1514
+ "}\n",
1515
+ "\n",
1516
+ "#sk-container-id-2 div.sk-label-container {\n",
1517
+ " text-align: center;\n",
1518
+ "}\n",
1519
+ "\n",
1520
+ "/* Estimator-specific */\n",
1521
+ "#sk-container-id-2 div.sk-estimator {\n",
1522
+ " font-family: monospace;\n",
1523
+ " border: 1px dotted var(--sklearn-color-border-box);\n",
1524
+ " border-radius: 0.25em;\n",
1525
+ " box-sizing: border-box;\n",
1526
+ " margin-bottom: 0.5em;\n",
1527
+ " /* unfitted */\n",
1528
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1529
+ "}\n",
1530
+ "\n",
1531
+ "#sk-container-id-2 div.sk-estimator.fitted {\n",
1532
+ " /* fitted */\n",
1533
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1534
+ "}\n",
1535
+ "\n",
1536
+ "/* on hover */\n",
1537
+ "#sk-container-id-2 div.sk-estimator:hover {\n",
1538
+ " /* unfitted */\n",
1539
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1540
+ "}\n",
1541
+ "\n",
1542
+ "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
1543
+ " /* fitted */\n",
1544
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1545
+ "}\n",
1546
+ "\n",
1547
+ "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
1548
+ "\n",
1549
+ "/* Common style for \"i\" and \"?\" */\n",
1550
+ "\n",
1551
+ ".sk-estimator-doc-link,\n",
1552
+ "a:link.sk-estimator-doc-link,\n",
1553
+ "a:visited.sk-estimator-doc-link {\n",
1554
+ " float: right;\n",
1555
+ " font-size: smaller;\n",
1556
+ " line-height: 1em;\n",
1557
+ " font-family: monospace;\n",
1558
+ " background-color: var(--sklearn-color-background);\n",
1559
+ " border-radius: 1em;\n",
1560
+ " height: 1em;\n",
1561
+ " width: 1em;\n",
1562
+ " text-decoration: none !important;\n",
1563
+ " margin-left: 0.5em;\n",
1564
+ " text-align: center;\n",
1565
+ " /* unfitted */\n",
1566
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1567
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1568
+ "}\n",
1569
+ "\n",
1570
+ ".sk-estimator-doc-link.fitted,\n",
1571
+ "a:link.sk-estimator-doc-link.fitted,\n",
1572
+ "a:visited.sk-estimator-doc-link.fitted {\n",
1573
+ " /* fitted */\n",
1574
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1575
+ " color: var(--sklearn-color-fitted-level-1);\n",
1576
+ "}\n",
1577
+ "\n",
1578
+ "/* On hover */\n",
1579
+ "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
1580
+ ".sk-estimator-doc-link:hover,\n",
1581
+ "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
1582
+ ".sk-estimator-doc-link:hover {\n",
1583
+ " /* unfitted */\n",
1584
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1585
+ " color: var(--sklearn-color-background);\n",
1586
+ " text-decoration: none;\n",
1587
+ "}\n",
1588
+ "\n",
1589
+ "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
1590
+ ".sk-estimator-doc-link.fitted:hover,\n",
1591
+ "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
1592
+ ".sk-estimator-doc-link.fitted:hover {\n",
1593
+ " /* fitted */\n",
1594
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1595
+ " color: var(--sklearn-color-background);\n",
1596
+ " text-decoration: none;\n",
1597
+ "}\n",
1598
+ "\n",
1599
+ "/* Span, style for the box shown on hovering the info icon */\n",
1600
+ ".sk-estimator-doc-link span {\n",
1601
+ " display: none;\n",
1602
+ " z-index: 9999;\n",
1603
+ " position: relative;\n",
1604
+ " font-weight: normal;\n",
1605
+ " right: .2ex;\n",
1606
+ " padding: .5ex;\n",
1607
+ " margin: .5ex;\n",
1608
+ " width: min-content;\n",
1609
+ " min-width: 20ex;\n",
1610
+ " max-width: 50ex;\n",
1611
+ " color: var(--sklearn-color-text);\n",
1612
+ " box-shadow: 2pt 2pt 4pt #999;\n",
1613
+ " /* unfitted */\n",
1614
+ " background: var(--sklearn-color-unfitted-level-0);\n",
1615
+ " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
1616
+ "}\n",
1617
+ "\n",
1618
+ ".sk-estimator-doc-link.fitted span {\n",
1619
+ " /* fitted */\n",
1620
+ " background: var(--sklearn-color-fitted-level-0);\n",
1621
+ " border: var(--sklearn-color-fitted-level-3);\n",
1622
+ "}\n",
1623
+ "\n",
1624
+ ".sk-estimator-doc-link:hover span {\n",
1625
+ " display: block;\n",
1626
+ "}\n",
1627
+ "\n",
1628
+ "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
1629
+ "\n",
1630
+ "#sk-container-id-2 a.estimator_doc_link {\n",
1631
+ " float: right;\n",
1632
+ " font-size: 1rem;\n",
1633
+ " line-height: 1em;\n",
1634
+ " font-family: monospace;\n",
1635
+ " background-color: var(--sklearn-color-background);\n",
1636
+ " border-radius: 1rem;\n",
1637
+ " height: 1rem;\n",
1638
+ " width: 1rem;\n",
1639
+ " text-decoration: none;\n",
1640
+ " /* unfitted */\n",
1641
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1642
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1643
+ "}\n",
1644
+ "\n",
1645
+ "#sk-container-id-2 a.estimator_doc_link.fitted {\n",
1646
+ " /* fitted */\n",
1647
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1648
+ " color: var(--sklearn-color-fitted-level-1);\n",
1649
+ "}\n",
1650
+ "\n",
1651
+ "/* On hover */\n",
1652
+ "#sk-container-id-2 a.estimator_doc_link:hover {\n",
1653
+ " /* unfitted */\n",
1654
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1655
+ " color: var(--sklearn-color-background);\n",
1656
+ " text-decoration: none;\n",
1657
+ "}\n",
1658
+ "\n",
1659
+ "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
1660
+ " /* fitted */\n",
1661
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1662
+ "}\n",
1663
+ "</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(kernel=&#x27;linear&#x27;)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>SVC</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(kernel=&#x27;linear&#x27;)</pre></div> </div></div></div></div>"
1664
+ ],
1665
+ "text/plain": [
1666
+ "SVC(kernel='linear')"
1667
+ ]
1668
+ },
1669
+ "execution_count": 22,
1670
+ "metadata": {},
1671
+ "output_type": "execute_result"
1672
+ }
1673
+ ],
1674
+ "source": [
1675
+ "classifier.fit(X_train, Y_train)"
1676
+ ]
1677
+ },
1678
+ {
1679
+ "cell_type": "code",
1680
+ "execution_count": 23,
1681
+ "metadata": {
1682
+ "id": "LqgHSt5t9RxB"
1683
+ },
1684
+ "outputs": [],
1685
+ "source": [
1686
+ "# accuracy score on the training data\n",
1687
+ "X_train_prediction = classifier.predict(X_train)\n",
1688
+ "training_data_accuracy = accuracy_score(X_train_prediction, Y_train)"
1689
+ ]
1690
+ },
1691
+ {
1692
+ "cell_type": "code",
1693
+ "execution_count": 24,
1694
+ "metadata": {
1695
+ "colab": {
1696
+ "base_uri": "https://localhost:8080/"
1697
+ },
1698
+ "id": "Q3bpRt_r9q7s",
1699
+ "outputId": "55be24af-15ab-4bce-9e3a-a04c14556ac8"
1700
+ },
1701
+ "outputs": [
1702
+ {
1703
+ "name": "stdout",
1704
+ "output_type": "stream",
1705
+ "text": [
1706
+ "Accuracy score of the training data : 0.7866449511400652\n"
1707
+ ]
1708
+ }
1709
+ ],
1710
+ "source": [
1711
+ "print('Accuracy score of the training data : ', training_data_accuracy)"
1712
+ ]
1713
+ },
1714
+ {
1715
+ "cell_type": "markdown",
1716
+ "metadata": {
1717
+ "id": "8wi8t8OC-DYw"
1718
+ },
1719
+ "source": []
1720
+ },
1721
+ {
1722
+ "cell_type": "code",
1723
+ "execution_count": 25,
1724
+ "metadata": {
1725
+ "id": "Ym9wCTqB-D3O"
1726
+ },
1727
+ "outputs": [],
1728
+ "source": [
1729
+ "X_test_prediction = classifier.predict(X_test)\n",
1730
+ "test_data_accuracy = accuracy_score(X_test_prediction, Y_test)"
1731
+ ]
1732
+ },
1733
+ {
1734
+ "cell_type": "code",
1735
+ "execution_count": 26,
1736
+ "metadata": {
1737
+ "colab": {
1738
+ "base_uri": "https://localhost:8080/"
1739
+ },
1740
+ "id": "5kPa3HRc-idN",
1741
+ "outputId": "3087aa3a-a0a9-4993-b930-a31e03b685de"
1742
+ },
1743
+ "outputs": [
1744
+ {
1745
+ "name": "stdout",
1746
+ "output_type": "stream",
1747
+ "text": [
1748
+ "Accuracy score of the test data : 0.7727272727272727\n"
1749
+ ]
1750
+ }
1751
+ ],
1752
+ "source": [
1753
+ "print('Accuracy score of the test data : ', test_data_accuracy)"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "cell_type": "code",
1758
+ "execution_count": 27,
1759
+ "metadata": {
1760
+ "colab": {
1761
+ "base_uri": "https://localhost:8080/"
1762
+ },
1763
+ "id": "LQX8Vy2e-qWj",
1764
+ "outputId": "aced3a44-0dc6-4ea6-b787-7cf6708ff96b"
1765
+ },
1766
+ "outputs": [
1767
+ {
1768
+ "name": "stdout",
1769
+ "output_type": "stream",
1770
+ "text": [
1771
+ "[[ 0.3429808 1.41167241 0.14964075 -0.09637905 0.82661621 -0.78595734\n",
1772
+ " 0.34768723 1.51108316]]\n",
1773
+ "[1]\n",
1774
+ "The person is diabetic\n"
1775
+ ]
1776
+ },
1777
+ {
1778
+ "name": "stderr",
1779
+ "output_type": "stream",
1780
+ "text": [
1781
+ "c:\\Users\\HP\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\utils\\validation.py:2739: UserWarning: X does not have valid feature names, but StandardScaler was fitted with feature names\n",
1782
+ " warnings.warn(\n"
1783
+ ]
1784
+ }
1785
+ ],
1786
+ "source": [
1787
+ "input_data = (5,166,72,19,175,25.8,0.587,51)\n",
1788
+ "\n",
1789
+ "# changing the input_data to numpy array\n",
1790
+ "input_data_as_numpy_array = np.asarray(input_data)\n",
1791
+ "\n",
1792
+ "# reshape the array as we are predicting for one instance\n",
1793
+ "input_data_reshaped = input_data_as_numpy_array.reshape(1,-1)\n",
1794
+ "\n",
1795
+ "# standardize the input data\n",
1796
+ "std_data = scaler.transform(input_data_reshaped)\n",
1797
+ "print(std_data)\n",
1798
+ "\n",
1799
+ "prediction = classifier.predict(std_data)\n",
1800
+ "print(prediction)\n",
1801
+ "\n",
1802
+ "if (prediction[0] == 0):\n",
1803
+ " print('The person is not diabetic')\n",
1804
+ "else:\n",
1805
+ " print('The person is diabetic')"
1806
+ ]
1807
+ }
1808
+ ],
1809
+ "metadata": {
1810
+ "colab": {
1811
+ "provenance": []
1812
+ },
1813
+ "kernelspec": {
1814
+ "display_name": "Python 3",
1815
+ "name": "python3"
1816
+ },
1817
+ "language_info": {
1818
+ "codemirror_mode": {
1819
+ "name": "ipython",
1820
+ "version": 3
1821
+ },
1822
+ "file_extension": ".py",
1823
+ "mimetype": "text/x-python",
1824
+ "name": "python",
1825
+ "nbconvert_exporter": "python",
1826
+ "pygments_lexer": "ipython3",
1827
+ "version": "3.11.4"
1828
+ }
1829
+ },
1830
+ "nbformat": 4,
1831
+ "nbformat_minor": 0
1832
+ }
Diabetes_Prediction_Fixed.ipynb ADDED
File without changes
Heart_Disease_Prediction.ipynb ADDED
@@ -0,0 +1,1488 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 1,
6
+ "metadata": {
7
+ "id": "opakNSBXYnr7"
8
+ },
9
+ "outputs": [],
10
+ "source": [
11
+ "import pandas as pd\n",
12
+ "import numpy as np\n",
13
+ "from sklearn.model_selection import train_test_split\n",
14
+ "from sklearn.linear_model import LogisticRegression\n",
15
+ "from sklearn.metrics import accuracy_score\n"
16
+ ]
17
+ },
18
+ {
19
+ "cell_type": "code",
20
+ "execution_count": 2,
21
+ "metadata": {
22
+ "id": "V_dgpge_wKay"
23
+ },
24
+ "outputs": [],
25
+ "source": [
26
+ "heart_data = pd.read_csv(r'C:\\\\Users\\\\HP\\\\OneDrive\\\\Desktop\\\\HackAI\\\\datasets\\\\heart.csv')"
27
+ ]
28
+ },
29
+ {
30
+ "cell_type": "code",
31
+ "execution_count": 3,
32
+ "metadata": {
33
+ "colab": {
34
+ "base_uri": "https://localhost:8080/",
35
+ "height": 206
36
+ },
37
+ "id": "hR4tVdiwwqe6",
38
+ "outputId": "b3509daf-e057-4f5d-da58-4eea2eea7445"
39
+ },
40
+ "outputs": [
41
+ {
42
+ "data": {
43
+ "text/html": [
44
+ "<div>\n",
45
+ "<style scoped>\n",
46
+ " .dataframe tbody tr th:only-of-type {\n",
47
+ " vertical-align: middle;\n",
48
+ " }\n",
49
+ "\n",
50
+ " .dataframe tbody tr th {\n",
51
+ " vertical-align: top;\n",
52
+ " }\n",
53
+ "\n",
54
+ " .dataframe thead th {\n",
55
+ " text-align: right;\n",
56
+ " }\n",
57
+ "</style>\n",
58
+ "<table border=\"1\" class=\"dataframe\">\n",
59
+ " <thead>\n",
60
+ " <tr style=\"text-align: right;\">\n",
61
+ " <th></th>\n",
62
+ " <th>age</th>\n",
63
+ " <th>sex</th>\n",
64
+ " <th>cp</th>\n",
65
+ " <th>trestbps</th>\n",
66
+ " <th>chol</th>\n",
67
+ " <th>fbs</th>\n",
68
+ " <th>restecg</th>\n",
69
+ " <th>thalach</th>\n",
70
+ " <th>exang</th>\n",
71
+ " <th>oldpeak</th>\n",
72
+ " <th>slope</th>\n",
73
+ " <th>ca</th>\n",
74
+ " <th>thal</th>\n",
75
+ " <th>target</th>\n",
76
+ " </tr>\n",
77
+ " </thead>\n",
78
+ " <tbody>\n",
79
+ " <tr>\n",
80
+ " <th>0</th>\n",
81
+ " <td>52</td>\n",
82
+ " <td>1</td>\n",
83
+ " <td>0</td>\n",
84
+ " <td>125</td>\n",
85
+ " <td>212</td>\n",
86
+ " <td>0</td>\n",
87
+ " <td>1</td>\n",
88
+ " <td>168</td>\n",
89
+ " <td>0</td>\n",
90
+ " <td>1.0</td>\n",
91
+ " <td>2</td>\n",
92
+ " <td>2</td>\n",
93
+ " <td>3</td>\n",
94
+ " <td>0</td>\n",
95
+ " </tr>\n",
96
+ " <tr>\n",
97
+ " <th>1</th>\n",
98
+ " <td>53</td>\n",
99
+ " <td>1</td>\n",
100
+ " <td>0</td>\n",
101
+ " <td>140</td>\n",
102
+ " <td>203</td>\n",
103
+ " <td>1</td>\n",
104
+ " <td>0</td>\n",
105
+ " <td>155</td>\n",
106
+ " <td>1</td>\n",
107
+ " <td>3.1</td>\n",
108
+ " <td>0</td>\n",
109
+ " <td>0</td>\n",
110
+ " <td>3</td>\n",
111
+ " <td>0</td>\n",
112
+ " </tr>\n",
113
+ " <tr>\n",
114
+ " <th>2</th>\n",
115
+ " <td>70</td>\n",
116
+ " <td>1</td>\n",
117
+ " <td>0</td>\n",
118
+ " <td>145</td>\n",
119
+ " <td>174</td>\n",
120
+ " <td>0</td>\n",
121
+ " <td>1</td>\n",
122
+ " <td>125</td>\n",
123
+ " <td>1</td>\n",
124
+ " <td>2.6</td>\n",
125
+ " <td>0</td>\n",
126
+ " <td>0</td>\n",
127
+ " <td>3</td>\n",
128
+ " <td>0</td>\n",
129
+ " </tr>\n",
130
+ " <tr>\n",
131
+ " <th>3</th>\n",
132
+ " <td>61</td>\n",
133
+ " <td>1</td>\n",
134
+ " <td>0</td>\n",
135
+ " <td>148</td>\n",
136
+ " <td>203</td>\n",
137
+ " <td>0</td>\n",
138
+ " <td>1</td>\n",
139
+ " <td>161</td>\n",
140
+ " <td>0</td>\n",
141
+ " <td>0.0</td>\n",
142
+ " <td>2</td>\n",
143
+ " <td>1</td>\n",
144
+ " <td>3</td>\n",
145
+ " <td>0</td>\n",
146
+ " </tr>\n",
147
+ " <tr>\n",
148
+ " <th>4</th>\n",
149
+ " <td>62</td>\n",
150
+ " <td>0</td>\n",
151
+ " <td>0</td>\n",
152
+ " <td>138</td>\n",
153
+ " <td>294</td>\n",
154
+ " <td>1</td>\n",
155
+ " <td>1</td>\n",
156
+ " <td>106</td>\n",
157
+ " <td>0</td>\n",
158
+ " <td>1.9</td>\n",
159
+ " <td>1</td>\n",
160
+ " <td>3</td>\n",
161
+ " <td>2</td>\n",
162
+ " <td>0</td>\n",
163
+ " </tr>\n",
164
+ " </tbody>\n",
165
+ "</table>\n",
166
+ "</div>"
167
+ ],
168
+ "text/plain": [
169
+ " age sex cp trestbps chol fbs restecg thalach exang oldpeak slope \\\n",
170
+ "0 52 1 0 125 212 0 1 168 0 1.0 2 \n",
171
+ "1 53 1 0 140 203 1 0 155 1 3.1 0 \n",
172
+ "2 70 1 0 145 174 0 1 125 1 2.6 0 \n",
173
+ "3 61 1 0 148 203 0 1 161 0 0.0 2 \n",
174
+ "4 62 0 0 138 294 1 1 106 0 1.9 1 \n",
175
+ "\n",
176
+ " ca thal target \n",
177
+ "0 2 3 0 \n",
178
+ "1 0 3 0 \n",
179
+ "2 0 3 0 \n",
180
+ "3 1 3 0 \n",
181
+ "4 3 2 0 "
182
+ ]
183
+ },
184
+ "execution_count": 3,
185
+ "metadata": {},
186
+ "output_type": "execute_result"
187
+ }
188
+ ],
189
+ "source": [
190
+ "heart_data.head()"
191
+ ]
192
+ },
193
+ {
194
+ "cell_type": "code",
195
+ "execution_count": 4,
196
+ "metadata": {
197
+ "colab": {
198
+ "base_uri": "https://localhost:8080/",
199
+ "height": 206
200
+ },
201
+ "id": "r0SfmiRPw7eU",
202
+ "outputId": "fc940326-ee3b-45ac-a2d0-d613c1739c22"
203
+ },
204
+ "outputs": [
205
+ {
206
+ "data": {
207
+ "text/html": [
208
+ "<div>\n",
209
+ "<style scoped>\n",
210
+ " .dataframe tbody tr th:only-of-type {\n",
211
+ " vertical-align: middle;\n",
212
+ " }\n",
213
+ "\n",
214
+ " .dataframe tbody tr th {\n",
215
+ " vertical-align: top;\n",
216
+ " }\n",
217
+ "\n",
218
+ " .dataframe thead th {\n",
219
+ " text-align: right;\n",
220
+ " }\n",
221
+ "</style>\n",
222
+ "<table border=\"1\" class=\"dataframe\">\n",
223
+ " <thead>\n",
224
+ " <tr style=\"text-align: right;\">\n",
225
+ " <th></th>\n",
226
+ " <th>age</th>\n",
227
+ " <th>sex</th>\n",
228
+ " <th>cp</th>\n",
229
+ " <th>trestbps</th>\n",
230
+ " <th>chol</th>\n",
231
+ " <th>fbs</th>\n",
232
+ " <th>restecg</th>\n",
233
+ " <th>thalach</th>\n",
234
+ " <th>exang</th>\n",
235
+ " <th>oldpeak</th>\n",
236
+ " <th>slope</th>\n",
237
+ " <th>ca</th>\n",
238
+ " <th>thal</th>\n",
239
+ " <th>target</th>\n",
240
+ " </tr>\n",
241
+ " </thead>\n",
242
+ " <tbody>\n",
243
+ " <tr>\n",
244
+ " <th>1020</th>\n",
245
+ " <td>59</td>\n",
246
+ " <td>1</td>\n",
247
+ " <td>1</td>\n",
248
+ " <td>140</td>\n",
249
+ " <td>221</td>\n",
250
+ " <td>0</td>\n",
251
+ " <td>1</td>\n",
252
+ " <td>164</td>\n",
253
+ " <td>1</td>\n",
254
+ " <td>0.0</td>\n",
255
+ " <td>2</td>\n",
256
+ " <td>0</td>\n",
257
+ " <td>2</td>\n",
258
+ " <td>1</td>\n",
259
+ " </tr>\n",
260
+ " <tr>\n",
261
+ " <th>1021</th>\n",
262
+ " <td>60</td>\n",
263
+ " <td>1</td>\n",
264
+ " <td>0</td>\n",
265
+ " <td>125</td>\n",
266
+ " <td>258</td>\n",
267
+ " <td>0</td>\n",
268
+ " <td>0</td>\n",
269
+ " <td>141</td>\n",
270
+ " <td>1</td>\n",
271
+ " <td>2.8</td>\n",
272
+ " <td>1</td>\n",
273
+ " <td>1</td>\n",
274
+ " <td>3</td>\n",
275
+ " <td>0</td>\n",
276
+ " </tr>\n",
277
+ " <tr>\n",
278
+ " <th>1022</th>\n",
279
+ " <td>47</td>\n",
280
+ " <td>1</td>\n",
281
+ " <td>0</td>\n",
282
+ " <td>110</td>\n",
283
+ " <td>275</td>\n",
284
+ " <td>0</td>\n",
285
+ " <td>0</td>\n",
286
+ " <td>118</td>\n",
287
+ " <td>1</td>\n",
288
+ " <td>1.0</td>\n",
289
+ " <td>1</td>\n",
290
+ " <td>1</td>\n",
291
+ " <td>2</td>\n",
292
+ " <td>0</td>\n",
293
+ " </tr>\n",
294
+ " <tr>\n",
295
+ " <th>1023</th>\n",
296
+ " <td>50</td>\n",
297
+ " <td>0</td>\n",
298
+ " <td>0</td>\n",
299
+ " <td>110</td>\n",
300
+ " <td>254</td>\n",
301
+ " <td>0</td>\n",
302
+ " <td>0</td>\n",
303
+ " <td>159</td>\n",
304
+ " <td>0</td>\n",
305
+ " <td>0.0</td>\n",
306
+ " <td>2</td>\n",
307
+ " <td>0</td>\n",
308
+ " <td>2</td>\n",
309
+ " <td>1</td>\n",
310
+ " </tr>\n",
311
+ " <tr>\n",
312
+ " <th>1024</th>\n",
313
+ " <td>54</td>\n",
314
+ " <td>1</td>\n",
315
+ " <td>0</td>\n",
316
+ " <td>120</td>\n",
317
+ " <td>188</td>\n",
318
+ " <td>0</td>\n",
319
+ " <td>1</td>\n",
320
+ " <td>113</td>\n",
321
+ " <td>0</td>\n",
322
+ " <td>1.4</td>\n",
323
+ " <td>1</td>\n",
324
+ " <td>1</td>\n",
325
+ " <td>3</td>\n",
326
+ " <td>0</td>\n",
327
+ " </tr>\n",
328
+ " </tbody>\n",
329
+ "</table>\n",
330
+ "</div>"
331
+ ],
332
+ "text/plain": [
333
+ " age sex cp trestbps chol fbs restecg thalach exang oldpeak \\\n",
334
+ "1020 59 1 1 140 221 0 1 164 1 0.0 \n",
335
+ "1021 60 1 0 125 258 0 0 141 1 2.8 \n",
336
+ "1022 47 1 0 110 275 0 0 118 1 1.0 \n",
337
+ "1023 50 0 0 110 254 0 0 159 0 0.0 \n",
338
+ "1024 54 1 0 120 188 0 1 113 0 1.4 \n",
339
+ "\n",
340
+ " slope ca thal target \n",
341
+ "1020 2 0 2 1 \n",
342
+ "1021 1 1 3 0 \n",
343
+ "1022 1 1 2 0 \n",
344
+ "1023 2 0 2 1 \n",
345
+ "1024 1 1 3 0 "
346
+ ]
347
+ },
348
+ "execution_count": 4,
349
+ "metadata": {},
350
+ "output_type": "execute_result"
351
+ }
352
+ ],
353
+ "source": [
354
+ "heart_data.tail()"
355
+ ]
356
+ },
357
+ {
358
+ "cell_type": "code",
359
+ "execution_count": 5,
360
+ "metadata": {
361
+ "colab": {
362
+ "base_uri": "https://localhost:8080/"
363
+ },
364
+ "id": "1ZW9RUGs3bWj",
365
+ "outputId": "d197eb58-b8de-412e-81dd-75556b52534b"
366
+ },
367
+ "outputs": [
368
+ {
369
+ "data": {
370
+ "text/plain": [
371
+ "(1025, 14)"
372
+ ]
373
+ },
374
+ "execution_count": 5,
375
+ "metadata": {},
376
+ "output_type": "execute_result"
377
+ }
378
+ ],
379
+ "source": [
380
+ "heart_data.shape"
381
+ ]
382
+ },
383
+ {
384
+ "cell_type": "code",
385
+ "execution_count": 6,
386
+ "metadata": {
387
+ "colab": {
388
+ "base_uri": "https://localhost:8080/"
389
+ },
390
+ "id": "ctW8j5Ux3k4L",
391
+ "outputId": "12ab3ecd-a657-46f8-84ee-62c5aa2d28df"
392
+ },
393
+ "outputs": [
394
+ {
395
+ "name": "stdout",
396
+ "output_type": "stream",
397
+ "text": [
398
+ "<class 'pandas.core.frame.DataFrame'>\n",
399
+ "RangeIndex: 1025 entries, 0 to 1024\n",
400
+ "Data columns (total 14 columns):\n",
401
+ " # Column Non-Null Count Dtype \n",
402
+ "--- ------ -------------- ----- \n",
403
+ " 0 age 1025 non-null int64 \n",
404
+ " 1 sex 1025 non-null int64 \n",
405
+ " 2 cp 1025 non-null int64 \n",
406
+ " 3 trestbps 1025 non-null int64 \n",
407
+ " 4 chol 1025 non-null int64 \n",
408
+ " 5 fbs 1025 non-null int64 \n",
409
+ " 6 restecg 1025 non-null int64 \n",
410
+ " 7 thalach 1025 non-null int64 \n",
411
+ " 8 exang 1025 non-null int64 \n",
412
+ " 9 oldpeak 1025 non-null float64\n",
413
+ " 10 slope 1025 non-null int64 \n",
414
+ " 11 ca 1025 non-null int64 \n",
415
+ " 12 thal 1025 non-null int64 \n",
416
+ " 13 target 1025 non-null int64 \n",
417
+ "dtypes: float64(1), int64(13)\n",
418
+ "memory usage: 112.2 KB\n"
419
+ ]
420
+ }
421
+ ],
422
+ "source": [
423
+ "heart_data.info()"
424
+ ]
425
+ },
426
+ {
427
+ "cell_type": "code",
428
+ "execution_count": 7,
429
+ "metadata": {
430
+ "colab": {
431
+ "base_uri": "https://localhost:8080/",
432
+ "height": 523
433
+ },
434
+ "id": "9j6Xoe5j6gkA",
435
+ "outputId": "d8725fa6-e008-479a-893c-e7a51193161a"
436
+ },
437
+ "outputs": [
438
+ {
439
+ "data": {
440
+ "text/plain": [
441
+ "age 0\n",
442
+ "sex 0\n",
443
+ "cp 0\n",
444
+ "trestbps 0\n",
445
+ "chol 0\n",
446
+ "fbs 0\n",
447
+ "restecg 0\n",
448
+ "thalach 0\n",
449
+ "exang 0\n",
450
+ "oldpeak 0\n",
451
+ "slope 0\n",
452
+ "ca 0\n",
453
+ "thal 0\n",
454
+ "target 0\n",
455
+ "dtype: int64"
456
+ ]
457
+ },
458
+ "execution_count": 7,
459
+ "metadata": {},
460
+ "output_type": "execute_result"
461
+ }
462
+ ],
463
+ "source": [
464
+ "heart_data.isnull().sum()"
465
+ ]
466
+ },
467
+ {
468
+ "cell_type": "code",
469
+ "execution_count": 8,
470
+ "metadata": {
471
+ "colab": {
472
+ "base_uri": "https://localhost:8080/",
473
+ "height": 320
474
+ },
475
+ "id": "V8NCblxZ6ljJ",
476
+ "outputId": "3dade486-a966-402d-c003-bac7a7d83be6"
477
+ },
478
+ "outputs": [
479
+ {
480
+ "data": {
481
+ "text/html": [
482
+ "<div>\n",
483
+ "<style scoped>\n",
484
+ " .dataframe tbody tr th:only-of-type {\n",
485
+ " vertical-align: middle;\n",
486
+ " }\n",
487
+ "\n",
488
+ " .dataframe tbody tr th {\n",
489
+ " vertical-align: top;\n",
490
+ " }\n",
491
+ "\n",
492
+ " .dataframe thead th {\n",
493
+ " text-align: right;\n",
494
+ " }\n",
495
+ "</style>\n",
496
+ "<table border=\"1\" class=\"dataframe\">\n",
497
+ " <thead>\n",
498
+ " <tr style=\"text-align: right;\">\n",
499
+ " <th></th>\n",
500
+ " <th>age</th>\n",
501
+ " <th>sex</th>\n",
502
+ " <th>cp</th>\n",
503
+ " <th>trestbps</th>\n",
504
+ " <th>chol</th>\n",
505
+ " <th>fbs</th>\n",
506
+ " <th>restecg</th>\n",
507
+ " <th>thalach</th>\n",
508
+ " <th>exang</th>\n",
509
+ " <th>oldpeak</th>\n",
510
+ " <th>slope</th>\n",
511
+ " <th>ca</th>\n",
512
+ " <th>thal</th>\n",
513
+ " <th>target</th>\n",
514
+ " </tr>\n",
515
+ " </thead>\n",
516
+ " <tbody>\n",
517
+ " <tr>\n",
518
+ " <th>count</th>\n",
519
+ " <td>1025.000000</td>\n",
520
+ " <td>1025.000000</td>\n",
521
+ " <td>1025.000000</td>\n",
522
+ " <td>1025.000000</td>\n",
523
+ " <td>1025.00000</td>\n",
524
+ " <td>1025.000000</td>\n",
525
+ " <td>1025.000000</td>\n",
526
+ " <td>1025.000000</td>\n",
527
+ " <td>1025.000000</td>\n",
528
+ " <td>1025.000000</td>\n",
529
+ " <td>1025.000000</td>\n",
530
+ " <td>1025.000000</td>\n",
531
+ " <td>1025.000000</td>\n",
532
+ " <td>1025.000000</td>\n",
533
+ " </tr>\n",
534
+ " <tr>\n",
535
+ " <th>mean</th>\n",
536
+ " <td>54.434146</td>\n",
537
+ " <td>0.695610</td>\n",
538
+ " <td>0.942439</td>\n",
539
+ " <td>131.611707</td>\n",
540
+ " <td>246.00000</td>\n",
541
+ " <td>0.149268</td>\n",
542
+ " <td>0.529756</td>\n",
543
+ " <td>149.114146</td>\n",
544
+ " <td>0.336585</td>\n",
545
+ " <td>1.071512</td>\n",
546
+ " <td>1.385366</td>\n",
547
+ " <td>0.754146</td>\n",
548
+ " <td>2.323902</td>\n",
549
+ " <td>0.513171</td>\n",
550
+ " </tr>\n",
551
+ " <tr>\n",
552
+ " <th>std</th>\n",
553
+ " <td>9.072290</td>\n",
554
+ " <td>0.460373</td>\n",
555
+ " <td>1.029641</td>\n",
556
+ " <td>17.516718</td>\n",
557
+ " <td>51.59251</td>\n",
558
+ " <td>0.356527</td>\n",
559
+ " <td>0.527878</td>\n",
560
+ " <td>23.005724</td>\n",
561
+ " <td>0.472772</td>\n",
562
+ " <td>1.175053</td>\n",
563
+ " <td>0.617755</td>\n",
564
+ " <td>1.030798</td>\n",
565
+ " <td>0.620660</td>\n",
566
+ " <td>0.500070</td>\n",
567
+ " </tr>\n",
568
+ " <tr>\n",
569
+ " <th>min</th>\n",
570
+ " <td>29.000000</td>\n",
571
+ " <td>0.000000</td>\n",
572
+ " <td>0.000000</td>\n",
573
+ " <td>94.000000</td>\n",
574
+ " <td>126.00000</td>\n",
575
+ " <td>0.000000</td>\n",
576
+ " <td>0.000000</td>\n",
577
+ " <td>71.000000</td>\n",
578
+ " <td>0.000000</td>\n",
579
+ " <td>0.000000</td>\n",
580
+ " <td>0.000000</td>\n",
581
+ " <td>0.000000</td>\n",
582
+ " <td>0.000000</td>\n",
583
+ " <td>0.000000</td>\n",
584
+ " </tr>\n",
585
+ " <tr>\n",
586
+ " <th>25%</th>\n",
587
+ " <td>48.000000</td>\n",
588
+ " <td>0.000000</td>\n",
589
+ " <td>0.000000</td>\n",
590
+ " <td>120.000000</td>\n",
591
+ " <td>211.00000</td>\n",
592
+ " <td>0.000000</td>\n",
593
+ " <td>0.000000</td>\n",
594
+ " <td>132.000000</td>\n",
595
+ " <td>0.000000</td>\n",
596
+ " <td>0.000000</td>\n",
597
+ " <td>1.000000</td>\n",
598
+ " <td>0.000000</td>\n",
599
+ " <td>2.000000</td>\n",
600
+ " <td>0.000000</td>\n",
601
+ " </tr>\n",
602
+ " <tr>\n",
603
+ " <th>50%</th>\n",
604
+ " <td>56.000000</td>\n",
605
+ " <td>1.000000</td>\n",
606
+ " <td>1.000000</td>\n",
607
+ " <td>130.000000</td>\n",
608
+ " <td>240.00000</td>\n",
609
+ " <td>0.000000</td>\n",
610
+ " <td>1.000000</td>\n",
611
+ " <td>152.000000</td>\n",
612
+ " <td>0.000000</td>\n",
613
+ " <td>0.800000</td>\n",
614
+ " <td>1.000000</td>\n",
615
+ " <td>0.000000</td>\n",
616
+ " <td>2.000000</td>\n",
617
+ " <td>1.000000</td>\n",
618
+ " </tr>\n",
619
+ " <tr>\n",
620
+ " <th>75%</th>\n",
621
+ " <td>61.000000</td>\n",
622
+ " <td>1.000000</td>\n",
623
+ " <td>2.000000</td>\n",
624
+ " <td>140.000000</td>\n",
625
+ " <td>275.00000</td>\n",
626
+ " <td>0.000000</td>\n",
627
+ " <td>1.000000</td>\n",
628
+ " <td>166.000000</td>\n",
629
+ " <td>1.000000</td>\n",
630
+ " <td>1.800000</td>\n",
631
+ " <td>2.000000</td>\n",
632
+ " <td>1.000000</td>\n",
633
+ " <td>3.000000</td>\n",
634
+ " <td>1.000000</td>\n",
635
+ " </tr>\n",
636
+ " <tr>\n",
637
+ " <th>max</th>\n",
638
+ " <td>77.000000</td>\n",
639
+ " <td>1.000000</td>\n",
640
+ " <td>3.000000</td>\n",
641
+ " <td>200.000000</td>\n",
642
+ " <td>564.00000</td>\n",
643
+ " <td>1.000000</td>\n",
644
+ " <td>2.000000</td>\n",
645
+ " <td>202.000000</td>\n",
646
+ " <td>1.000000</td>\n",
647
+ " <td>6.200000</td>\n",
648
+ " <td>2.000000</td>\n",
649
+ " <td>4.000000</td>\n",
650
+ " <td>3.000000</td>\n",
651
+ " <td>1.000000</td>\n",
652
+ " </tr>\n",
653
+ " </tbody>\n",
654
+ "</table>\n",
655
+ "</div>"
656
+ ],
657
+ "text/plain": [
658
+ " age sex cp trestbps chol \\\n",
659
+ "count 1025.000000 1025.000000 1025.000000 1025.000000 1025.00000 \n",
660
+ "mean 54.434146 0.695610 0.942439 131.611707 246.00000 \n",
661
+ "std 9.072290 0.460373 1.029641 17.516718 51.59251 \n",
662
+ "min 29.000000 0.000000 0.000000 94.000000 126.00000 \n",
663
+ "25% 48.000000 0.000000 0.000000 120.000000 211.00000 \n",
664
+ "50% 56.000000 1.000000 1.000000 130.000000 240.00000 \n",
665
+ "75% 61.000000 1.000000 2.000000 140.000000 275.00000 \n",
666
+ "max 77.000000 1.000000 3.000000 200.000000 564.00000 \n",
667
+ "\n",
668
+ " fbs restecg thalach exang oldpeak \\\n",
669
+ "count 1025.000000 1025.000000 1025.000000 1025.000000 1025.000000 \n",
670
+ "mean 0.149268 0.529756 149.114146 0.336585 1.071512 \n",
671
+ "std 0.356527 0.527878 23.005724 0.472772 1.175053 \n",
672
+ "min 0.000000 0.000000 71.000000 0.000000 0.000000 \n",
673
+ "25% 0.000000 0.000000 132.000000 0.000000 0.000000 \n",
674
+ "50% 0.000000 1.000000 152.000000 0.000000 0.800000 \n",
675
+ "75% 0.000000 1.000000 166.000000 1.000000 1.800000 \n",
676
+ "max 1.000000 2.000000 202.000000 1.000000 6.200000 \n",
677
+ "\n",
678
+ " slope ca thal target \n",
679
+ "count 1025.000000 1025.000000 1025.000000 1025.000000 \n",
680
+ "mean 1.385366 0.754146 2.323902 0.513171 \n",
681
+ "std 0.617755 1.030798 0.620660 0.500070 \n",
682
+ "min 0.000000 0.000000 0.000000 0.000000 \n",
683
+ "25% 1.000000 0.000000 2.000000 0.000000 \n",
684
+ "50% 1.000000 0.000000 2.000000 1.000000 \n",
685
+ "75% 2.000000 1.000000 3.000000 1.000000 \n",
686
+ "max 2.000000 4.000000 3.000000 1.000000 "
687
+ ]
688
+ },
689
+ "execution_count": 8,
690
+ "metadata": {},
691
+ "output_type": "execute_result"
692
+ }
693
+ ],
694
+ "source": [
695
+ "heart_data.describe()"
696
+ ]
697
+ },
698
+ {
699
+ "cell_type": "code",
700
+ "execution_count": 9,
701
+ "metadata": {
702
+ "colab": {
703
+ "base_uri": "https://localhost:8080/",
704
+ "height": 178
705
+ },
706
+ "id": "j8pTTnqz7ACP",
707
+ "outputId": "083a80e6-894d-4e46-c429-30de288ff1b5"
708
+ },
709
+ "outputs": [
710
+ {
711
+ "data": {
712
+ "text/plain": [
713
+ "target\n",
714
+ "1 526\n",
715
+ "0 499\n",
716
+ "Name: count, dtype: int64"
717
+ ]
718
+ },
719
+ "execution_count": 9,
720
+ "metadata": {},
721
+ "output_type": "execute_result"
722
+ }
723
+ ],
724
+ "source": [
725
+ "heart_data['target'].value_counts()"
726
+ ]
727
+ },
728
+ {
729
+ "cell_type": "markdown",
730
+ "metadata": {
731
+ "id": "qjK7x8cr8JCP"
732
+ },
733
+ "source": [
734
+ "1 --> Defective Heart\n",
735
+ "0 --> Safe Heart"
736
+ ]
737
+ },
738
+ {
739
+ "cell_type": "code",
740
+ "execution_count": 10,
741
+ "metadata": {
742
+ "id": "tJYZOKzr8VBM"
743
+ },
744
+ "outputs": [],
745
+ "source": [
746
+ "X = heart_data.drop(columns='target', axis=1)\n",
747
+ "Y = heart_data['target']"
748
+ ]
749
+ },
750
+ {
751
+ "cell_type": "code",
752
+ "execution_count": 11,
753
+ "metadata": {
754
+ "colab": {
755
+ "base_uri": "https://localhost:8080/"
756
+ },
757
+ "id": "Y6ctMrFf8mQY",
758
+ "outputId": "694c5cb5-3316-4a8a-b334-2831f6366537"
759
+ },
760
+ "outputs": [
761
+ {
762
+ "name": "stdout",
763
+ "output_type": "stream",
764
+ "text": [
765
+ " age sex cp trestbps chol fbs restecg thalach exang oldpeak \\\n",
766
+ "0 52 1 0 125 212 0 1 168 0 1.0 \n",
767
+ "1 53 1 0 140 203 1 0 155 1 3.1 \n",
768
+ "2 70 1 0 145 174 0 1 125 1 2.6 \n",
769
+ "3 61 1 0 148 203 0 1 161 0 0.0 \n",
770
+ "4 62 0 0 138 294 1 1 106 0 1.9 \n",
771
+ "... ... ... .. ... ... ... ... ... ... ... \n",
772
+ "1020 59 1 1 140 221 0 1 164 1 0.0 \n",
773
+ "1021 60 1 0 125 258 0 0 141 1 2.8 \n",
774
+ "1022 47 1 0 110 275 0 0 118 1 1.0 \n",
775
+ "1023 50 0 0 110 254 0 0 159 0 0.0 \n",
776
+ "1024 54 1 0 120 188 0 1 113 0 1.4 \n",
777
+ "\n",
778
+ " slope ca thal \n",
779
+ "0 2 2 3 \n",
780
+ "1 0 0 3 \n",
781
+ "2 0 0 3 \n",
782
+ "3 2 1 3 \n",
783
+ "4 1 3 2 \n",
784
+ "... ... .. ... \n",
785
+ "1020 2 0 2 \n",
786
+ "1021 1 1 3 \n",
787
+ "1022 1 1 2 \n",
788
+ "1023 2 0 2 \n",
789
+ "1024 1 1 3 \n",
790
+ "\n",
791
+ "[1025 rows x 13 columns]\n"
792
+ ]
793
+ }
794
+ ],
795
+ "source": [
796
+ "print(X)"
797
+ ]
798
+ },
799
+ {
800
+ "cell_type": "code",
801
+ "execution_count": 12,
802
+ "metadata": {
803
+ "colab": {
804
+ "base_uri": "https://localhost:8080/"
805
+ },
806
+ "id": "82dAzkCb8qOa",
807
+ "outputId": "48f04ed5-d96f-480e-b579-afc41b4b8a4e"
808
+ },
809
+ "outputs": [
810
+ {
811
+ "name": "stdout",
812
+ "output_type": "stream",
813
+ "text": [
814
+ "0 0\n",
815
+ "1 0\n",
816
+ "2 0\n",
817
+ "3 0\n",
818
+ "4 0\n",
819
+ " ..\n",
820
+ "1020 1\n",
821
+ "1021 0\n",
822
+ "1022 0\n",
823
+ "1023 1\n",
824
+ "1024 0\n",
825
+ "Name: target, Length: 1025, dtype: int64\n"
826
+ ]
827
+ }
828
+ ],
829
+ "source": [
830
+ "print(Y)"
831
+ ]
832
+ },
833
+ {
834
+ "cell_type": "code",
835
+ "execution_count": 13,
836
+ "metadata": {
837
+ "id": "4pD6YJrq8uzz"
838
+ },
839
+ "outputs": [],
840
+ "source": [
841
+ "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, stratify=Y, random_state=2)"
842
+ ]
843
+ },
844
+ {
845
+ "cell_type": "code",
846
+ "execution_count": 14,
847
+ "metadata": {
848
+ "colab": {
849
+ "base_uri": "https://localhost:8080/"
850
+ },
851
+ "id": "fmfEkDJf-C0A",
852
+ "outputId": "177d52f0-2200-4789-9e1d-fdaf07c80d43"
853
+ },
854
+ "outputs": [
855
+ {
856
+ "name": "stdout",
857
+ "output_type": "stream",
858
+ "text": [
859
+ "(1025, 13) (820, 13) (205, 13)\n"
860
+ ]
861
+ }
862
+ ],
863
+ "source": [
864
+ "print(X.shape, X_train.shape, X_test.shape)"
865
+ ]
866
+ },
867
+ {
868
+ "cell_type": "code",
869
+ "execution_count": 15,
870
+ "metadata": {
871
+ "id": "CcefyC_l-e_2"
872
+ },
873
+ "outputs": [],
874
+ "source": [
875
+ "model = LogisticRegression()"
876
+ ]
877
+ },
878
+ {
879
+ "cell_type": "code",
880
+ "execution_count": 16,
881
+ "metadata": {
882
+ "colab": {
883
+ "base_uri": "https://localhost:8080/",
884
+ "height": 239
885
+ },
886
+ "id": "oR2hoKF-AeSi",
887
+ "outputId": "24038f03-865f-440f-84dc-91483bf6fea3"
888
+ },
889
+ "outputs": [
890
+ {
891
+ "name": "stderr",
892
+ "output_type": "stream",
893
+ "text": [
894
+ "c:\\Users\\HP\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\linear_model\\_logistic.py:465: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
895
+ "STOP: TOTAL NO. OF ITERATIONS REACHED LIMIT.\n",
896
+ "\n",
897
+ "Increase the number of iterations (max_iter) or scale the data as shown in:\n",
898
+ " https://scikit-learn.org/stable/modules/preprocessing.html\n",
899
+ "Please also refer to the documentation for alternative solver options:\n",
900
+ " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
901
+ " n_iter_i = _check_optimize_result(\n"
902
+ ]
903
+ },
904
+ {
905
+ "data": {
906
+ "text/html": [
907
+ "<style>#sk-container-id-1 {\n",
908
+ " /* Definition of color scheme common for light and dark mode */\n",
909
+ " --sklearn-color-text: #000;\n",
910
+ " --sklearn-color-text-muted: #666;\n",
911
+ " --sklearn-color-line: gray;\n",
912
+ " /* Definition of color scheme for unfitted estimators */\n",
913
+ " --sklearn-color-unfitted-level-0: #fff5e6;\n",
914
+ " --sklearn-color-unfitted-level-1: #f6e4d2;\n",
915
+ " --sklearn-color-unfitted-level-2: #ffe0b3;\n",
916
+ " --sklearn-color-unfitted-level-3: chocolate;\n",
917
+ " /* Definition of color scheme for fitted estimators */\n",
918
+ " --sklearn-color-fitted-level-0: #f0f8ff;\n",
919
+ " --sklearn-color-fitted-level-1: #d4ebff;\n",
920
+ " --sklearn-color-fitted-level-2: #b3dbfd;\n",
921
+ " --sklearn-color-fitted-level-3: cornflowerblue;\n",
922
+ "\n",
923
+ " /* Specific color for light theme */\n",
924
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
925
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
926
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
927
+ " --sklearn-color-icon: #696969;\n",
928
+ "\n",
929
+ " @media (prefers-color-scheme: dark) {\n",
930
+ " /* Redefinition of color scheme for dark theme */\n",
931
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
932
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
933
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
934
+ " --sklearn-color-icon: #878787;\n",
935
+ " }\n",
936
+ "}\n",
937
+ "\n",
938
+ "#sk-container-id-1 {\n",
939
+ " color: var(--sklearn-color-text);\n",
940
+ "}\n",
941
+ "\n",
942
+ "#sk-container-id-1 pre {\n",
943
+ " padding: 0;\n",
944
+ "}\n",
945
+ "\n",
946
+ "#sk-container-id-1 input.sk-hidden--visually {\n",
947
+ " border: 0;\n",
948
+ " clip: rect(1px 1px 1px 1px);\n",
949
+ " clip: rect(1px, 1px, 1px, 1px);\n",
950
+ " height: 1px;\n",
951
+ " margin: -1px;\n",
952
+ " overflow: hidden;\n",
953
+ " padding: 0;\n",
954
+ " position: absolute;\n",
955
+ " width: 1px;\n",
956
+ "}\n",
957
+ "\n",
958
+ "#sk-container-id-1 div.sk-dashed-wrapped {\n",
959
+ " border: 1px dashed var(--sklearn-color-line);\n",
960
+ " margin: 0 0.4em 0.5em 0.4em;\n",
961
+ " box-sizing: border-box;\n",
962
+ " padding-bottom: 0.4em;\n",
963
+ " background-color: var(--sklearn-color-background);\n",
964
+ "}\n",
965
+ "\n",
966
+ "#sk-container-id-1 div.sk-container {\n",
967
+ " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
968
+ " but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
969
+ " so we also need the `!important` here to be able to override the\n",
970
+ " default hidden behavior on the sphinx rendered scikit-learn.org.\n",
971
+ " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
972
+ " display: inline-block !important;\n",
973
+ " position: relative;\n",
974
+ "}\n",
975
+ "\n",
976
+ "#sk-container-id-1 div.sk-text-repr-fallback {\n",
977
+ " display: none;\n",
978
+ "}\n",
979
+ "\n",
980
+ "div.sk-parallel-item,\n",
981
+ "div.sk-serial,\n",
982
+ "div.sk-item {\n",
983
+ " /* draw centered vertical line to link estimators */\n",
984
+ " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
985
+ " background-size: 2px 100%;\n",
986
+ " background-repeat: no-repeat;\n",
987
+ " background-position: center center;\n",
988
+ "}\n",
989
+ "\n",
990
+ "/* Parallel-specific style estimator block */\n",
991
+ "\n",
992
+ "#sk-container-id-1 div.sk-parallel-item::after {\n",
993
+ " content: \"\";\n",
994
+ " width: 100%;\n",
995
+ " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
996
+ " flex-grow: 1;\n",
997
+ "}\n",
998
+ "\n",
999
+ "#sk-container-id-1 div.sk-parallel {\n",
1000
+ " display: flex;\n",
1001
+ " align-items: stretch;\n",
1002
+ " justify-content: center;\n",
1003
+ " background-color: var(--sklearn-color-background);\n",
1004
+ " position: relative;\n",
1005
+ "}\n",
1006
+ "\n",
1007
+ "#sk-container-id-1 div.sk-parallel-item {\n",
1008
+ " display: flex;\n",
1009
+ " flex-direction: column;\n",
1010
+ "}\n",
1011
+ "\n",
1012
+ "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
1013
+ " align-self: flex-end;\n",
1014
+ " width: 50%;\n",
1015
+ "}\n",
1016
+ "\n",
1017
+ "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
1018
+ " align-self: flex-start;\n",
1019
+ " width: 50%;\n",
1020
+ "}\n",
1021
+ "\n",
1022
+ "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
1023
+ " width: 0;\n",
1024
+ "}\n",
1025
+ "\n",
1026
+ "/* Serial-specific style estimator block */\n",
1027
+ "\n",
1028
+ "#sk-container-id-1 div.sk-serial {\n",
1029
+ " display: flex;\n",
1030
+ " flex-direction: column;\n",
1031
+ " align-items: center;\n",
1032
+ " background-color: var(--sklearn-color-background);\n",
1033
+ " padding-right: 1em;\n",
1034
+ " padding-left: 1em;\n",
1035
+ "}\n",
1036
+ "\n",
1037
+ "\n",
1038
+ "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
1039
+ "clickable and can be expanded/collapsed.\n",
1040
+ "- Pipeline and ColumnTransformer use this feature and define the default style\n",
1041
+ "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
1042
+ "*/\n",
1043
+ "\n",
1044
+ "/* Pipeline and ColumnTransformer style (default) */\n",
1045
+ "\n",
1046
+ "#sk-container-id-1 div.sk-toggleable {\n",
1047
+ " /* Default theme specific background. It is overwritten whether we have a\n",
1048
+ " specific estimator or a Pipeline/ColumnTransformer */\n",
1049
+ " background-color: var(--sklearn-color-background);\n",
1050
+ "}\n",
1051
+ "\n",
1052
+ "/* Toggleable label */\n",
1053
+ "#sk-container-id-1 label.sk-toggleable__label {\n",
1054
+ " cursor: pointer;\n",
1055
+ " display: flex;\n",
1056
+ " width: 100%;\n",
1057
+ " margin-bottom: 0;\n",
1058
+ " padding: 0.5em;\n",
1059
+ " box-sizing: border-box;\n",
1060
+ " text-align: center;\n",
1061
+ " align-items: start;\n",
1062
+ " justify-content: space-between;\n",
1063
+ " gap: 0.5em;\n",
1064
+ "}\n",
1065
+ "\n",
1066
+ "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
1067
+ " font-size: 0.6rem;\n",
1068
+ " font-weight: lighter;\n",
1069
+ " color: var(--sklearn-color-text-muted);\n",
1070
+ "}\n",
1071
+ "\n",
1072
+ "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
1073
+ " /* Arrow on the left of the label */\n",
1074
+ " content: \"▸\";\n",
1075
+ " float: left;\n",
1076
+ " margin-right: 0.25em;\n",
1077
+ " color: var(--sklearn-color-icon);\n",
1078
+ "}\n",
1079
+ "\n",
1080
+ "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
1081
+ " color: var(--sklearn-color-text);\n",
1082
+ "}\n",
1083
+ "\n",
1084
+ "/* Toggleable content - dropdown */\n",
1085
+ "\n",
1086
+ "#sk-container-id-1 div.sk-toggleable__content {\n",
1087
+ " max-height: 0;\n",
1088
+ " max-width: 0;\n",
1089
+ " overflow: hidden;\n",
1090
+ " text-align: left;\n",
1091
+ " /* unfitted */\n",
1092
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1093
+ "}\n",
1094
+ "\n",
1095
+ "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
1096
+ " /* fitted */\n",
1097
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1098
+ "}\n",
1099
+ "\n",
1100
+ "#sk-container-id-1 div.sk-toggleable__content pre {\n",
1101
+ " margin: 0.2em;\n",
1102
+ " border-radius: 0.25em;\n",
1103
+ " color: var(--sklearn-color-text);\n",
1104
+ " /* unfitted */\n",
1105
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1106
+ "}\n",
1107
+ "\n",
1108
+ "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
1109
+ " /* unfitted */\n",
1110
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1111
+ "}\n",
1112
+ "\n",
1113
+ "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
1114
+ " /* Expand drop-down */\n",
1115
+ " max-height: 200px;\n",
1116
+ " max-width: 100%;\n",
1117
+ " overflow: auto;\n",
1118
+ "}\n",
1119
+ "\n",
1120
+ "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
1121
+ " content: \"▾\";\n",
1122
+ "}\n",
1123
+ "\n",
1124
+ "/* Pipeline/ColumnTransformer-specific style */\n",
1125
+ "\n",
1126
+ "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1127
+ " color: var(--sklearn-color-text);\n",
1128
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1129
+ "}\n",
1130
+ "\n",
1131
+ "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1132
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1133
+ "}\n",
1134
+ "\n",
1135
+ "/* Estimator-specific style */\n",
1136
+ "\n",
1137
+ "/* Colorize estimator box */\n",
1138
+ "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1139
+ " /* unfitted */\n",
1140
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1141
+ "}\n",
1142
+ "\n",
1143
+ "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1144
+ " /* fitted */\n",
1145
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1146
+ "}\n",
1147
+ "\n",
1148
+ "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
1149
+ "#sk-container-id-1 div.sk-label label {\n",
1150
+ " /* The background is the default theme color */\n",
1151
+ " color: var(--sklearn-color-text-on-default-background);\n",
1152
+ "}\n",
1153
+ "\n",
1154
+ "/* On hover, darken the color of the background */\n",
1155
+ "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
1156
+ " color: var(--sklearn-color-text);\n",
1157
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1158
+ "}\n",
1159
+ "\n",
1160
+ "/* Label box, darken color on hover, fitted */\n",
1161
+ "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
1162
+ " color: var(--sklearn-color-text);\n",
1163
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1164
+ "}\n",
1165
+ "\n",
1166
+ "/* Estimator label */\n",
1167
+ "\n",
1168
+ "#sk-container-id-1 div.sk-label label {\n",
1169
+ " font-family: monospace;\n",
1170
+ " font-weight: bold;\n",
1171
+ " display: inline-block;\n",
1172
+ " line-height: 1.2em;\n",
1173
+ "}\n",
1174
+ "\n",
1175
+ "#sk-container-id-1 div.sk-label-container {\n",
1176
+ " text-align: center;\n",
1177
+ "}\n",
1178
+ "\n",
1179
+ "/* Estimator-specific */\n",
1180
+ "#sk-container-id-1 div.sk-estimator {\n",
1181
+ " font-family: monospace;\n",
1182
+ " border: 1px dotted var(--sklearn-color-border-box);\n",
1183
+ " border-radius: 0.25em;\n",
1184
+ " box-sizing: border-box;\n",
1185
+ " margin-bottom: 0.5em;\n",
1186
+ " /* unfitted */\n",
1187
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1188
+ "}\n",
1189
+ "\n",
1190
+ "#sk-container-id-1 div.sk-estimator.fitted {\n",
1191
+ " /* fitted */\n",
1192
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1193
+ "}\n",
1194
+ "\n",
1195
+ "/* on hover */\n",
1196
+ "#sk-container-id-1 div.sk-estimator:hover {\n",
1197
+ " /* unfitted */\n",
1198
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1199
+ "}\n",
1200
+ "\n",
1201
+ "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
1202
+ " /* fitted */\n",
1203
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1204
+ "}\n",
1205
+ "\n",
1206
+ "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
1207
+ "\n",
1208
+ "/* Common style for \"i\" and \"?\" */\n",
1209
+ "\n",
1210
+ ".sk-estimator-doc-link,\n",
1211
+ "a:link.sk-estimator-doc-link,\n",
1212
+ "a:visited.sk-estimator-doc-link {\n",
1213
+ " float: right;\n",
1214
+ " font-size: smaller;\n",
1215
+ " line-height: 1em;\n",
1216
+ " font-family: monospace;\n",
1217
+ " background-color: var(--sklearn-color-background);\n",
1218
+ " border-radius: 1em;\n",
1219
+ " height: 1em;\n",
1220
+ " width: 1em;\n",
1221
+ " text-decoration: none !important;\n",
1222
+ " margin-left: 0.5em;\n",
1223
+ " text-align: center;\n",
1224
+ " /* unfitted */\n",
1225
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1226
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1227
+ "}\n",
1228
+ "\n",
1229
+ ".sk-estimator-doc-link.fitted,\n",
1230
+ "a:link.sk-estimator-doc-link.fitted,\n",
1231
+ "a:visited.sk-estimator-doc-link.fitted {\n",
1232
+ " /* fitted */\n",
1233
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1234
+ " color: var(--sklearn-color-fitted-level-1);\n",
1235
+ "}\n",
1236
+ "\n",
1237
+ "/* On hover */\n",
1238
+ "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
1239
+ ".sk-estimator-doc-link:hover,\n",
1240
+ "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
1241
+ ".sk-estimator-doc-link:hover {\n",
1242
+ " /* unfitted */\n",
1243
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1244
+ " color: var(--sklearn-color-background);\n",
1245
+ " text-decoration: none;\n",
1246
+ "}\n",
1247
+ "\n",
1248
+ "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
1249
+ ".sk-estimator-doc-link.fitted:hover,\n",
1250
+ "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
1251
+ ".sk-estimator-doc-link.fitted:hover {\n",
1252
+ " /* fitted */\n",
1253
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1254
+ " color: var(--sklearn-color-background);\n",
1255
+ " text-decoration: none;\n",
1256
+ "}\n",
1257
+ "\n",
1258
+ "/* Span, style for the box shown on hovering the info icon */\n",
1259
+ ".sk-estimator-doc-link span {\n",
1260
+ " display: none;\n",
1261
+ " z-index: 9999;\n",
1262
+ " position: relative;\n",
1263
+ " font-weight: normal;\n",
1264
+ " right: .2ex;\n",
1265
+ " padding: .5ex;\n",
1266
+ " margin: .5ex;\n",
1267
+ " width: min-content;\n",
1268
+ " min-width: 20ex;\n",
1269
+ " max-width: 50ex;\n",
1270
+ " color: var(--sklearn-color-text);\n",
1271
+ " box-shadow: 2pt 2pt 4pt #999;\n",
1272
+ " /* unfitted */\n",
1273
+ " background: var(--sklearn-color-unfitted-level-0);\n",
1274
+ " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
1275
+ "}\n",
1276
+ "\n",
1277
+ ".sk-estimator-doc-link.fitted span {\n",
1278
+ " /* fitted */\n",
1279
+ " background: var(--sklearn-color-fitted-level-0);\n",
1280
+ " border: var(--sklearn-color-fitted-level-3);\n",
1281
+ "}\n",
1282
+ "\n",
1283
+ ".sk-estimator-doc-link:hover span {\n",
1284
+ " display: block;\n",
1285
+ "}\n",
1286
+ "\n",
1287
+ "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
1288
+ "\n",
1289
+ "#sk-container-id-1 a.estimator_doc_link {\n",
1290
+ " float: right;\n",
1291
+ " font-size: 1rem;\n",
1292
+ " line-height: 1em;\n",
1293
+ " font-family: monospace;\n",
1294
+ " background-color: var(--sklearn-color-background);\n",
1295
+ " border-radius: 1rem;\n",
1296
+ " height: 1rem;\n",
1297
+ " width: 1rem;\n",
1298
+ " text-decoration: none;\n",
1299
+ " /* unfitted */\n",
1300
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1301
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1302
+ "}\n",
1303
+ "\n",
1304
+ "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
1305
+ " /* fitted */\n",
1306
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1307
+ " color: var(--sklearn-color-fitted-level-1);\n",
1308
+ "}\n",
1309
+ "\n",
1310
+ "/* On hover */\n",
1311
+ "#sk-container-id-1 a.estimator_doc_link:hover {\n",
1312
+ " /* unfitted */\n",
1313
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1314
+ " color: var(--sklearn-color-background);\n",
1315
+ " text-decoration: none;\n",
1316
+ "}\n",
1317
+ "\n",
1318
+ "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
1319
+ " /* fitted */\n",
1320
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1321
+ "}\n",
1322
+ "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>LogisticRegression</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.linear_model.LogisticRegression.html\">?<span>Documentation for LogisticRegression</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>LogisticRegression()</pre></div> </div></div></div></div>"
1323
+ ],
1324
+ "text/plain": [
1325
+ "LogisticRegression()"
1326
+ ]
1327
+ },
1328
+ "execution_count": 16,
1329
+ "metadata": {},
1330
+ "output_type": "execute_result"
1331
+ }
1332
+ ],
1333
+ "source": [
1334
+ "model.fit(X_train, Y_train)\n"
1335
+ ]
1336
+ },
1337
+ {
1338
+ "cell_type": "code",
1339
+ "execution_count": 17,
1340
+ "metadata": {
1341
+ "id": "_GWqF6QWB2XW"
1342
+ },
1343
+ "outputs": [],
1344
+ "source": [
1345
+ "X_train_prediction = model.predict(X_train)\n",
1346
+ "training_data_accuracy = accuracy_score(X_train_prediction, Y_train)"
1347
+ ]
1348
+ },
1349
+ {
1350
+ "cell_type": "code",
1351
+ "execution_count": 18,
1352
+ "metadata": {
1353
+ "colab": {
1354
+ "base_uri": "https://localhost:8080/"
1355
+ },
1356
+ "id": "Et6OwzBTCeM7",
1357
+ "outputId": "18cb8204-c2cc-4df1-859f-904f91e85ea2"
1358
+ },
1359
+ "outputs": [
1360
+ {
1361
+ "name": "stdout",
1362
+ "output_type": "stream",
1363
+ "text": [
1364
+ "Accuracy on training data: 0.8524390243902439\n"
1365
+ ]
1366
+ }
1367
+ ],
1368
+ "source": [
1369
+ "print(\"Accuracy on training data: \", training_data_accuracy)"
1370
+ ]
1371
+ },
1372
+ {
1373
+ "cell_type": "code",
1374
+ "execution_count": 19,
1375
+ "metadata": {
1376
+ "id": "MAC5ynnbDBak"
1377
+ },
1378
+ "outputs": [],
1379
+ "source": [
1380
+ "X_train_prediction = model.predict(X_test)\n",
1381
+ "test_data_accuracy = accuracy_score(X_train_prediction, Y_test)"
1382
+ ]
1383
+ },
1384
+ {
1385
+ "cell_type": "code",
1386
+ "execution_count": 20,
1387
+ "metadata": {
1388
+ "colab": {
1389
+ "base_uri": "https://localhost:8080/"
1390
+ },
1391
+ "id": "o7BWuD9ODMpJ",
1392
+ "outputId": "4001ab07-7548-4cc5-c2a6-e419f19d5df2"
1393
+ },
1394
+ "outputs": [
1395
+ {
1396
+ "name": "stdout",
1397
+ "output_type": "stream",
1398
+ "text": [
1399
+ "Accuracy on test data: 0.8048780487804879\n"
1400
+ ]
1401
+ }
1402
+ ],
1403
+ "source": [
1404
+ "print(\"Accuracy on test data: \", test_data_accuracy)"
1405
+ ]
1406
+ },
1407
+ {
1408
+ "cell_type": "code",
1409
+ "execution_count": 21,
1410
+ "metadata": {
1411
+ "id": "b-p48_D5DV6n"
1412
+ },
1413
+ "outputs": [],
1414
+ "source": [
1415
+ "input_data = (62,0,0,138,294,1,1,106,0,1.9,1,3,2)\n",
1416
+ "input_data_as_numpy_array = np.asarray(input_data)"
1417
+ ]
1418
+ },
1419
+ {
1420
+ "cell_type": "code",
1421
+ "execution_count": 22,
1422
+ "metadata": {
1423
+ "colab": {
1424
+ "base_uri": "https://localhost:8080/"
1425
+ },
1426
+ "id": "mYMk1P9WEKAx",
1427
+ "outputId": "116b57e8-d73a-4f02-e84a-b07618983485"
1428
+ },
1429
+ "outputs": [
1430
+ {
1431
+ "name": "stdout",
1432
+ "output_type": "stream",
1433
+ "text": [
1434
+ "The person does not have a heart disease\n"
1435
+ ]
1436
+ },
1437
+ {
1438
+ "name": "stderr",
1439
+ "output_type": "stream",
1440
+ "text": [
1441
+ "c:\\Users\\HP\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\utils\\validation.py:2739: UserWarning: X does not have valid feature names, but LogisticRegression was fitted with feature names\n",
1442
+ " warnings.warn(\n"
1443
+ ]
1444
+ }
1445
+ ],
1446
+ "source": [
1447
+ "input_data_reshaped = input_data_as_numpy_array.reshape(1,-1)\n",
1448
+ "prediction = model.predict(input_data_reshaped)\n",
1449
+ "if (prediction == 0):\n",
1450
+ " print(\"The person does not have a heart disease\")\n",
1451
+ "else:\n",
1452
+ " print(\"The person has a heart disease\")"
1453
+ ]
1454
+ },
1455
+ {
1456
+ "cell_type": "code",
1457
+ "execution_count": null,
1458
+ "metadata": {
1459
+ "id": "vzpdf3KcICCh"
1460
+ },
1461
+ "outputs": [],
1462
+ "source": []
1463
+ }
1464
+ ],
1465
+ "metadata": {
1466
+ "colab": {
1467
+ "provenance": []
1468
+ },
1469
+ "kernelspec": {
1470
+ "display_name": "Python 3",
1471
+ "name": "python3"
1472
+ },
1473
+ "language_info": {
1474
+ "codemirror_mode": {
1475
+ "name": "ipython",
1476
+ "version": 3
1477
+ },
1478
+ "file_extension": ".py",
1479
+ "mimetype": "text/x-python",
1480
+ "name": "python",
1481
+ "nbconvert_exporter": "python",
1482
+ "pygments_lexer": "ipython3",
1483
+ "version": "3.11.4"
1484
+ }
1485
+ },
1486
+ "nbformat": 4,
1487
+ "nbformat_minor": 0
1488
+ }
Parkinsons.ipynb ADDED
@@ -0,0 +1,2211 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 2,
6
+ "metadata": {
7
+ "id": "lQaEuGrwCAry"
8
+ },
9
+ "outputs": [],
10
+ "source": [
11
+ "import numpy as np\n",
12
+ "import pandas as pd\n",
13
+ "from sklearn.model_selection import train_test_split\n",
14
+ "from sklearn.preprocessing import StandardScaler\n",
15
+ "from sklearn import svm\n",
16
+ "from sklearn.metrics import accuracy_score"
17
+ ]
18
+ },
19
+ {
20
+ "cell_type": "code",
21
+ "execution_count": 3,
22
+ "metadata": {
23
+ "id": "aGa4jaARCdAf"
24
+ },
25
+ "outputs": [],
26
+ "source": [
27
+ "# loading the data from csv file to a Pandas DataFrame\n",
28
+ "parkinsons_data = pd.read_csv(r'C:\\\\Users\\\\HP\\\\OneDrive\\\\Desktop\\\\HackAI\\\\datasets\\\\parkinsons.csv')"
29
+ ]
30
+ },
31
+ {
32
+ "cell_type": "code",
33
+ "execution_count": 4,
34
+ "metadata": {
35
+ "colab": {
36
+ "base_uri": "https://localhost:8080/",
37
+ "height": 256
38
+ },
39
+ "id": "RmCtIWizClNn",
40
+ "outputId": "4f36ec16-677d-49e7-a43c-d912627f1169"
41
+ },
42
+ "outputs": [
43
+ {
44
+ "data": {
45
+ "text/html": [
46
+ "<div>\n",
47
+ "<style scoped>\n",
48
+ " .dataframe tbody tr th:only-of-type {\n",
49
+ " vertical-align: middle;\n",
50
+ " }\n",
51
+ "\n",
52
+ " .dataframe tbody tr th {\n",
53
+ " vertical-align: top;\n",
54
+ " }\n",
55
+ "\n",
56
+ " .dataframe thead th {\n",
57
+ " text-align: right;\n",
58
+ " }\n",
59
+ "</style>\n",
60
+ "<table border=\"1\" class=\"dataframe\">\n",
61
+ " <thead>\n",
62
+ " <tr style=\"text-align: right;\">\n",
63
+ " <th></th>\n",
64
+ " <th>name</th>\n",
65
+ " <th>MDVP:Fo(Hz)</th>\n",
66
+ " <th>MDVP:Fhi(Hz)</th>\n",
67
+ " <th>MDVP:Flo(Hz)</th>\n",
68
+ " <th>MDVP:Jitter(%)</th>\n",
69
+ " <th>MDVP:Jitter(Abs)</th>\n",
70
+ " <th>MDVP:RAP</th>\n",
71
+ " <th>MDVP:PPQ</th>\n",
72
+ " <th>Jitter:DDP</th>\n",
73
+ " <th>MDVP:Shimmer</th>\n",
74
+ " <th>...</th>\n",
75
+ " <th>Shimmer:DDA</th>\n",
76
+ " <th>NHR</th>\n",
77
+ " <th>HNR</th>\n",
78
+ " <th>status</th>\n",
79
+ " <th>RPDE</th>\n",
80
+ " <th>DFA</th>\n",
81
+ " <th>spread1</th>\n",
82
+ " <th>spread2</th>\n",
83
+ " <th>D2</th>\n",
84
+ " <th>PPE</th>\n",
85
+ " </tr>\n",
86
+ " </thead>\n",
87
+ " <tbody>\n",
88
+ " <tr>\n",
89
+ " <th>0</th>\n",
90
+ " <td>phon_R01_S01_1</td>\n",
91
+ " <td>119.992</td>\n",
92
+ " <td>157.302</td>\n",
93
+ " <td>74.997</td>\n",
94
+ " <td>0.00784</td>\n",
95
+ " <td>0.00007</td>\n",
96
+ " <td>0.00370</td>\n",
97
+ " <td>0.00554</td>\n",
98
+ " <td>0.01109</td>\n",
99
+ " <td>0.04374</td>\n",
100
+ " <td>...</td>\n",
101
+ " <td>0.06545</td>\n",
102
+ " <td>0.02211</td>\n",
103
+ " <td>21.033</td>\n",
104
+ " <td>1</td>\n",
105
+ " <td>0.414783</td>\n",
106
+ " <td>0.815285</td>\n",
107
+ " <td>-4.813031</td>\n",
108
+ " <td>0.266482</td>\n",
109
+ " <td>2.301442</td>\n",
110
+ " <td>0.284654</td>\n",
111
+ " </tr>\n",
112
+ " <tr>\n",
113
+ " <th>1</th>\n",
114
+ " <td>phon_R01_S01_2</td>\n",
115
+ " <td>122.400</td>\n",
116
+ " <td>148.650</td>\n",
117
+ " <td>113.819</td>\n",
118
+ " <td>0.00968</td>\n",
119
+ " <td>0.00008</td>\n",
120
+ " <td>0.00465</td>\n",
121
+ " <td>0.00696</td>\n",
122
+ " <td>0.01394</td>\n",
123
+ " <td>0.06134</td>\n",
124
+ " <td>...</td>\n",
125
+ " <td>0.09403</td>\n",
126
+ " <td>0.01929</td>\n",
127
+ " <td>19.085</td>\n",
128
+ " <td>1</td>\n",
129
+ " <td>0.458359</td>\n",
130
+ " <td>0.819521</td>\n",
131
+ " <td>-4.075192</td>\n",
132
+ " <td>0.335590</td>\n",
133
+ " <td>2.486855</td>\n",
134
+ " <td>0.368674</td>\n",
135
+ " </tr>\n",
136
+ " <tr>\n",
137
+ " <th>2</th>\n",
138
+ " <td>phon_R01_S01_3</td>\n",
139
+ " <td>116.682</td>\n",
140
+ " <td>131.111</td>\n",
141
+ " <td>111.555</td>\n",
142
+ " <td>0.01050</td>\n",
143
+ " <td>0.00009</td>\n",
144
+ " <td>0.00544</td>\n",
145
+ " <td>0.00781</td>\n",
146
+ " <td>0.01633</td>\n",
147
+ " <td>0.05233</td>\n",
148
+ " <td>...</td>\n",
149
+ " <td>0.08270</td>\n",
150
+ " <td>0.01309</td>\n",
151
+ " <td>20.651</td>\n",
152
+ " <td>1</td>\n",
153
+ " <td>0.429895</td>\n",
154
+ " <td>0.825288</td>\n",
155
+ " <td>-4.443179</td>\n",
156
+ " <td>0.311173</td>\n",
157
+ " <td>2.342259</td>\n",
158
+ " <td>0.332634</td>\n",
159
+ " </tr>\n",
160
+ " <tr>\n",
161
+ " <th>3</th>\n",
162
+ " <td>phon_R01_S01_4</td>\n",
163
+ " <td>116.676</td>\n",
164
+ " <td>137.871</td>\n",
165
+ " <td>111.366</td>\n",
166
+ " <td>0.00997</td>\n",
167
+ " <td>0.00009</td>\n",
168
+ " <td>0.00502</td>\n",
169
+ " <td>0.00698</td>\n",
170
+ " <td>0.01505</td>\n",
171
+ " <td>0.05492</td>\n",
172
+ " <td>...</td>\n",
173
+ " <td>0.08771</td>\n",
174
+ " <td>0.01353</td>\n",
175
+ " <td>20.644</td>\n",
176
+ " <td>1</td>\n",
177
+ " <td>0.434969</td>\n",
178
+ " <td>0.819235</td>\n",
179
+ " <td>-4.117501</td>\n",
180
+ " <td>0.334147</td>\n",
181
+ " <td>2.405554</td>\n",
182
+ " <td>0.368975</td>\n",
183
+ " </tr>\n",
184
+ " <tr>\n",
185
+ " <th>4</th>\n",
186
+ " <td>phon_R01_S01_5</td>\n",
187
+ " <td>116.014</td>\n",
188
+ " <td>141.781</td>\n",
189
+ " <td>110.655</td>\n",
190
+ " <td>0.01284</td>\n",
191
+ " <td>0.00011</td>\n",
192
+ " <td>0.00655</td>\n",
193
+ " <td>0.00908</td>\n",
194
+ " <td>0.01966</td>\n",
195
+ " <td>0.06425</td>\n",
196
+ " <td>...</td>\n",
197
+ " <td>0.10470</td>\n",
198
+ " <td>0.01767</td>\n",
199
+ " <td>19.649</td>\n",
200
+ " <td>1</td>\n",
201
+ " <td>0.417356</td>\n",
202
+ " <td>0.823484</td>\n",
203
+ " <td>-3.747787</td>\n",
204
+ " <td>0.234513</td>\n",
205
+ " <td>2.332180</td>\n",
206
+ " <td>0.410335</td>\n",
207
+ " </tr>\n",
208
+ " </tbody>\n",
209
+ "</table>\n",
210
+ "<p>5 rows × 24 columns</p>\n",
211
+ "</div>"
212
+ ],
213
+ "text/plain": [
214
+ " name MDVP:Fo(Hz) MDVP:Fhi(Hz) MDVP:Flo(Hz) MDVP:Jitter(%) \\\n",
215
+ "0 phon_R01_S01_1 119.992 157.302 74.997 0.00784 \n",
216
+ "1 phon_R01_S01_2 122.400 148.650 113.819 0.00968 \n",
217
+ "2 phon_R01_S01_3 116.682 131.111 111.555 0.01050 \n",
218
+ "3 phon_R01_S01_4 116.676 137.871 111.366 0.00997 \n",
219
+ "4 phon_R01_S01_5 116.014 141.781 110.655 0.01284 \n",
220
+ "\n",
221
+ " MDVP:Jitter(Abs) MDVP:RAP MDVP:PPQ Jitter:DDP MDVP:Shimmer ... \\\n",
222
+ "0 0.00007 0.00370 0.00554 0.01109 0.04374 ... \n",
223
+ "1 0.00008 0.00465 0.00696 0.01394 0.06134 ... \n",
224
+ "2 0.00009 0.00544 0.00781 0.01633 0.05233 ... \n",
225
+ "3 0.00009 0.00502 0.00698 0.01505 0.05492 ... \n",
226
+ "4 0.00011 0.00655 0.00908 0.01966 0.06425 ... \n",
227
+ "\n",
228
+ " Shimmer:DDA NHR HNR status RPDE DFA spread1 \\\n",
229
+ "0 0.06545 0.02211 21.033 1 0.414783 0.815285 -4.813031 \n",
230
+ "1 0.09403 0.01929 19.085 1 0.458359 0.819521 -4.075192 \n",
231
+ "2 0.08270 0.01309 20.651 1 0.429895 0.825288 -4.443179 \n",
232
+ "3 0.08771 0.01353 20.644 1 0.434969 0.819235 -4.117501 \n",
233
+ "4 0.10470 0.01767 19.649 1 0.417356 0.823484 -3.747787 \n",
234
+ "\n",
235
+ " spread2 D2 PPE \n",
236
+ "0 0.266482 2.301442 0.284654 \n",
237
+ "1 0.335590 2.486855 0.368674 \n",
238
+ "2 0.311173 2.342259 0.332634 \n",
239
+ "3 0.334147 2.405554 0.368975 \n",
240
+ "4 0.234513 2.332180 0.410335 \n",
241
+ "\n",
242
+ "[5 rows x 24 columns]"
243
+ ]
244
+ },
245
+ "execution_count": 4,
246
+ "metadata": {},
247
+ "output_type": "execute_result"
248
+ }
249
+ ],
250
+ "source": [
251
+ "# printing the first 5 rows of the dataframe\n",
252
+ "parkinsons_data.head()"
253
+ ]
254
+ },
255
+ {
256
+ "cell_type": "code",
257
+ "execution_count": 5,
258
+ "metadata": {
259
+ "colab": {
260
+ "base_uri": "https://localhost:8080/"
261
+ },
262
+ "id": "GnKu67fWCq3J",
263
+ "outputId": "dcc6f3ce-e284-4540-a7c4-b3e27aa5d257"
264
+ },
265
+ "outputs": [
266
+ {
267
+ "data": {
268
+ "text/plain": [
269
+ "(195, 24)"
270
+ ]
271
+ },
272
+ "execution_count": 5,
273
+ "metadata": {},
274
+ "output_type": "execute_result"
275
+ }
276
+ ],
277
+ "source": [
278
+ "# number of rows and columns in the dataframe\n",
279
+ "parkinsons_data.shape"
280
+ ]
281
+ },
282
+ {
283
+ "cell_type": "code",
284
+ "execution_count": 6,
285
+ "metadata": {
286
+ "colab": {
287
+ "base_uri": "https://localhost:8080/"
288
+ },
289
+ "id": "X3-KgOsBC1xE",
290
+ "outputId": "78d49fc5-2380-4406-f70f-bf9342fe0529"
291
+ },
292
+ "outputs": [
293
+ {
294
+ "name": "stdout",
295
+ "output_type": "stream",
296
+ "text": [
297
+ "<class 'pandas.core.frame.DataFrame'>\n",
298
+ "RangeIndex: 195 entries, 0 to 194\n",
299
+ "Data columns (total 24 columns):\n",
300
+ " # Column Non-Null Count Dtype \n",
301
+ "--- ------ -------------- ----- \n",
302
+ " 0 name 195 non-null object \n",
303
+ " 1 MDVP:Fo(Hz) 195 non-null float64\n",
304
+ " 2 MDVP:Fhi(Hz) 195 non-null float64\n",
305
+ " 3 MDVP:Flo(Hz) 195 non-null float64\n",
306
+ " 4 MDVP:Jitter(%) 195 non-null float64\n",
307
+ " 5 MDVP:Jitter(Abs) 195 non-null float64\n",
308
+ " 6 MDVP:RAP 195 non-null float64\n",
309
+ " 7 MDVP:PPQ 195 non-null float64\n",
310
+ " 8 Jitter:DDP 195 non-null float64\n",
311
+ " 9 MDVP:Shimmer 195 non-null float64\n",
312
+ " 10 MDVP:Shimmer(dB) 195 non-null float64\n",
313
+ " 11 Shimmer:APQ3 195 non-null float64\n",
314
+ " 12 Shimmer:APQ5 195 non-null float64\n",
315
+ " 13 MDVP:APQ 195 non-null float64\n",
316
+ " 14 Shimmer:DDA 195 non-null float64\n",
317
+ " 15 NHR 195 non-null float64\n",
318
+ " 16 HNR 195 non-null float64\n",
319
+ " 17 status 195 non-null int64 \n",
320
+ " 18 RPDE 195 non-null float64\n",
321
+ " 19 DFA 195 non-null float64\n",
322
+ " 20 spread1 195 non-null float64\n",
323
+ " 21 spread2 195 non-null float64\n",
324
+ " 22 D2 195 non-null float64\n",
325
+ " 23 PPE 195 non-null float64\n",
326
+ "dtypes: float64(22), int64(1), object(1)\n",
327
+ "memory usage: 36.7+ KB\n"
328
+ ]
329
+ }
330
+ ],
331
+ "source": [
332
+ "# getting more information about the dataset\n",
333
+ "parkinsons_data.info()"
334
+ ]
335
+ },
336
+ {
337
+ "cell_type": "code",
338
+ "execution_count": 7,
339
+ "metadata": {
340
+ "colab": {
341
+ "base_uri": "https://localhost:8080/",
342
+ "height": 837
343
+ },
344
+ "id": "ZCXIzqllC2uw",
345
+ "outputId": "3cc2fb10-275e-48a0-a16a-a85984432398"
346
+ },
347
+ "outputs": [
348
+ {
349
+ "data": {
350
+ "text/plain": [
351
+ "name 0\n",
352
+ "MDVP:Fo(Hz) 0\n",
353
+ "MDVP:Fhi(Hz) 0\n",
354
+ "MDVP:Flo(Hz) 0\n",
355
+ "MDVP:Jitter(%) 0\n",
356
+ "MDVP:Jitter(Abs) 0\n",
357
+ "MDVP:RAP 0\n",
358
+ "MDVP:PPQ 0\n",
359
+ "Jitter:DDP 0\n",
360
+ "MDVP:Shimmer 0\n",
361
+ "MDVP:Shimmer(dB) 0\n",
362
+ "Shimmer:APQ3 0\n",
363
+ "Shimmer:APQ5 0\n",
364
+ "MDVP:APQ 0\n",
365
+ "Shimmer:DDA 0\n",
366
+ "NHR 0\n",
367
+ "HNR 0\n",
368
+ "status 0\n",
369
+ "RPDE 0\n",
370
+ "DFA 0\n",
371
+ "spread1 0\n",
372
+ "spread2 0\n",
373
+ "D2 0\n",
374
+ "PPE 0\n",
375
+ "dtype: int64"
376
+ ]
377
+ },
378
+ "execution_count": 7,
379
+ "metadata": {},
380
+ "output_type": "execute_result"
381
+ }
382
+ ],
383
+ "source": [
384
+ "# checking for missing values in each column\n",
385
+ "parkinsons_data.isnull().sum()"
386
+ ]
387
+ },
388
+ {
389
+ "cell_type": "code",
390
+ "execution_count": 8,
391
+ "metadata": {
392
+ "colab": {
393
+ "base_uri": "https://localhost:8080/",
394
+ "height": 350
395
+ },
396
+ "id": "r0t0Bp7gC42M",
397
+ "outputId": "fab2ba90-2bc9-46d0-aeea-e78be3a4c634"
398
+ },
399
+ "outputs": [
400
+ {
401
+ "data": {
402
+ "text/html": [
403
+ "<div>\n",
404
+ "<style scoped>\n",
405
+ " .dataframe tbody tr th:only-of-type {\n",
406
+ " vertical-align: middle;\n",
407
+ " }\n",
408
+ "\n",
409
+ " .dataframe tbody tr th {\n",
410
+ " vertical-align: top;\n",
411
+ " }\n",
412
+ "\n",
413
+ " .dataframe thead th {\n",
414
+ " text-align: right;\n",
415
+ " }\n",
416
+ "</style>\n",
417
+ "<table border=\"1\" class=\"dataframe\">\n",
418
+ " <thead>\n",
419
+ " <tr style=\"text-align: right;\">\n",
420
+ " <th></th>\n",
421
+ " <th>MDVP:Fo(Hz)</th>\n",
422
+ " <th>MDVP:Fhi(Hz)</th>\n",
423
+ " <th>MDVP:Flo(Hz)</th>\n",
424
+ " <th>MDVP:Jitter(%)</th>\n",
425
+ " <th>MDVP:Jitter(Abs)</th>\n",
426
+ " <th>MDVP:RAP</th>\n",
427
+ " <th>MDVP:PPQ</th>\n",
428
+ " <th>Jitter:DDP</th>\n",
429
+ " <th>MDVP:Shimmer</th>\n",
430
+ " <th>MDVP:Shimmer(dB)</th>\n",
431
+ " <th>...</th>\n",
432
+ " <th>Shimmer:DDA</th>\n",
433
+ " <th>NHR</th>\n",
434
+ " <th>HNR</th>\n",
435
+ " <th>status</th>\n",
436
+ " <th>RPDE</th>\n",
437
+ " <th>DFA</th>\n",
438
+ " <th>spread1</th>\n",
439
+ " <th>spread2</th>\n",
440
+ " <th>D2</th>\n",
441
+ " <th>PPE</th>\n",
442
+ " </tr>\n",
443
+ " </thead>\n",
444
+ " <tbody>\n",
445
+ " <tr>\n",
446
+ " <th>count</th>\n",
447
+ " <td>195.000000</td>\n",
448
+ " <td>195.000000</td>\n",
449
+ " <td>195.000000</td>\n",
450
+ " <td>195.000000</td>\n",
451
+ " <td>195.000000</td>\n",
452
+ " <td>195.000000</td>\n",
453
+ " <td>195.000000</td>\n",
454
+ " <td>195.000000</td>\n",
455
+ " <td>195.000000</td>\n",
456
+ " <td>195.000000</td>\n",
457
+ " <td>...</td>\n",
458
+ " <td>195.000000</td>\n",
459
+ " <td>195.000000</td>\n",
460
+ " <td>195.000000</td>\n",
461
+ " <td>195.000000</td>\n",
462
+ " <td>195.000000</td>\n",
463
+ " <td>195.000000</td>\n",
464
+ " <td>195.000000</td>\n",
465
+ " <td>195.000000</td>\n",
466
+ " <td>195.000000</td>\n",
467
+ " <td>195.000000</td>\n",
468
+ " </tr>\n",
469
+ " <tr>\n",
470
+ " <th>mean</th>\n",
471
+ " <td>154.228641</td>\n",
472
+ " <td>197.104918</td>\n",
473
+ " <td>116.324631</td>\n",
474
+ " <td>0.006220</td>\n",
475
+ " <td>0.000044</td>\n",
476
+ " <td>0.003306</td>\n",
477
+ " <td>0.003446</td>\n",
478
+ " <td>0.009920</td>\n",
479
+ " <td>0.029709</td>\n",
480
+ " <td>0.282251</td>\n",
481
+ " <td>...</td>\n",
482
+ " <td>0.046993</td>\n",
483
+ " <td>0.024847</td>\n",
484
+ " <td>21.885974</td>\n",
485
+ " <td>0.753846</td>\n",
486
+ " <td>0.498536</td>\n",
487
+ " <td>0.718099</td>\n",
488
+ " <td>-5.684397</td>\n",
489
+ " <td>0.226510</td>\n",
490
+ " <td>2.381826</td>\n",
491
+ " <td>0.206552</td>\n",
492
+ " </tr>\n",
493
+ " <tr>\n",
494
+ " <th>std</th>\n",
495
+ " <td>41.390065</td>\n",
496
+ " <td>91.491548</td>\n",
497
+ " <td>43.521413</td>\n",
498
+ " <td>0.004848</td>\n",
499
+ " <td>0.000035</td>\n",
500
+ " <td>0.002968</td>\n",
501
+ " <td>0.002759</td>\n",
502
+ " <td>0.008903</td>\n",
503
+ " <td>0.018857</td>\n",
504
+ " <td>0.194877</td>\n",
505
+ " <td>...</td>\n",
506
+ " <td>0.030459</td>\n",
507
+ " <td>0.040418</td>\n",
508
+ " <td>4.425764</td>\n",
509
+ " <td>0.431878</td>\n",
510
+ " <td>0.103942</td>\n",
511
+ " <td>0.055336</td>\n",
512
+ " <td>1.090208</td>\n",
513
+ " <td>0.083406</td>\n",
514
+ " <td>0.382799</td>\n",
515
+ " <td>0.090119</td>\n",
516
+ " </tr>\n",
517
+ " <tr>\n",
518
+ " <th>min</th>\n",
519
+ " <td>88.333000</td>\n",
520
+ " <td>102.145000</td>\n",
521
+ " <td>65.476000</td>\n",
522
+ " <td>0.001680</td>\n",
523
+ " <td>0.000007</td>\n",
524
+ " <td>0.000680</td>\n",
525
+ " <td>0.000920</td>\n",
526
+ " <td>0.002040</td>\n",
527
+ " <td>0.009540</td>\n",
528
+ " <td>0.085000</td>\n",
529
+ " <td>...</td>\n",
530
+ " <td>0.013640</td>\n",
531
+ " <td>0.000650</td>\n",
532
+ " <td>8.441000</td>\n",
533
+ " <td>0.000000</td>\n",
534
+ " <td>0.256570</td>\n",
535
+ " <td>0.574282</td>\n",
536
+ " <td>-7.964984</td>\n",
537
+ " <td>0.006274</td>\n",
538
+ " <td>1.423287</td>\n",
539
+ " <td>0.044539</td>\n",
540
+ " </tr>\n",
541
+ " <tr>\n",
542
+ " <th>25%</th>\n",
543
+ " <td>117.572000</td>\n",
544
+ " <td>134.862500</td>\n",
545
+ " <td>84.291000</td>\n",
546
+ " <td>0.003460</td>\n",
547
+ " <td>0.000020</td>\n",
548
+ " <td>0.001660</td>\n",
549
+ " <td>0.001860</td>\n",
550
+ " <td>0.004985</td>\n",
551
+ " <td>0.016505</td>\n",
552
+ " <td>0.148500</td>\n",
553
+ " <td>...</td>\n",
554
+ " <td>0.024735</td>\n",
555
+ " <td>0.005925</td>\n",
556
+ " <td>19.198000</td>\n",
557
+ " <td>1.000000</td>\n",
558
+ " <td>0.421306</td>\n",
559
+ " <td>0.674758</td>\n",
560
+ " <td>-6.450096</td>\n",
561
+ " <td>0.174351</td>\n",
562
+ " <td>2.099125</td>\n",
563
+ " <td>0.137451</td>\n",
564
+ " </tr>\n",
565
+ " <tr>\n",
566
+ " <th>50%</th>\n",
567
+ " <td>148.790000</td>\n",
568
+ " <td>175.829000</td>\n",
569
+ " <td>104.315000</td>\n",
570
+ " <td>0.004940</td>\n",
571
+ " <td>0.000030</td>\n",
572
+ " <td>0.002500</td>\n",
573
+ " <td>0.002690</td>\n",
574
+ " <td>0.007490</td>\n",
575
+ " <td>0.022970</td>\n",
576
+ " <td>0.221000</td>\n",
577
+ " <td>...</td>\n",
578
+ " <td>0.038360</td>\n",
579
+ " <td>0.011660</td>\n",
580
+ " <td>22.085000</td>\n",
581
+ " <td>1.000000</td>\n",
582
+ " <td>0.495954</td>\n",
583
+ " <td>0.722254</td>\n",
584
+ " <td>-5.720868</td>\n",
585
+ " <td>0.218885</td>\n",
586
+ " <td>2.361532</td>\n",
587
+ " <td>0.194052</td>\n",
588
+ " </tr>\n",
589
+ " <tr>\n",
590
+ " <th>75%</th>\n",
591
+ " <td>182.769000</td>\n",
592
+ " <td>224.205500</td>\n",
593
+ " <td>140.018500</td>\n",
594
+ " <td>0.007365</td>\n",
595
+ " <td>0.000060</td>\n",
596
+ " <td>0.003835</td>\n",
597
+ " <td>0.003955</td>\n",
598
+ " <td>0.011505</td>\n",
599
+ " <td>0.037885</td>\n",
600
+ " <td>0.350000</td>\n",
601
+ " <td>...</td>\n",
602
+ " <td>0.060795</td>\n",
603
+ " <td>0.025640</td>\n",
604
+ " <td>25.075500</td>\n",
605
+ " <td>1.000000</td>\n",
606
+ " <td>0.587562</td>\n",
607
+ " <td>0.761881</td>\n",
608
+ " <td>-5.046192</td>\n",
609
+ " <td>0.279234</td>\n",
610
+ " <td>2.636456</td>\n",
611
+ " <td>0.252980</td>\n",
612
+ " </tr>\n",
613
+ " <tr>\n",
614
+ " <th>max</th>\n",
615
+ " <td>260.105000</td>\n",
616
+ " <td>592.030000</td>\n",
617
+ " <td>239.170000</td>\n",
618
+ " <td>0.033160</td>\n",
619
+ " <td>0.000260</td>\n",
620
+ " <td>0.021440</td>\n",
621
+ " <td>0.019580</td>\n",
622
+ " <td>0.064330</td>\n",
623
+ " <td>0.119080</td>\n",
624
+ " <td>1.302000</td>\n",
625
+ " <td>...</td>\n",
626
+ " <td>0.169420</td>\n",
627
+ " <td>0.314820</td>\n",
628
+ " <td>33.047000</td>\n",
629
+ " <td>1.000000</td>\n",
630
+ " <td>0.685151</td>\n",
631
+ " <td>0.825288</td>\n",
632
+ " <td>-2.434031</td>\n",
633
+ " <td>0.450493</td>\n",
634
+ " <td>3.671155</td>\n",
635
+ " <td>0.527367</td>\n",
636
+ " </tr>\n",
637
+ " </tbody>\n",
638
+ "</table>\n",
639
+ "<p>8 rows × 23 columns</p>\n",
640
+ "</div>"
641
+ ],
642
+ "text/plain": [
643
+ " MDVP:Fo(Hz) MDVP:Fhi(Hz) MDVP:Flo(Hz) MDVP:Jitter(%) \\\n",
644
+ "count 195.000000 195.000000 195.000000 195.000000 \n",
645
+ "mean 154.228641 197.104918 116.324631 0.006220 \n",
646
+ "std 41.390065 91.491548 43.521413 0.004848 \n",
647
+ "min 88.333000 102.145000 65.476000 0.001680 \n",
648
+ "25% 117.572000 134.862500 84.291000 0.003460 \n",
649
+ "50% 148.790000 175.829000 104.315000 0.004940 \n",
650
+ "75% 182.769000 224.205500 140.018500 0.007365 \n",
651
+ "max 260.105000 592.030000 239.170000 0.033160 \n",
652
+ "\n",
653
+ " MDVP:Jitter(Abs) MDVP:RAP MDVP:PPQ Jitter:DDP MDVP:Shimmer \\\n",
654
+ "count 195.000000 195.000000 195.000000 195.000000 195.000000 \n",
655
+ "mean 0.000044 0.003306 0.003446 0.009920 0.029709 \n",
656
+ "std 0.000035 0.002968 0.002759 0.008903 0.018857 \n",
657
+ "min 0.000007 0.000680 0.000920 0.002040 0.009540 \n",
658
+ "25% 0.000020 0.001660 0.001860 0.004985 0.016505 \n",
659
+ "50% 0.000030 0.002500 0.002690 0.007490 0.022970 \n",
660
+ "75% 0.000060 0.003835 0.003955 0.011505 0.037885 \n",
661
+ "max 0.000260 0.021440 0.019580 0.064330 0.119080 \n",
662
+ "\n",
663
+ " MDVP:Shimmer(dB) ... Shimmer:DDA NHR HNR status \\\n",
664
+ "count 195.000000 ... 195.000000 195.000000 195.000000 195.000000 \n",
665
+ "mean 0.282251 ... 0.046993 0.024847 21.885974 0.753846 \n",
666
+ "std 0.194877 ... 0.030459 0.040418 4.425764 0.431878 \n",
667
+ "min 0.085000 ... 0.013640 0.000650 8.441000 0.000000 \n",
668
+ "25% 0.148500 ... 0.024735 0.005925 19.198000 1.000000 \n",
669
+ "50% 0.221000 ... 0.038360 0.011660 22.085000 1.000000 \n",
670
+ "75% 0.350000 ... 0.060795 0.025640 25.075500 1.000000 \n",
671
+ "max 1.302000 ... 0.169420 0.314820 33.047000 1.000000 \n",
672
+ "\n",
673
+ " RPDE DFA spread1 spread2 D2 PPE \n",
674
+ "count 195.000000 195.000000 195.000000 195.000000 195.000000 195.000000 \n",
675
+ "mean 0.498536 0.718099 -5.684397 0.226510 2.381826 0.206552 \n",
676
+ "std 0.103942 0.055336 1.090208 0.083406 0.382799 0.090119 \n",
677
+ "min 0.256570 0.574282 -7.964984 0.006274 1.423287 0.044539 \n",
678
+ "25% 0.421306 0.674758 -6.450096 0.174351 2.099125 0.137451 \n",
679
+ "50% 0.495954 0.722254 -5.720868 0.218885 2.361532 0.194052 \n",
680
+ "75% 0.587562 0.761881 -5.046192 0.279234 2.636456 0.252980 \n",
681
+ "max 0.685151 0.825288 -2.434031 0.450493 3.671155 0.527367 \n",
682
+ "\n",
683
+ "[8 rows x 23 columns]"
684
+ ]
685
+ },
686
+ "execution_count": 8,
687
+ "metadata": {},
688
+ "output_type": "execute_result"
689
+ }
690
+ ],
691
+ "source": [
692
+ "# getting some statistical measures about the data\n",
693
+ "parkinsons_data.describe()"
694
+ ]
695
+ },
696
+ {
697
+ "cell_type": "code",
698
+ "execution_count": 9,
699
+ "metadata": {
700
+ "colab": {
701
+ "base_uri": "https://localhost:8080/",
702
+ "height": 178
703
+ },
704
+ "id": "Dam2xdMGC7AK",
705
+ "outputId": "30c5eb58-f439-497b-dd9d-a22b0efc1466"
706
+ },
707
+ "outputs": [
708
+ {
709
+ "data": {
710
+ "text/plain": [
711
+ "status\n",
712
+ "1 147\n",
713
+ "0 48\n",
714
+ "Name: count, dtype: int64"
715
+ ]
716
+ },
717
+ "execution_count": 9,
718
+ "metadata": {},
719
+ "output_type": "execute_result"
720
+ }
721
+ ],
722
+ "source": [
723
+ "# distribution of target Variable\n",
724
+ "parkinsons_data['status'].value_counts()"
725
+ ]
726
+ },
727
+ {
728
+ "cell_type": "code",
729
+ "execution_count": 10,
730
+ "metadata": {
731
+ "colab": {
732
+ "base_uri": "https://localhost:8080/"
733
+ },
734
+ "id": "-7QCu-hgGqxF",
735
+ "outputId": "c57b1e19-96cb-4223-add3-4252cdcbee96"
736
+ },
737
+ "outputs": [
738
+ {
739
+ "name": "stdout",
740
+ "output_type": "stream",
741
+ "text": [
742
+ "<class 'pandas.core.frame.DataFrame'>\n",
743
+ "RangeIndex: 195 entries, 0 to 194\n",
744
+ "Data columns (total 24 columns):\n",
745
+ " # Column Non-Null Count Dtype \n",
746
+ "--- ------ -------------- ----- \n",
747
+ " 0 name 195 non-null object \n",
748
+ " 1 MDVP:Fo(Hz) 195 non-null float64\n",
749
+ " 2 MDVP:Fhi(Hz) 195 non-null float64\n",
750
+ " 3 MDVP:Flo(Hz) 195 non-null float64\n",
751
+ " 4 MDVP:Jitter(%) 195 non-null float64\n",
752
+ " 5 MDVP:Jitter(Abs) 195 non-null float64\n",
753
+ " 6 MDVP:RAP 195 non-null float64\n",
754
+ " 7 MDVP:PPQ 195 non-null float64\n",
755
+ " 8 Jitter:DDP 195 non-null float64\n",
756
+ " 9 MDVP:Shimmer 195 non-null float64\n",
757
+ " 10 MDVP:Shimmer(dB) 195 non-null float64\n",
758
+ " 11 Shimmer:APQ3 195 non-null float64\n",
759
+ " 12 Shimmer:APQ5 195 non-null float64\n",
760
+ " 13 MDVP:APQ 195 non-null float64\n",
761
+ " 14 Shimmer:DDA 195 non-null float64\n",
762
+ " 15 NHR 195 non-null float64\n",
763
+ " 16 HNR 195 non-null float64\n",
764
+ " 17 status 195 non-null int64 \n",
765
+ " 18 RPDE 195 non-null float64\n",
766
+ " 19 DFA 195 non-null float64\n",
767
+ " 20 spread1 195 non-null float64\n",
768
+ " 21 spread2 195 non-null float64\n",
769
+ " 22 D2 195 non-null float64\n",
770
+ " 23 PPE 195 non-null float64\n",
771
+ "dtypes: float64(22), int64(1), object(1)\n",
772
+ "memory usage: 36.7+ KB\n"
773
+ ]
774
+ }
775
+ ],
776
+ "source": [
777
+ "parkinsons_data.info()"
778
+ ]
779
+ },
780
+ {
781
+ "cell_type": "code",
782
+ "execution_count": 11,
783
+ "metadata": {
784
+ "colab": {
785
+ "base_uri": "https://localhost:8080/",
786
+ "height": 193
787
+ },
788
+ "id": "SwCFPVO7C9T1",
789
+ "outputId": "679f41de-9b7d-4c39-85f2-1aecb3e6f613"
790
+ },
791
+ "outputs": [
792
+ {
793
+ "data": {
794
+ "text/html": [
795
+ "<div>\n",
796
+ "<style scoped>\n",
797
+ " .dataframe tbody tr th:only-of-type {\n",
798
+ " vertical-align: middle;\n",
799
+ " }\n",
800
+ "\n",
801
+ " .dataframe tbody tr th {\n",
802
+ " vertical-align: top;\n",
803
+ " }\n",
804
+ "\n",
805
+ " .dataframe thead th {\n",
806
+ " text-align: right;\n",
807
+ " }\n",
808
+ "</style>\n",
809
+ "<table border=\"1\" class=\"dataframe\">\n",
810
+ " <thead>\n",
811
+ " <tr style=\"text-align: right;\">\n",
812
+ " <th></th>\n",
813
+ " <th>MDVP:Fo(Hz)</th>\n",
814
+ " <th>MDVP:Fhi(Hz)</th>\n",
815
+ " <th>MDVP:Flo(Hz)</th>\n",
816
+ " <th>MDVP:Jitter(%)</th>\n",
817
+ " <th>MDVP:Jitter(Abs)</th>\n",
818
+ " <th>MDVP:RAP</th>\n",
819
+ " <th>MDVP:PPQ</th>\n",
820
+ " <th>Jitter:DDP</th>\n",
821
+ " <th>MDVP:Shimmer</th>\n",
822
+ " <th>MDVP:Shimmer(dB)</th>\n",
823
+ " <th>...</th>\n",
824
+ " <th>MDVP:APQ</th>\n",
825
+ " <th>Shimmer:DDA</th>\n",
826
+ " <th>NHR</th>\n",
827
+ " <th>HNR</th>\n",
828
+ " <th>RPDE</th>\n",
829
+ " <th>DFA</th>\n",
830
+ " <th>spread1</th>\n",
831
+ " <th>spread2</th>\n",
832
+ " <th>D2</th>\n",
833
+ " <th>PPE</th>\n",
834
+ " </tr>\n",
835
+ " <tr>\n",
836
+ " <th>status</th>\n",
837
+ " <th></th>\n",
838
+ " <th></th>\n",
839
+ " <th></th>\n",
840
+ " <th></th>\n",
841
+ " <th></th>\n",
842
+ " <th></th>\n",
843
+ " <th></th>\n",
844
+ " <th></th>\n",
845
+ " <th></th>\n",
846
+ " <th></th>\n",
847
+ " <th></th>\n",
848
+ " <th></th>\n",
849
+ " <th></th>\n",
850
+ " <th></th>\n",
851
+ " <th></th>\n",
852
+ " <th></th>\n",
853
+ " <th></th>\n",
854
+ " <th></th>\n",
855
+ " <th></th>\n",
856
+ " <th></th>\n",
857
+ " <th></th>\n",
858
+ " </tr>\n",
859
+ " </thead>\n",
860
+ " <tbody>\n",
861
+ " <tr>\n",
862
+ " <th>0</th>\n",
863
+ " <td>181.937771</td>\n",
864
+ " <td>223.636750</td>\n",
865
+ " <td>145.207292</td>\n",
866
+ " <td>0.003866</td>\n",
867
+ " <td>0.000023</td>\n",
868
+ " <td>0.001925</td>\n",
869
+ " <td>0.002056</td>\n",
870
+ " <td>0.005776</td>\n",
871
+ " <td>0.017615</td>\n",
872
+ " <td>0.162958</td>\n",
873
+ " <td>...</td>\n",
874
+ " <td>0.013305</td>\n",
875
+ " <td>0.028511</td>\n",
876
+ " <td>0.011483</td>\n",
877
+ " <td>24.678750</td>\n",
878
+ " <td>0.442552</td>\n",
879
+ " <td>0.695716</td>\n",
880
+ " <td>-6.759264</td>\n",
881
+ " <td>0.160292</td>\n",
882
+ " <td>2.154491</td>\n",
883
+ " <td>0.123017</td>\n",
884
+ " </tr>\n",
885
+ " <tr>\n",
886
+ " <th>1</th>\n",
887
+ " <td>145.180762</td>\n",
888
+ " <td>188.441463</td>\n",
889
+ " <td>106.893558</td>\n",
890
+ " <td>0.006989</td>\n",
891
+ " <td>0.000051</td>\n",
892
+ " <td>0.003757</td>\n",
893
+ " <td>0.003900</td>\n",
894
+ " <td>0.011273</td>\n",
895
+ " <td>0.033658</td>\n",
896
+ " <td>0.321204</td>\n",
897
+ " <td>...</td>\n",
898
+ " <td>0.027600</td>\n",
899
+ " <td>0.053027</td>\n",
900
+ " <td>0.029211</td>\n",
901
+ " <td>20.974048</td>\n",
902
+ " <td>0.516816</td>\n",
903
+ " <td>0.725408</td>\n",
904
+ " <td>-5.333420</td>\n",
905
+ " <td>0.248133</td>\n",
906
+ " <td>2.456058</td>\n",
907
+ " <td>0.233828</td>\n",
908
+ " </tr>\n",
909
+ " </tbody>\n",
910
+ "</table>\n",
911
+ "<p>2 rows × 22 columns</p>\n",
912
+ "</div>"
913
+ ],
914
+ "text/plain": [
915
+ " MDVP:Fo(Hz) MDVP:Fhi(Hz) MDVP:Flo(Hz) MDVP:Jitter(%) \\\n",
916
+ "status \n",
917
+ "0 181.937771 223.636750 145.207292 0.003866 \n",
918
+ "1 145.180762 188.441463 106.893558 0.006989 \n",
919
+ "\n",
920
+ " MDVP:Jitter(Abs) MDVP:RAP MDVP:PPQ Jitter:DDP MDVP:Shimmer \\\n",
921
+ "status \n",
922
+ "0 0.000023 0.001925 0.002056 0.005776 0.017615 \n",
923
+ "1 0.000051 0.003757 0.003900 0.011273 0.033658 \n",
924
+ "\n",
925
+ " MDVP:Shimmer(dB) ... MDVP:APQ Shimmer:DDA NHR HNR \\\n",
926
+ "status ... \n",
927
+ "0 0.162958 ... 0.013305 0.028511 0.011483 24.678750 \n",
928
+ "1 0.321204 ... 0.027600 0.053027 0.029211 20.974048 \n",
929
+ "\n",
930
+ " RPDE DFA spread1 spread2 D2 PPE \n",
931
+ "status \n",
932
+ "0 0.442552 0.695716 -6.759264 0.160292 2.154491 0.123017 \n",
933
+ "1 0.516816 0.725408 -5.333420 0.248133 2.456058 0.233828 \n",
934
+ "\n",
935
+ "[2 rows x 22 columns]"
936
+ ]
937
+ },
938
+ "execution_count": 11,
939
+ "metadata": {},
940
+ "output_type": "execute_result"
941
+ }
942
+ ],
943
+ "source": [
944
+ "# grouping the data bas3ed on the target variable\n",
945
+ "parkinsons_data.drop(columns=['name'],axis=1).groupby('status').mean()"
946
+ ]
947
+ },
948
+ {
949
+ "cell_type": "code",
950
+ "execution_count": 12,
951
+ "metadata": {
952
+ "id": "8E7BYHMbC_ey"
953
+ },
954
+ "outputs": [],
955
+ "source": [
956
+ "X = parkinsons_data.drop(columns=['name','status'], axis=1)\n",
957
+ "Y = parkinsons_data['status']"
958
+ ]
959
+ },
960
+ {
961
+ "cell_type": "code",
962
+ "execution_count": 13,
963
+ "metadata": {
964
+ "colab": {
965
+ "base_uri": "https://localhost:8080/"
966
+ },
967
+ "id": "__DZO-R7DBp8",
968
+ "outputId": "a2478e61-5fee-4154-ee01-a03e2760fa0f"
969
+ },
970
+ "outputs": [
971
+ {
972
+ "name": "stdout",
973
+ "output_type": "stream",
974
+ "text": [
975
+ " MDVP:Fo(Hz) MDVP:Fhi(Hz) MDVP:Flo(Hz) MDVP:Jitter(%) \\\n",
976
+ "0 119.992 157.302 74.997 0.00784 \n",
977
+ "1 122.400 148.650 113.819 0.00968 \n",
978
+ "2 116.682 131.111 111.555 0.01050 \n",
979
+ "3 116.676 137.871 111.366 0.00997 \n",
980
+ "4 116.014 141.781 110.655 0.01284 \n",
981
+ ".. ... ... ... ... \n",
982
+ "190 174.188 230.978 94.261 0.00459 \n",
983
+ "191 209.516 253.017 89.488 0.00564 \n",
984
+ "192 174.688 240.005 74.287 0.01360 \n",
985
+ "193 198.764 396.961 74.904 0.00740 \n",
986
+ "194 214.289 260.277 77.973 0.00567 \n",
987
+ "\n",
988
+ " MDVP:Jitter(Abs) MDVP:RAP MDVP:PPQ Jitter:DDP MDVP:Shimmer \\\n",
989
+ "0 0.00007 0.00370 0.00554 0.01109 0.04374 \n",
990
+ "1 0.00008 0.00465 0.00696 0.01394 0.06134 \n",
991
+ "2 0.00009 0.00544 0.00781 0.01633 0.05233 \n",
992
+ "3 0.00009 0.00502 0.00698 0.01505 0.05492 \n",
993
+ "4 0.00011 0.00655 0.00908 0.01966 0.06425 \n",
994
+ ".. ... ... ... ... ... \n",
995
+ "190 0.00003 0.00263 0.00259 0.00790 0.04087 \n",
996
+ "191 0.00003 0.00331 0.00292 0.00994 0.02751 \n",
997
+ "192 0.00008 0.00624 0.00564 0.01873 0.02308 \n",
998
+ "193 0.00004 0.00370 0.00390 0.01109 0.02296 \n",
999
+ "194 0.00003 0.00295 0.00317 0.00885 0.01884 \n",
1000
+ "\n",
1001
+ " MDVP:Shimmer(dB) ... MDVP:APQ Shimmer:DDA NHR HNR RPDE \\\n",
1002
+ "0 0.426 ... 0.02971 0.06545 0.02211 21.033 0.414783 \n",
1003
+ "1 0.626 ... 0.04368 0.09403 0.01929 19.085 0.458359 \n",
1004
+ "2 0.482 ... 0.03590 0.08270 0.01309 20.651 0.429895 \n",
1005
+ "3 0.517 ... 0.03772 0.08771 0.01353 20.644 0.434969 \n",
1006
+ "4 0.584 ... 0.04465 0.10470 0.01767 19.649 0.417356 \n",
1007
+ ".. ... ... ... ... ... ... ... \n",
1008
+ "190 0.405 ... 0.02745 0.07008 0.02764 19.517 0.448439 \n",
1009
+ "191 0.263 ... 0.01879 0.04812 0.01810 19.147 0.431674 \n",
1010
+ "192 0.256 ... 0.01667 0.03804 0.10715 17.883 0.407567 \n",
1011
+ "193 0.241 ... 0.01588 0.03794 0.07223 19.020 0.451221 \n",
1012
+ "194 0.190 ... 0.01373 0.03078 0.04398 21.209 0.462803 \n",
1013
+ "\n",
1014
+ " DFA spread1 spread2 D2 PPE \n",
1015
+ "0 0.815285 -4.813031 0.266482 2.301442 0.284654 \n",
1016
+ "1 0.819521 -4.075192 0.335590 2.486855 0.368674 \n",
1017
+ "2 0.825288 -4.443179 0.311173 2.342259 0.332634 \n",
1018
+ "3 0.819235 -4.117501 0.334147 2.405554 0.368975 \n",
1019
+ "4 0.823484 -3.747787 0.234513 2.332180 0.410335 \n",
1020
+ ".. ... ... ... ... ... \n",
1021
+ "190 0.657899 -6.538586 0.121952 2.657476 0.133050 \n",
1022
+ "191 0.683244 -6.195325 0.129303 2.784312 0.168895 \n",
1023
+ "192 0.655683 -6.787197 0.158453 2.679772 0.131728 \n",
1024
+ "193 0.643956 -6.744577 0.207454 2.138608 0.123306 \n",
1025
+ "194 0.664357 -5.724056 0.190667 2.555477 0.148569 \n",
1026
+ "\n",
1027
+ "[195 rows x 22 columns]\n"
1028
+ ]
1029
+ }
1030
+ ],
1031
+ "source": [
1032
+ "print(X)"
1033
+ ]
1034
+ },
1035
+ {
1036
+ "cell_type": "code",
1037
+ "execution_count": 14,
1038
+ "metadata": {
1039
+ "colab": {
1040
+ "base_uri": "https://localhost:8080/"
1041
+ },
1042
+ "id": "fq8HpskIDD6R",
1043
+ "outputId": "89ce1fbb-4ba4-49ed-a1b0-84e5a9c82caf"
1044
+ },
1045
+ "outputs": [
1046
+ {
1047
+ "name": "stdout",
1048
+ "output_type": "stream",
1049
+ "text": [
1050
+ "0 1\n",
1051
+ "1 1\n",
1052
+ "2 1\n",
1053
+ "3 1\n",
1054
+ "4 1\n",
1055
+ " ..\n",
1056
+ "190 0\n",
1057
+ "191 0\n",
1058
+ "192 0\n",
1059
+ "193 0\n",
1060
+ "194 0\n",
1061
+ "Name: status, Length: 195, dtype: int64\n"
1062
+ ]
1063
+ }
1064
+ ],
1065
+ "source": [
1066
+ "print(Y)"
1067
+ ]
1068
+ },
1069
+ {
1070
+ "cell_type": "code",
1071
+ "execution_count": 15,
1072
+ "metadata": {
1073
+ "id": "WASfY0NIDFzC"
1074
+ },
1075
+ "outputs": [],
1076
+ "source": [
1077
+ "X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state=2)"
1078
+ ]
1079
+ },
1080
+ {
1081
+ "cell_type": "code",
1082
+ "execution_count": 16,
1083
+ "metadata": {
1084
+ "colab": {
1085
+ "base_uri": "https://localhost:8080/"
1086
+ },
1087
+ "id": "Af8H7SBZDJdN",
1088
+ "outputId": "dab977fd-b9ec-41a5-9a70-0f9815f0a420"
1089
+ },
1090
+ "outputs": [
1091
+ {
1092
+ "name": "stdout",
1093
+ "output_type": "stream",
1094
+ "text": [
1095
+ "(195, 22) (156, 22) (39, 22)\n"
1096
+ ]
1097
+ }
1098
+ ],
1099
+ "source": [
1100
+ "print(X.shape, X_train.shape, X_test.shape)"
1101
+ ]
1102
+ },
1103
+ {
1104
+ "cell_type": "code",
1105
+ "execution_count": 17,
1106
+ "metadata": {
1107
+ "id": "ik8GPLM-DMT_"
1108
+ },
1109
+ "outputs": [],
1110
+ "source": [
1111
+ "scaler = StandardScaler()"
1112
+ ]
1113
+ },
1114
+ {
1115
+ "cell_type": "code",
1116
+ "execution_count": 18,
1117
+ "metadata": {
1118
+ "colab": {
1119
+ "base_uri": "https://localhost:8080/",
1120
+ "height": 80
1121
+ },
1122
+ "id": "qxV6U1vxDOzH",
1123
+ "outputId": "0e368068-e068-465e-9310-932493fc0a4e"
1124
+ },
1125
+ "outputs": [
1126
+ {
1127
+ "data": {
1128
+ "text/html": [
1129
+ "<style>#sk-container-id-1 {\n",
1130
+ " /* Definition of color scheme common for light and dark mode */\n",
1131
+ " --sklearn-color-text: #000;\n",
1132
+ " --sklearn-color-text-muted: #666;\n",
1133
+ " --sklearn-color-line: gray;\n",
1134
+ " /* Definition of color scheme for unfitted estimators */\n",
1135
+ " --sklearn-color-unfitted-level-0: #fff5e6;\n",
1136
+ " --sklearn-color-unfitted-level-1: #f6e4d2;\n",
1137
+ " --sklearn-color-unfitted-level-2: #ffe0b3;\n",
1138
+ " --sklearn-color-unfitted-level-3: chocolate;\n",
1139
+ " /* Definition of color scheme for fitted estimators */\n",
1140
+ " --sklearn-color-fitted-level-0: #f0f8ff;\n",
1141
+ " --sklearn-color-fitted-level-1: #d4ebff;\n",
1142
+ " --sklearn-color-fitted-level-2: #b3dbfd;\n",
1143
+ " --sklearn-color-fitted-level-3: cornflowerblue;\n",
1144
+ "\n",
1145
+ " /* Specific color for light theme */\n",
1146
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
1147
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
1148
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
1149
+ " --sklearn-color-icon: #696969;\n",
1150
+ "\n",
1151
+ " @media (prefers-color-scheme: dark) {\n",
1152
+ " /* Redefinition of color scheme for dark theme */\n",
1153
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
1154
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
1155
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
1156
+ " --sklearn-color-icon: #878787;\n",
1157
+ " }\n",
1158
+ "}\n",
1159
+ "\n",
1160
+ "#sk-container-id-1 {\n",
1161
+ " color: var(--sklearn-color-text);\n",
1162
+ "}\n",
1163
+ "\n",
1164
+ "#sk-container-id-1 pre {\n",
1165
+ " padding: 0;\n",
1166
+ "}\n",
1167
+ "\n",
1168
+ "#sk-container-id-1 input.sk-hidden--visually {\n",
1169
+ " border: 0;\n",
1170
+ " clip: rect(1px 1px 1px 1px);\n",
1171
+ " clip: rect(1px, 1px, 1px, 1px);\n",
1172
+ " height: 1px;\n",
1173
+ " margin: -1px;\n",
1174
+ " overflow: hidden;\n",
1175
+ " padding: 0;\n",
1176
+ " position: absolute;\n",
1177
+ " width: 1px;\n",
1178
+ "}\n",
1179
+ "\n",
1180
+ "#sk-container-id-1 div.sk-dashed-wrapped {\n",
1181
+ " border: 1px dashed var(--sklearn-color-line);\n",
1182
+ " margin: 0 0.4em 0.5em 0.4em;\n",
1183
+ " box-sizing: border-box;\n",
1184
+ " padding-bottom: 0.4em;\n",
1185
+ " background-color: var(--sklearn-color-background);\n",
1186
+ "}\n",
1187
+ "\n",
1188
+ "#sk-container-id-1 div.sk-container {\n",
1189
+ " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
1190
+ " but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
1191
+ " so we also need the `!important` here to be able to override the\n",
1192
+ " default hidden behavior on the sphinx rendered scikit-learn.org.\n",
1193
+ " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
1194
+ " display: inline-block !important;\n",
1195
+ " position: relative;\n",
1196
+ "}\n",
1197
+ "\n",
1198
+ "#sk-container-id-1 div.sk-text-repr-fallback {\n",
1199
+ " display: none;\n",
1200
+ "}\n",
1201
+ "\n",
1202
+ "div.sk-parallel-item,\n",
1203
+ "div.sk-serial,\n",
1204
+ "div.sk-item {\n",
1205
+ " /* draw centered vertical line to link estimators */\n",
1206
+ " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
1207
+ " background-size: 2px 100%;\n",
1208
+ " background-repeat: no-repeat;\n",
1209
+ " background-position: center center;\n",
1210
+ "}\n",
1211
+ "\n",
1212
+ "/* Parallel-specific style estimator block */\n",
1213
+ "\n",
1214
+ "#sk-container-id-1 div.sk-parallel-item::after {\n",
1215
+ " content: \"\";\n",
1216
+ " width: 100%;\n",
1217
+ " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
1218
+ " flex-grow: 1;\n",
1219
+ "}\n",
1220
+ "\n",
1221
+ "#sk-container-id-1 div.sk-parallel {\n",
1222
+ " display: flex;\n",
1223
+ " align-items: stretch;\n",
1224
+ " justify-content: center;\n",
1225
+ " background-color: var(--sklearn-color-background);\n",
1226
+ " position: relative;\n",
1227
+ "}\n",
1228
+ "\n",
1229
+ "#sk-container-id-1 div.sk-parallel-item {\n",
1230
+ " display: flex;\n",
1231
+ " flex-direction: column;\n",
1232
+ "}\n",
1233
+ "\n",
1234
+ "#sk-container-id-1 div.sk-parallel-item:first-child::after {\n",
1235
+ " align-self: flex-end;\n",
1236
+ " width: 50%;\n",
1237
+ "}\n",
1238
+ "\n",
1239
+ "#sk-container-id-1 div.sk-parallel-item:last-child::after {\n",
1240
+ " align-self: flex-start;\n",
1241
+ " width: 50%;\n",
1242
+ "}\n",
1243
+ "\n",
1244
+ "#sk-container-id-1 div.sk-parallel-item:only-child::after {\n",
1245
+ " width: 0;\n",
1246
+ "}\n",
1247
+ "\n",
1248
+ "/* Serial-specific style estimator block */\n",
1249
+ "\n",
1250
+ "#sk-container-id-1 div.sk-serial {\n",
1251
+ " display: flex;\n",
1252
+ " flex-direction: column;\n",
1253
+ " align-items: center;\n",
1254
+ " background-color: var(--sklearn-color-background);\n",
1255
+ " padding-right: 1em;\n",
1256
+ " padding-left: 1em;\n",
1257
+ "}\n",
1258
+ "\n",
1259
+ "\n",
1260
+ "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
1261
+ "clickable and can be expanded/collapsed.\n",
1262
+ "- Pipeline and ColumnTransformer use this feature and define the default style\n",
1263
+ "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
1264
+ "*/\n",
1265
+ "\n",
1266
+ "/* Pipeline and ColumnTransformer style (default) */\n",
1267
+ "\n",
1268
+ "#sk-container-id-1 div.sk-toggleable {\n",
1269
+ " /* Default theme specific background. It is overwritten whether we have a\n",
1270
+ " specific estimator or a Pipeline/ColumnTransformer */\n",
1271
+ " background-color: var(--sklearn-color-background);\n",
1272
+ "}\n",
1273
+ "\n",
1274
+ "/* Toggleable label */\n",
1275
+ "#sk-container-id-1 label.sk-toggleable__label {\n",
1276
+ " cursor: pointer;\n",
1277
+ " display: flex;\n",
1278
+ " width: 100%;\n",
1279
+ " margin-bottom: 0;\n",
1280
+ " padding: 0.5em;\n",
1281
+ " box-sizing: border-box;\n",
1282
+ " text-align: center;\n",
1283
+ " align-items: start;\n",
1284
+ " justify-content: space-between;\n",
1285
+ " gap: 0.5em;\n",
1286
+ "}\n",
1287
+ "\n",
1288
+ "#sk-container-id-1 label.sk-toggleable__label .caption {\n",
1289
+ " font-size: 0.6rem;\n",
1290
+ " font-weight: lighter;\n",
1291
+ " color: var(--sklearn-color-text-muted);\n",
1292
+ "}\n",
1293
+ "\n",
1294
+ "#sk-container-id-1 label.sk-toggleable__label-arrow:before {\n",
1295
+ " /* Arrow on the left of the label */\n",
1296
+ " content: \"▸\";\n",
1297
+ " float: left;\n",
1298
+ " margin-right: 0.25em;\n",
1299
+ " color: var(--sklearn-color-icon);\n",
1300
+ "}\n",
1301
+ "\n",
1302
+ "#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {\n",
1303
+ " color: var(--sklearn-color-text);\n",
1304
+ "}\n",
1305
+ "\n",
1306
+ "/* Toggleable content - dropdown */\n",
1307
+ "\n",
1308
+ "#sk-container-id-1 div.sk-toggleable__content {\n",
1309
+ " max-height: 0;\n",
1310
+ " max-width: 0;\n",
1311
+ " overflow: hidden;\n",
1312
+ " text-align: left;\n",
1313
+ " /* unfitted */\n",
1314
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1315
+ "}\n",
1316
+ "\n",
1317
+ "#sk-container-id-1 div.sk-toggleable__content.fitted {\n",
1318
+ " /* fitted */\n",
1319
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1320
+ "}\n",
1321
+ "\n",
1322
+ "#sk-container-id-1 div.sk-toggleable__content pre {\n",
1323
+ " margin: 0.2em;\n",
1324
+ " border-radius: 0.25em;\n",
1325
+ " color: var(--sklearn-color-text);\n",
1326
+ " /* unfitted */\n",
1327
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1328
+ "}\n",
1329
+ "\n",
1330
+ "#sk-container-id-1 div.sk-toggleable__content.fitted pre {\n",
1331
+ " /* unfitted */\n",
1332
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1333
+ "}\n",
1334
+ "\n",
1335
+ "#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
1336
+ " /* Expand drop-down */\n",
1337
+ " max-height: 200px;\n",
1338
+ " max-width: 100%;\n",
1339
+ " overflow: auto;\n",
1340
+ "}\n",
1341
+ "\n",
1342
+ "#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
1343
+ " content: \"▾\";\n",
1344
+ "}\n",
1345
+ "\n",
1346
+ "/* Pipeline/ColumnTransformer-specific style */\n",
1347
+ "\n",
1348
+ "#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1349
+ " color: var(--sklearn-color-text);\n",
1350
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1351
+ "}\n",
1352
+ "\n",
1353
+ "#sk-container-id-1 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1354
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1355
+ "}\n",
1356
+ "\n",
1357
+ "/* Estimator-specific style */\n",
1358
+ "\n",
1359
+ "/* Colorize estimator box */\n",
1360
+ "#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1361
+ " /* unfitted */\n",
1362
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1363
+ "}\n",
1364
+ "\n",
1365
+ "#sk-container-id-1 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1366
+ " /* fitted */\n",
1367
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1368
+ "}\n",
1369
+ "\n",
1370
+ "#sk-container-id-1 div.sk-label label.sk-toggleable__label,\n",
1371
+ "#sk-container-id-1 div.sk-label label {\n",
1372
+ " /* The background is the default theme color */\n",
1373
+ " color: var(--sklearn-color-text-on-default-background);\n",
1374
+ "}\n",
1375
+ "\n",
1376
+ "/* On hover, darken the color of the background */\n",
1377
+ "#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {\n",
1378
+ " color: var(--sklearn-color-text);\n",
1379
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1380
+ "}\n",
1381
+ "\n",
1382
+ "/* Label box, darken color on hover, fitted */\n",
1383
+ "#sk-container-id-1 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
1384
+ " color: var(--sklearn-color-text);\n",
1385
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1386
+ "}\n",
1387
+ "\n",
1388
+ "/* Estimator label */\n",
1389
+ "\n",
1390
+ "#sk-container-id-1 div.sk-label label {\n",
1391
+ " font-family: monospace;\n",
1392
+ " font-weight: bold;\n",
1393
+ " display: inline-block;\n",
1394
+ " line-height: 1.2em;\n",
1395
+ "}\n",
1396
+ "\n",
1397
+ "#sk-container-id-1 div.sk-label-container {\n",
1398
+ " text-align: center;\n",
1399
+ "}\n",
1400
+ "\n",
1401
+ "/* Estimator-specific */\n",
1402
+ "#sk-container-id-1 div.sk-estimator {\n",
1403
+ " font-family: monospace;\n",
1404
+ " border: 1px dotted var(--sklearn-color-border-box);\n",
1405
+ " border-radius: 0.25em;\n",
1406
+ " box-sizing: border-box;\n",
1407
+ " margin-bottom: 0.5em;\n",
1408
+ " /* unfitted */\n",
1409
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1410
+ "}\n",
1411
+ "\n",
1412
+ "#sk-container-id-1 div.sk-estimator.fitted {\n",
1413
+ " /* fitted */\n",
1414
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1415
+ "}\n",
1416
+ "\n",
1417
+ "/* on hover */\n",
1418
+ "#sk-container-id-1 div.sk-estimator:hover {\n",
1419
+ " /* unfitted */\n",
1420
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1421
+ "}\n",
1422
+ "\n",
1423
+ "#sk-container-id-1 div.sk-estimator.fitted:hover {\n",
1424
+ " /* fitted */\n",
1425
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1426
+ "}\n",
1427
+ "\n",
1428
+ "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
1429
+ "\n",
1430
+ "/* Common style for \"i\" and \"?\" */\n",
1431
+ "\n",
1432
+ ".sk-estimator-doc-link,\n",
1433
+ "a:link.sk-estimator-doc-link,\n",
1434
+ "a:visited.sk-estimator-doc-link {\n",
1435
+ " float: right;\n",
1436
+ " font-size: smaller;\n",
1437
+ " line-height: 1em;\n",
1438
+ " font-family: monospace;\n",
1439
+ " background-color: var(--sklearn-color-background);\n",
1440
+ " border-radius: 1em;\n",
1441
+ " height: 1em;\n",
1442
+ " width: 1em;\n",
1443
+ " text-decoration: none !important;\n",
1444
+ " margin-left: 0.5em;\n",
1445
+ " text-align: center;\n",
1446
+ " /* unfitted */\n",
1447
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1448
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1449
+ "}\n",
1450
+ "\n",
1451
+ ".sk-estimator-doc-link.fitted,\n",
1452
+ "a:link.sk-estimator-doc-link.fitted,\n",
1453
+ "a:visited.sk-estimator-doc-link.fitted {\n",
1454
+ " /* fitted */\n",
1455
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1456
+ " color: var(--sklearn-color-fitted-level-1);\n",
1457
+ "}\n",
1458
+ "\n",
1459
+ "/* On hover */\n",
1460
+ "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
1461
+ ".sk-estimator-doc-link:hover,\n",
1462
+ "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
1463
+ ".sk-estimator-doc-link:hover {\n",
1464
+ " /* unfitted */\n",
1465
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1466
+ " color: var(--sklearn-color-background);\n",
1467
+ " text-decoration: none;\n",
1468
+ "}\n",
1469
+ "\n",
1470
+ "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
1471
+ ".sk-estimator-doc-link.fitted:hover,\n",
1472
+ "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
1473
+ ".sk-estimator-doc-link.fitted:hover {\n",
1474
+ " /* fitted */\n",
1475
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1476
+ " color: var(--sklearn-color-background);\n",
1477
+ " text-decoration: none;\n",
1478
+ "}\n",
1479
+ "\n",
1480
+ "/* Span, style for the box shown on hovering the info icon */\n",
1481
+ ".sk-estimator-doc-link span {\n",
1482
+ " display: none;\n",
1483
+ " z-index: 9999;\n",
1484
+ " position: relative;\n",
1485
+ " font-weight: normal;\n",
1486
+ " right: .2ex;\n",
1487
+ " padding: .5ex;\n",
1488
+ " margin: .5ex;\n",
1489
+ " width: min-content;\n",
1490
+ " min-width: 20ex;\n",
1491
+ " max-width: 50ex;\n",
1492
+ " color: var(--sklearn-color-text);\n",
1493
+ " box-shadow: 2pt 2pt 4pt #999;\n",
1494
+ " /* unfitted */\n",
1495
+ " background: var(--sklearn-color-unfitted-level-0);\n",
1496
+ " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
1497
+ "}\n",
1498
+ "\n",
1499
+ ".sk-estimator-doc-link.fitted span {\n",
1500
+ " /* fitted */\n",
1501
+ " background: var(--sklearn-color-fitted-level-0);\n",
1502
+ " border: var(--sklearn-color-fitted-level-3);\n",
1503
+ "}\n",
1504
+ "\n",
1505
+ ".sk-estimator-doc-link:hover span {\n",
1506
+ " display: block;\n",
1507
+ "}\n",
1508
+ "\n",
1509
+ "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
1510
+ "\n",
1511
+ "#sk-container-id-1 a.estimator_doc_link {\n",
1512
+ " float: right;\n",
1513
+ " font-size: 1rem;\n",
1514
+ " line-height: 1em;\n",
1515
+ " font-family: monospace;\n",
1516
+ " background-color: var(--sklearn-color-background);\n",
1517
+ " border-radius: 1rem;\n",
1518
+ " height: 1rem;\n",
1519
+ " width: 1rem;\n",
1520
+ " text-decoration: none;\n",
1521
+ " /* unfitted */\n",
1522
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1523
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1524
+ "}\n",
1525
+ "\n",
1526
+ "#sk-container-id-1 a.estimator_doc_link.fitted {\n",
1527
+ " /* fitted */\n",
1528
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1529
+ " color: var(--sklearn-color-fitted-level-1);\n",
1530
+ "}\n",
1531
+ "\n",
1532
+ "/* On hover */\n",
1533
+ "#sk-container-id-1 a.estimator_doc_link:hover {\n",
1534
+ " /* unfitted */\n",
1535
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1536
+ " color: var(--sklearn-color-background);\n",
1537
+ " text-decoration: none;\n",
1538
+ "}\n",
1539
+ "\n",
1540
+ "#sk-container-id-1 a.estimator_doc_link.fitted:hover {\n",
1541
+ " /* fitted */\n",
1542
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1543
+ "}\n",
1544
+ "</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>StandardScaler()</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-1\" type=\"checkbox\" checked><label for=\"sk-estimator-id-1\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>StandardScaler</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.StandardScaler.html\">?<span>Documentation for StandardScaler</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>StandardScaler()</pre></div> </div></div></div></div>"
1545
+ ],
1546
+ "text/plain": [
1547
+ "StandardScaler()"
1548
+ ]
1549
+ },
1550
+ "execution_count": 18,
1551
+ "metadata": {},
1552
+ "output_type": "execute_result"
1553
+ }
1554
+ ],
1555
+ "source": [
1556
+ "scaler.fit(X_train)"
1557
+ ]
1558
+ },
1559
+ {
1560
+ "cell_type": "code",
1561
+ "execution_count": 19,
1562
+ "metadata": {
1563
+ "id": "jgf_TwMZDQ7h"
1564
+ },
1565
+ "outputs": [],
1566
+ "source": [
1567
+ "X_train = scaler.transform(X_train)\n",
1568
+ "\n",
1569
+ "X_test = scaler.transform(X_test)"
1570
+ ]
1571
+ },
1572
+ {
1573
+ "cell_type": "code",
1574
+ "execution_count": 20,
1575
+ "metadata": {
1576
+ "colab": {
1577
+ "base_uri": "https://localhost:8080/"
1578
+ },
1579
+ "id": "jKXa_WOQDY-H",
1580
+ "outputId": "8fdee8da-a5ee-4d97-977f-c105fc0317e1"
1581
+ },
1582
+ "outputs": [
1583
+ {
1584
+ "name": "stdout",
1585
+ "output_type": "stream",
1586
+ "text": [
1587
+ "[[ 0.63239631 -0.02731081 -0.87985049 ... -0.97586547 -0.55160318\n",
1588
+ " 0.07769494]\n",
1589
+ " [-1.05512719 -0.83337041 -0.9284778 ... 0.3981808 -0.61014073\n",
1590
+ " 0.39291782]\n",
1591
+ " [ 0.02996187 -0.29531068 -1.12211107 ... -0.43937044 -0.62849605\n",
1592
+ " -0.50948408]\n",
1593
+ " ...\n",
1594
+ " [-0.9096785 -0.6637302 -0.160638 ... 1.22001022 -0.47404629\n",
1595
+ " -0.2159482 ]\n",
1596
+ " [-0.35977689 0.19731822 -0.79063679 ... -0.17896029 -0.47272835\n",
1597
+ " 0.28181221]\n",
1598
+ " [ 1.01957066 0.19922317 -0.61914972 ... -0.716232 1.23632066\n",
1599
+ " -0.05829386]]\n"
1600
+ ]
1601
+ }
1602
+ ],
1603
+ "source": [
1604
+ "print(X_train)"
1605
+ ]
1606
+ },
1607
+ {
1608
+ "cell_type": "code",
1609
+ "execution_count": 21,
1610
+ "metadata": {
1611
+ "id": "sCzBNIdwDZtw"
1612
+ },
1613
+ "outputs": [],
1614
+ "source": [
1615
+ "model = svm.SVC(kernel='linear')"
1616
+ ]
1617
+ },
1618
+ {
1619
+ "cell_type": "code",
1620
+ "execution_count": 22,
1621
+ "metadata": {
1622
+ "colab": {
1623
+ "base_uri": "https://localhost:8080/",
1624
+ "height": 80
1625
+ },
1626
+ "id": "brj2FIVzDdZJ",
1627
+ "outputId": "a9ba278c-7c3b-4b0f-f1c3-17764fbcad24"
1628
+ },
1629
+ "outputs": [
1630
+ {
1631
+ "data": {
1632
+ "text/html": [
1633
+ "<style>#sk-container-id-2 {\n",
1634
+ " /* Definition of color scheme common for light and dark mode */\n",
1635
+ " --sklearn-color-text: #000;\n",
1636
+ " --sklearn-color-text-muted: #666;\n",
1637
+ " --sklearn-color-line: gray;\n",
1638
+ " /* Definition of color scheme for unfitted estimators */\n",
1639
+ " --sklearn-color-unfitted-level-0: #fff5e6;\n",
1640
+ " --sklearn-color-unfitted-level-1: #f6e4d2;\n",
1641
+ " --sklearn-color-unfitted-level-2: #ffe0b3;\n",
1642
+ " --sklearn-color-unfitted-level-3: chocolate;\n",
1643
+ " /* Definition of color scheme for fitted estimators */\n",
1644
+ " --sklearn-color-fitted-level-0: #f0f8ff;\n",
1645
+ " --sklearn-color-fitted-level-1: #d4ebff;\n",
1646
+ " --sklearn-color-fitted-level-2: #b3dbfd;\n",
1647
+ " --sklearn-color-fitted-level-3: cornflowerblue;\n",
1648
+ "\n",
1649
+ " /* Specific color for light theme */\n",
1650
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
1651
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, white)));\n",
1652
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, black)));\n",
1653
+ " --sklearn-color-icon: #696969;\n",
1654
+ "\n",
1655
+ " @media (prefers-color-scheme: dark) {\n",
1656
+ " /* Redefinition of color scheme for dark theme */\n",
1657
+ " --sklearn-color-text-on-default-background: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
1658
+ " --sklearn-color-background: var(--sg-background-color, var(--theme-background, var(--jp-layout-color0, #111)));\n",
1659
+ " --sklearn-color-border-box: var(--sg-text-color, var(--theme-code-foreground, var(--jp-content-font-color1, white)));\n",
1660
+ " --sklearn-color-icon: #878787;\n",
1661
+ " }\n",
1662
+ "}\n",
1663
+ "\n",
1664
+ "#sk-container-id-2 {\n",
1665
+ " color: var(--sklearn-color-text);\n",
1666
+ "}\n",
1667
+ "\n",
1668
+ "#sk-container-id-2 pre {\n",
1669
+ " padding: 0;\n",
1670
+ "}\n",
1671
+ "\n",
1672
+ "#sk-container-id-2 input.sk-hidden--visually {\n",
1673
+ " border: 0;\n",
1674
+ " clip: rect(1px 1px 1px 1px);\n",
1675
+ " clip: rect(1px, 1px, 1px, 1px);\n",
1676
+ " height: 1px;\n",
1677
+ " margin: -1px;\n",
1678
+ " overflow: hidden;\n",
1679
+ " padding: 0;\n",
1680
+ " position: absolute;\n",
1681
+ " width: 1px;\n",
1682
+ "}\n",
1683
+ "\n",
1684
+ "#sk-container-id-2 div.sk-dashed-wrapped {\n",
1685
+ " border: 1px dashed var(--sklearn-color-line);\n",
1686
+ " margin: 0 0.4em 0.5em 0.4em;\n",
1687
+ " box-sizing: border-box;\n",
1688
+ " padding-bottom: 0.4em;\n",
1689
+ " background-color: var(--sklearn-color-background);\n",
1690
+ "}\n",
1691
+ "\n",
1692
+ "#sk-container-id-2 div.sk-container {\n",
1693
+ " /* jupyter's `normalize.less` sets `[hidden] { display: none; }`\n",
1694
+ " but bootstrap.min.css set `[hidden] { display: none !important; }`\n",
1695
+ " so we also need the `!important` here to be able to override the\n",
1696
+ " default hidden behavior on the sphinx rendered scikit-learn.org.\n",
1697
+ " See: https://github.com/scikit-learn/scikit-learn/issues/21755 */\n",
1698
+ " display: inline-block !important;\n",
1699
+ " position: relative;\n",
1700
+ "}\n",
1701
+ "\n",
1702
+ "#sk-container-id-2 div.sk-text-repr-fallback {\n",
1703
+ " display: none;\n",
1704
+ "}\n",
1705
+ "\n",
1706
+ "div.sk-parallel-item,\n",
1707
+ "div.sk-serial,\n",
1708
+ "div.sk-item {\n",
1709
+ " /* draw centered vertical line to link estimators */\n",
1710
+ " background-image: linear-gradient(var(--sklearn-color-text-on-default-background), var(--sklearn-color-text-on-default-background));\n",
1711
+ " background-size: 2px 100%;\n",
1712
+ " background-repeat: no-repeat;\n",
1713
+ " background-position: center center;\n",
1714
+ "}\n",
1715
+ "\n",
1716
+ "/* Parallel-specific style estimator block */\n",
1717
+ "\n",
1718
+ "#sk-container-id-2 div.sk-parallel-item::after {\n",
1719
+ " content: \"\";\n",
1720
+ " width: 100%;\n",
1721
+ " border-bottom: 2px solid var(--sklearn-color-text-on-default-background);\n",
1722
+ " flex-grow: 1;\n",
1723
+ "}\n",
1724
+ "\n",
1725
+ "#sk-container-id-2 div.sk-parallel {\n",
1726
+ " display: flex;\n",
1727
+ " align-items: stretch;\n",
1728
+ " justify-content: center;\n",
1729
+ " background-color: var(--sklearn-color-background);\n",
1730
+ " position: relative;\n",
1731
+ "}\n",
1732
+ "\n",
1733
+ "#sk-container-id-2 div.sk-parallel-item {\n",
1734
+ " display: flex;\n",
1735
+ " flex-direction: column;\n",
1736
+ "}\n",
1737
+ "\n",
1738
+ "#sk-container-id-2 div.sk-parallel-item:first-child::after {\n",
1739
+ " align-self: flex-end;\n",
1740
+ " width: 50%;\n",
1741
+ "}\n",
1742
+ "\n",
1743
+ "#sk-container-id-2 div.sk-parallel-item:last-child::after {\n",
1744
+ " align-self: flex-start;\n",
1745
+ " width: 50%;\n",
1746
+ "}\n",
1747
+ "\n",
1748
+ "#sk-container-id-2 div.sk-parallel-item:only-child::after {\n",
1749
+ " width: 0;\n",
1750
+ "}\n",
1751
+ "\n",
1752
+ "/* Serial-specific style estimator block */\n",
1753
+ "\n",
1754
+ "#sk-container-id-2 div.sk-serial {\n",
1755
+ " display: flex;\n",
1756
+ " flex-direction: column;\n",
1757
+ " align-items: center;\n",
1758
+ " background-color: var(--sklearn-color-background);\n",
1759
+ " padding-right: 1em;\n",
1760
+ " padding-left: 1em;\n",
1761
+ "}\n",
1762
+ "\n",
1763
+ "\n",
1764
+ "/* Toggleable style: style used for estimator/Pipeline/ColumnTransformer box that is\n",
1765
+ "clickable and can be expanded/collapsed.\n",
1766
+ "- Pipeline and ColumnTransformer use this feature and define the default style\n",
1767
+ "- Estimators will overwrite some part of the style using the `sk-estimator` class\n",
1768
+ "*/\n",
1769
+ "\n",
1770
+ "/* Pipeline and ColumnTransformer style (default) */\n",
1771
+ "\n",
1772
+ "#sk-container-id-2 div.sk-toggleable {\n",
1773
+ " /* Default theme specific background. It is overwritten whether we have a\n",
1774
+ " specific estimator or a Pipeline/ColumnTransformer */\n",
1775
+ " background-color: var(--sklearn-color-background);\n",
1776
+ "}\n",
1777
+ "\n",
1778
+ "/* Toggleable label */\n",
1779
+ "#sk-container-id-2 label.sk-toggleable__label {\n",
1780
+ " cursor: pointer;\n",
1781
+ " display: flex;\n",
1782
+ " width: 100%;\n",
1783
+ " margin-bottom: 0;\n",
1784
+ " padding: 0.5em;\n",
1785
+ " box-sizing: border-box;\n",
1786
+ " text-align: center;\n",
1787
+ " align-items: start;\n",
1788
+ " justify-content: space-between;\n",
1789
+ " gap: 0.5em;\n",
1790
+ "}\n",
1791
+ "\n",
1792
+ "#sk-container-id-2 label.sk-toggleable__label .caption {\n",
1793
+ " font-size: 0.6rem;\n",
1794
+ " font-weight: lighter;\n",
1795
+ " color: var(--sklearn-color-text-muted);\n",
1796
+ "}\n",
1797
+ "\n",
1798
+ "#sk-container-id-2 label.sk-toggleable__label-arrow:before {\n",
1799
+ " /* Arrow on the left of the label */\n",
1800
+ " content: \"▸\";\n",
1801
+ " float: left;\n",
1802
+ " margin-right: 0.25em;\n",
1803
+ " color: var(--sklearn-color-icon);\n",
1804
+ "}\n",
1805
+ "\n",
1806
+ "#sk-container-id-2 label.sk-toggleable__label-arrow:hover:before {\n",
1807
+ " color: var(--sklearn-color-text);\n",
1808
+ "}\n",
1809
+ "\n",
1810
+ "/* Toggleable content - dropdown */\n",
1811
+ "\n",
1812
+ "#sk-container-id-2 div.sk-toggleable__content {\n",
1813
+ " max-height: 0;\n",
1814
+ " max-width: 0;\n",
1815
+ " overflow: hidden;\n",
1816
+ " text-align: left;\n",
1817
+ " /* unfitted */\n",
1818
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1819
+ "}\n",
1820
+ "\n",
1821
+ "#sk-container-id-2 div.sk-toggleable__content.fitted {\n",
1822
+ " /* fitted */\n",
1823
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1824
+ "}\n",
1825
+ "\n",
1826
+ "#sk-container-id-2 div.sk-toggleable__content pre {\n",
1827
+ " margin: 0.2em;\n",
1828
+ " border-radius: 0.25em;\n",
1829
+ " color: var(--sklearn-color-text);\n",
1830
+ " /* unfitted */\n",
1831
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1832
+ "}\n",
1833
+ "\n",
1834
+ "#sk-container-id-2 div.sk-toggleable__content.fitted pre {\n",
1835
+ " /* unfitted */\n",
1836
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1837
+ "}\n",
1838
+ "\n",
1839
+ "#sk-container-id-2 input.sk-toggleable__control:checked~div.sk-toggleable__content {\n",
1840
+ " /* Expand drop-down */\n",
1841
+ " max-height: 200px;\n",
1842
+ " max-width: 100%;\n",
1843
+ " overflow: auto;\n",
1844
+ "}\n",
1845
+ "\n",
1846
+ "#sk-container-id-2 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {\n",
1847
+ " content: \"▾\";\n",
1848
+ "}\n",
1849
+ "\n",
1850
+ "/* Pipeline/ColumnTransformer-specific style */\n",
1851
+ "\n",
1852
+ "#sk-container-id-2 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1853
+ " color: var(--sklearn-color-text);\n",
1854
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1855
+ "}\n",
1856
+ "\n",
1857
+ "#sk-container-id-2 div.sk-label.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1858
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1859
+ "}\n",
1860
+ "\n",
1861
+ "/* Estimator-specific style */\n",
1862
+ "\n",
1863
+ "/* Colorize estimator box */\n",
1864
+ "#sk-container-id-2 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1865
+ " /* unfitted */\n",
1866
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1867
+ "}\n",
1868
+ "\n",
1869
+ "#sk-container-id-2 div.sk-estimator.fitted input.sk-toggleable__control:checked~label.sk-toggleable__label {\n",
1870
+ " /* fitted */\n",
1871
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1872
+ "}\n",
1873
+ "\n",
1874
+ "#sk-container-id-2 div.sk-label label.sk-toggleable__label,\n",
1875
+ "#sk-container-id-2 div.sk-label label {\n",
1876
+ " /* The background is the default theme color */\n",
1877
+ " color: var(--sklearn-color-text-on-default-background);\n",
1878
+ "}\n",
1879
+ "\n",
1880
+ "/* On hover, darken the color of the background */\n",
1881
+ "#sk-container-id-2 div.sk-label:hover label.sk-toggleable__label {\n",
1882
+ " color: var(--sklearn-color-text);\n",
1883
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1884
+ "}\n",
1885
+ "\n",
1886
+ "/* Label box, darken color on hover, fitted */\n",
1887
+ "#sk-container-id-2 div.sk-label.fitted:hover label.sk-toggleable__label.fitted {\n",
1888
+ " color: var(--sklearn-color-text);\n",
1889
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1890
+ "}\n",
1891
+ "\n",
1892
+ "/* Estimator label */\n",
1893
+ "\n",
1894
+ "#sk-container-id-2 div.sk-label label {\n",
1895
+ " font-family: monospace;\n",
1896
+ " font-weight: bold;\n",
1897
+ " display: inline-block;\n",
1898
+ " line-height: 1.2em;\n",
1899
+ "}\n",
1900
+ "\n",
1901
+ "#sk-container-id-2 div.sk-label-container {\n",
1902
+ " text-align: center;\n",
1903
+ "}\n",
1904
+ "\n",
1905
+ "/* Estimator-specific */\n",
1906
+ "#sk-container-id-2 div.sk-estimator {\n",
1907
+ " font-family: monospace;\n",
1908
+ " border: 1px dotted var(--sklearn-color-border-box);\n",
1909
+ " border-radius: 0.25em;\n",
1910
+ " box-sizing: border-box;\n",
1911
+ " margin-bottom: 0.5em;\n",
1912
+ " /* unfitted */\n",
1913
+ " background-color: var(--sklearn-color-unfitted-level-0);\n",
1914
+ "}\n",
1915
+ "\n",
1916
+ "#sk-container-id-2 div.sk-estimator.fitted {\n",
1917
+ " /* fitted */\n",
1918
+ " background-color: var(--sklearn-color-fitted-level-0);\n",
1919
+ "}\n",
1920
+ "\n",
1921
+ "/* on hover */\n",
1922
+ "#sk-container-id-2 div.sk-estimator:hover {\n",
1923
+ " /* unfitted */\n",
1924
+ " background-color: var(--sklearn-color-unfitted-level-2);\n",
1925
+ "}\n",
1926
+ "\n",
1927
+ "#sk-container-id-2 div.sk-estimator.fitted:hover {\n",
1928
+ " /* fitted */\n",
1929
+ " background-color: var(--sklearn-color-fitted-level-2);\n",
1930
+ "}\n",
1931
+ "\n",
1932
+ "/* Specification for estimator info (e.g. \"i\" and \"?\") */\n",
1933
+ "\n",
1934
+ "/* Common style for \"i\" and \"?\" */\n",
1935
+ "\n",
1936
+ ".sk-estimator-doc-link,\n",
1937
+ "a:link.sk-estimator-doc-link,\n",
1938
+ "a:visited.sk-estimator-doc-link {\n",
1939
+ " float: right;\n",
1940
+ " font-size: smaller;\n",
1941
+ " line-height: 1em;\n",
1942
+ " font-family: monospace;\n",
1943
+ " background-color: var(--sklearn-color-background);\n",
1944
+ " border-radius: 1em;\n",
1945
+ " height: 1em;\n",
1946
+ " width: 1em;\n",
1947
+ " text-decoration: none !important;\n",
1948
+ " margin-left: 0.5em;\n",
1949
+ " text-align: center;\n",
1950
+ " /* unfitted */\n",
1951
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
1952
+ " color: var(--sklearn-color-unfitted-level-1);\n",
1953
+ "}\n",
1954
+ "\n",
1955
+ ".sk-estimator-doc-link.fitted,\n",
1956
+ "a:link.sk-estimator-doc-link.fitted,\n",
1957
+ "a:visited.sk-estimator-doc-link.fitted {\n",
1958
+ " /* fitted */\n",
1959
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
1960
+ " color: var(--sklearn-color-fitted-level-1);\n",
1961
+ "}\n",
1962
+ "\n",
1963
+ "/* On hover */\n",
1964
+ "div.sk-estimator:hover .sk-estimator-doc-link:hover,\n",
1965
+ ".sk-estimator-doc-link:hover,\n",
1966
+ "div.sk-label-container:hover .sk-estimator-doc-link:hover,\n",
1967
+ ".sk-estimator-doc-link:hover {\n",
1968
+ " /* unfitted */\n",
1969
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
1970
+ " color: var(--sklearn-color-background);\n",
1971
+ " text-decoration: none;\n",
1972
+ "}\n",
1973
+ "\n",
1974
+ "div.sk-estimator.fitted:hover .sk-estimator-doc-link.fitted:hover,\n",
1975
+ ".sk-estimator-doc-link.fitted:hover,\n",
1976
+ "div.sk-label-container:hover .sk-estimator-doc-link.fitted:hover,\n",
1977
+ ".sk-estimator-doc-link.fitted:hover {\n",
1978
+ " /* fitted */\n",
1979
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
1980
+ " color: var(--sklearn-color-background);\n",
1981
+ " text-decoration: none;\n",
1982
+ "}\n",
1983
+ "\n",
1984
+ "/* Span, style for the box shown on hovering the info icon */\n",
1985
+ ".sk-estimator-doc-link span {\n",
1986
+ " display: none;\n",
1987
+ " z-index: 9999;\n",
1988
+ " position: relative;\n",
1989
+ " font-weight: normal;\n",
1990
+ " right: .2ex;\n",
1991
+ " padding: .5ex;\n",
1992
+ " margin: .5ex;\n",
1993
+ " width: min-content;\n",
1994
+ " min-width: 20ex;\n",
1995
+ " max-width: 50ex;\n",
1996
+ " color: var(--sklearn-color-text);\n",
1997
+ " box-shadow: 2pt 2pt 4pt #999;\n",
1998
+ " /* unfitted */\n",
1999
+ " background: var(--sklearn-color-unfitted-level-0);\n",
2000
+ " border: .5pt solid var(--sklearn-color-unfitted-level-3);\n",
2001
+ "}\n",
2002
+ "\n",
2003
+ ".sk-estimator-doc-link.fitted span {\n",
2004
+ " /* fitted */\n",
2005
+ " background: var(--sklearn-color-fitted-level-0);\n",
2006
+ " border: var(--sklearn-color-fitted-level-3);\n",
2007
+ "}\n",
2008
+ "\n",
2009
+ ".sk-estimator-doc-link:hover span {\n",
2010
+ " display: block;\n",
2011
+ "}\n",
2012
+ "\n",
2013
+ "/* \"?\"-specific style due to the `<a>` HTML tag */\n",
2014
+ "\n",
2015
+ "#sk-container-id-2 a.estimator_doc_link {\n",
2016
+ " float: right;\n",
2017
+ " font-size: 1rem;\n",
2018
+ " line-height: 1em;\n",
2019
+ " font-family: monospace;\n",
2020
+ " background-color: var(--sklearn-color-background);\n",
2021
+ " border-radius: 1rem;\n",
2022
+ " height: 1rem;\n",
2023
+ " width: 1rem;\n",
2024
+ " text-decoration: none;\n",
2025
+ " /* unfitted */\n",
2026
+ " color: var(--sklearn-color-unfitted-level-1);\n",
2027
+ " border: var(--sklearn-color-unfitted-level-1) 1pt solid;\n",
2028
+ "}\n",
2029
+ "\n",
2030
+ "#sk-container-id-2 a.estimator_doc_link.fitted {\n",
2031
+ " /* fitted */\n",
2032
+ " border: var(--sklearn-color-fitted-level-1) 1pt solid;\n",
2033
+ " color: var(--sklearn-color-fitted-level-1);\n",
2034
+ "}\n",
2035
+ "\n",
2036
+ "/* On hover */\n",
2037
+ "#sk-container-id-2 a.estimator_doc_link:hover {\n",
2038
+ " /* unfitted */\n",
2039
+ " background-color: var(--sklearn-color-unfitted-level-3);\n",
2040
+ " color: var(--sklearn-color-background);\n",
2041
+ " text-decoration: none;\n",
2042
+ "}\n",
2043
+ "\n",
2044
+ "#sk-container-id-2 a.estimator_doc_link.fitted:hover {\n",
2045
+ " /* fitted */\n",
2046
+ " background-color: var(--sklearn-color-fitted-level-3);\n",
2047
+ "}\n",
2048
+ "</style><div id=\"sk-container-id-2\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>SVC(kernel=&#x27;linear&#x27;)</pre><b>In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook. <br />On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.</b></div><div class=\"sk-container\" hidden><div class=\"sk-item\"><div class=\"sk-estimator fitted sk-toggleable\"><input class=\"sk-toggleable__control sk-hidden--visually\" id=\"sk-estimator-id-2\" type=\"checkbox\" checked><label for=\"sk-estimator-id-2\" class=\"sk-toggleable__label fitted sk-toggleable__label-arrow\"><div><div>SVC</div></div><div><a class=\"sk-estimator-doc-link fitted\" rel=\"noreferrer\" target=\"_blank\" href=\"https://scikit-learn.org/1.6/modules/generated/sklearn.svm.SVC.html\">?<span>Documentation for SVC</span></a><span class=\"sk-estimator-doc-link fitted\">i<span>Fitted</span></span></div></label><div class=\"sk-toggleable__content fitted\"><pre>SVC(kernel=&#x27;linear&#x27;)</pre></div> </div></div></div></div>"
2049
+ ],
2050
+ "text/plain": [
2051
+ "SVC(kernel='linear')"
2052
+ ]
2053
+ },
2054
+ "execution_count": 22,
2055
+ "metadata": {},
2056
+ "output_type": "execute_result"
2057
+ }
2058
+ ],
2059
+ "source": [
2060
+ "# training the SVM model with training data\n",
2061
+ "model.fit(X_train, Y_train)"
2062
+ ]
2063
+ },
2064
+ {
2065
+ "cell_type": "code",
2066
+ "execution_count": 23,
2067
+ "metadata": {
2068
+ "id": "FYBymKgnDfTj"
2069
+ },
2070
+ "outputs": [],
2071
+ "source": [
2072
+ "# accuracy score on training data\n",
2073
+ "X_train_prediction = model.predict(X_train)\n",
2074
+ "training_data_accuracy = accuracy_score(Y_train, X_train_prediction)"
2075
+ ]
2076
+ },
2077
+ {
2078
+ "cell_type": "code",
2079
+ "execution_count": 24,
2080
+ "metadata": {
2081
+ "colab": {
2082
+ "base_uri": "https://localhost:8080/"
2083
+ },
2084
+ "id": "WK7YFb4GDie_",
2085
+ "outputId": "43982832-4571-46ca-9f65-7b7c42f22b11"
2086
+ },
2087
+ "outputs": [
2088
+ {
2089
+ "name": "stdout",
2090
+ "output_type": "stream",
2091
+ "text": [
2092
+ "Accuracy score of training data : 0.8846153846153846\n"
2093
+ ]
2094
+ }
2095
+ ],
2096
+ "source": [
2097
+ "print('Accuracy score of training data : ', training_data_accuracy)"
2098
+ ]
2099
+ },
2100
+ {
2101
+ "cell_type": "code",
2102
+ "execution_count": 25,
2103
+ "metadata": {
2104
+ "id": "uXgqWEeLDklu"
2105
+ },
2106
+ "outputs": [],
2107
+ "source": [
2108
+ "# accuracy score on training data\n",
2109
+ "X_test_prediction = model.predict(X_test)\n",
2110
+ "test_data_accuracy = accuracy_score(Y_test, X_test_prediction)"
2111
+ ]
2112
+ },
2113
+ {
2114
+ "cell_type": "code",
2115
+ "execution_count": 26,
2116
+ "metadata": {
2117
+ "colab": {
2118
+ "base_uri": "https://localhost:8080/"
2119
+ },
2120
+ "id": "qwFl99cmDnlP",
2121
+ "outputId": "f78b264f-4c81-401b-acfa-39b138cee335"
2122
+ },
2123
+ "outputs": [
2124
+ {
2125
+ "name": "stdout",
2126
+ "output_type": "stream",
2127
+ "text": [
2128
+ "Accuracy score of test data : 0.8717948717948718\n"
2129
+ ]
2130
+ }
2131
+ ],
2132
+ "source": [
2133
+ "print('Accuracy score of test data : ', test_data_accuracy)"
2134
+ ]
2135
+ },
2136
+ {
2137
+ "cell_type": "code",
2138
+ "execution_count": 27,
2139
+ "metadata": {
2140
+ "colab": {
2141
+ "base_uri": "https://localhost:8080/"
2142
+ },
2143
+ "id": "ViU7t481DyRC",
2144
+ "outputId": "62abc1e1-f13b-4e1c-cbe3-17712313d5fb"
2145
+ },
2146
+ "outputs": [
2147
+ {
2148
+ "name": "stdout",
2149
+ "output_type": "stream",
2150
+ "text": [
2151
+ "[0]\n",
2152
+ "The Person does not have Parkinsons Disease\n"
2153
+ ]
2154
+ },
2155
+ {
2156
+ "name": "stderr",
2157
+ "output_type": "stream",
2158
+ "text": [
2159
+ "c:\\Users\\HP\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\\sklearn\\utils\\validation.py:2739: UserWarning: X does not have valid feature names, but StandardScaler was fitted with feature names\n",
2160
+ " warnings.warn(\n"
2161
+ ]
2162
+ }
2163
+ ],
2164
+ "source": [
2165
+ "input_data = (197.07600,206.89600,192.05500,0.00289,0.00001,0.00166,0.00168,0.00498,0.01098,0.09700,0.00563,0.00680,0.00802,0.01689,0.00339,26.77500,0.422229,0.741367,-7.348300,0.177551,1.743867,0.085569)\n",
2166
+ "\n",
2167
+ "# changing input data to a numpy array\n",
2168
+ "input_data_as_numpy_array = np.asarray(input_data)\n",
2169
+ "\n",
2170
+ "# reshape the numpy array\n",
2171
+ "input_data_reshaped = input_data_as_numpy_array.reshape(1,-1)\n",
2172
+ "\n",
2173
+ "# standardize the data\n",
2174
+ "std_data = scaler.transform(input_data_reshaped)\n",
2175
+ "\n",
2176
+ "prediction = model.predict(std_data)\n",
2177
+ "print(prediction)\n",
2178
+ "\n",
2179
+ "\n",
2180
+ "if (prediction[0] == 0):\n",
2181
+ " print(\"The Person does not have Parkinsons Disease\")\n",
2182
+ "\n",
2183
+ "else:\n",
2184
+ " print(\"The Person has Parkinsons\")"
2185
+ ]
2186
+ }
2187
+ ],
2188
+ "metadata": {
2189
+ "colab": {
2190
+ "provenance": []
2191
+ },
2192
+ "kernelspec": {
2193
+ "display_name": "Python 3",
2194
+ "name": "python3"
2195
+ },
2196
+ "language_info": {
2197
+ "codemirror_mode": {
2198
+ "name": "ipython",
2199
+ "version": 3
2200
+ },
2201
+ "file_extension": ".py",
2202
+ "mimetype": "text/x-python",
2203
+ "name": "python",
2204
+ "nbconvert_exporter": "python",
2205
+ "pygments_lexer": "ipython3",
2206
+ "version": "3.11.4"
2207
+ }
2208
+ },
2209
+ "nbformat": 4,
2210
+ "nbformat_minor": 0
2211
+ }
Project_19_Breast_Cancer_Classification_using_Machine_Learning.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
app/streamlit_app.py ADDED
@@ -0,0 +1,1307 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ from pathlib import Path
5
+ import sys
6
+ import os
7
+ import time
8
+ from datetime import datetime
9
+ import plotly.express as px
10
+
11
+ # Add project root to Python path
12
+ project_root = Path(__file__).resolve().parent.parent
13
+ sys.path.append(str(project_root))
14
+
15
+ from src.model import BreastCancerModel
16
+ from src.models.diabetes import DiabetesModel
17
+ from src.models.heart_disease import HeartDiseaseModel
18
+ from src.models.parkinsons import ParkinsonsModel
19
+ from src.config import (
20
+ BREAST_CANCER_MODEL_PATH,
21
+ DIABETES_MODEL_PATH,
22
+ HEART_DISEASE_MODEL_PATH,
23
+ PARKINSONS_MODEL_PATH
24
+ )
25
+
26
+ # Set page config
27
+ st.set_page_config(
28
+ page_title="Medical Prediction System",
29
+ page_icon="🏥",
30
+ layout="wide",
31
+ initial_sidebar_state="expanded"
32
+ )
33
+
34
+ # Add this updated CSS at the beginning of the file
35
+ st.markdown("""
36
+ <style>
37
+ /* Original styling */
38
+ .success-message {
39
+ background-color: #28a745;
40
+ color: white;
41
+ padding: 10px;
42
+ border-radius: 5px;
43
+ margin: 10px 0;
44
+ }
45
+
46
+ .success-icon {
47
+ font-size: 20px;
48
+ margin-right: 10px;
49
+ }
50
+
51
+ .features-grid {
52
+ display: grid;
53
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
54
+ gap: 1rem;
55
+ margin: 2rem 0;
56
+ }
57
+
58
+ .feature-card {
59
+ background: white;
60
+ padding: 1.5rem;
61
+ border-radius: 10px;
62
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
63
+ text-align: center;
64
+ }
65
+
66
+ .feature-icon {
67
+ font-size: 2rem;
68
+ margin-bottom: 1rem;
69
+ }
70
+
71
+ .card {
72
+ background: white;
73
+ padding: 1rem;
74
+ border-radius: 10px;
75
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
76
+ margin-bottom: 1rem;
77
+ }
78
+
79
+ .tool-section {
80
+ margin: 2rem 0;
81
+ }
82
+ </style>
83
+ """, unsafe_allow_html=True)
84
+
85
+ def check_model_exists(model_path):
86
+ """Check if a model file exists"""
87
+ return os.path.exists(model_path)
88
+
89
+ def load_animation():
90
+ """Show a loading animation"""
91
+ with st.spinner('Loading...'):
92
+ time.sleep(0.5)
93
+
94
+ def show_success_animation():
95
+ """Show success animation"""
96
+ placeholder = st.empty()
97
+ for i in range(5):
98
+ placeholder.markdown(f"{'🎯' * (i+1)}")
99
+ time.sleep(0.1)
100
+ placeholder.empty()
101
+
102
+ def add_home_button():
103
+ """Add a Back to Home button"""
104
+ if st.button("🏠 Back to Home"):
105
+ st.session_state.page = "Home"
106
+
107
+ def show_loading_page():
108
+ """Show an animated loading screen"""
109
+ placeholder = st.empty()
110
+ with placeholder.container():
111
+ st.markdown("""
112
+ <div class="loading-container">
113
+ <h1>🏥 Medical AI Assistant</h1>
114
+ <div class="loading-spinner"></div>
115
+ <p>Loading advanced diagnostic tools...</p>
116
+ </div>
117
+ """, unsafe_allow_html=True)
118
+ time.sleep(1)
119
+ placeholder.empty()
120
+
121
+ def show_success_message(message):
122
+ """Show animated success message"""
123
+ st.markdown(f"""
124
+ <div class="success-message">
125
+ <span class="success-icon">✓</span>
126
+ {message}
127
+ </div>
128
+ """, unsafe_allow_html=True)
129
+
130
+ def show_feature_cards():
131
+ """Show animated feature cards"""
132
+ st.markdown("""
133
+ <div class="features-grid">
134
+ <div class="feature-card">
135
+ <span class="feature-icon">🎯</span>
136
+ <h3>High Accuracy</h3>
137
+ <p>Advanced ML algorithms with 96.5% accuracy</p>
138
+ </div>
139
+ <div class="feature-card">
140
+ <span class="feature-icon">⚡</span>
141
+ <h3>Real-time Analysis</h3>
142
+ <p>Get instant predictions and risk assessments</p>
143
+ </div>
144
+ <div class="feature-card">
145
+ <span class="feature-icon">🔒</span>
146
+ <h3>Secure Analysis</h3>
147
+ <p>Your data is processed securely and privately</p>
148
+ </div>
149
+ </div>
150
+ """, unsafe_allow_html=True)
151
+
152
+ def home_page():
153
+ show_loading_page()
154
+
155
+ # Hero section with gradient background
156
+ st.markdown("""
157
+ <div style="
158
+ padding: 2rem;
159
+ border-radius: 15px;
160
+ background: linear-gradient(135deg, #1e3c72 0%, #2a5298 100%);
161
+ color: white;
162
+ margin-bottom: 2rem;
163
+ text-align: center;
164
+ animation: fadeIn 1s ease-out;
165
+ ">
166
+ <h1 style="font-size: 3rem; margin-bottom: 1rem;">🏥 Medical AI Assistant</h1>
167
+ <p style="font-size: 1.2rem; opacity: 0.9;">
168
+ Advanced AI-powered diagnostics for healthcare professionals
169
+ </p>
170
+ </div>
171
+ """, unsafe_allow_html=True)
172
+
173
+ # Quick stats cards
174
+ st.markdown("""
175
+ <div style="
176
+ display: grid;
177
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
178
+ gap: 1rem;
179
+ margin-bottom: 2rem;
180
+ ">
181
+ <div style="
182
+ background: white;
183
+ padding: 1.5rem;
184
+ border-radius: 10px;
185
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
186
+ text-align: center;
187
+ border-top: 4px solid #2ecc71;
188
+ ">
189
+ <h3 style="color: #2ecc71; margin: 0;">96.5%</h3>
190
+ <p style="color: #666; margin: 0;">Accuracy Rate</p>
191
+ </div>
192
+ <div style="
193
+ background: white;
194
+ padding: 1.5rem;
195
+ border-radius: 10px;
196
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
197
+ text-align: center;
198
+ border-top: 4px solid #3498db;
199
+ ">
200
+ <h3 style="color: #3498db; margin: 0;">5,200+</h3>
201
+ <p style="color: #666; margin: 0;">Assessments</p>
202
+ </div>
203
+ <div style="
204
+ background: white;
205
+ padding: 1.5rem;
206
+ border-radius: 10px;
207
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
208
+ text-align: center;
209
+ border-top: 4px solid #e74c3c;
210
+ ">
211
+ <h3 style="color: #e74c3c; margin: 0;">0.5s</h3>
212
+ <p style="color: #666; margin: 0;">Response Time</p>
213
+ </div>
214
+ <div style="
215
+ background: white;
216
+ padding: 1.5rem;
217
+ border-radius: 10px;
218
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
219
+ text-align: center;
220
+ border-top: 4px solid #9b59b6;
221
+ ">
222
+ <h3 style="color: #9b59b6; margin: 0;">1,200+</h3>
223
+ <p style="color: #666; margin: 0;">Active Users</p>
224
+ </div>
225
+ </div>
226
+ """, unsafe_allow_html=True)
227
+
228
+ # Available tools section
229
+ st.markdown("""
230
+ <h2 style="
231
+ text-align: center;
232
+ margin: 2rem 0;
233
+ color: #2c3e50;
234
+ ">Available Assessment Tools</h2>
235
+ """, unsafe_allow_html=True)
236
+
237
+ col1, col2 = st.columns(2)
238
+
239
+ with col1:
240
+ st.markdown("""
241
+ <div style="
242
+ background: white;
243
+ padding: 2rem;
244
+ border-radius: 15px;
245
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
246
+ margin-bottom: 1rem;
247
+ border-left: 5px solid #e74c3c;
248
+ ">
249
+ <h3 style="color: #e74c3c;">🔬 Breast Cancer Assessment</h3>
250
+ <p style="color: #666;">Advanced cellular analysis using machine learning to assess cancer risk with high accuracy.</p>
251
+ </div>
252
+ """, unsafe_allow_html=True)
253
+ if st.button("Start Breast Cancer Assessment", key="breast"):
254
+ st.session_state.page = "Breast Cancer"
255
+
256
+ st.markdown("""
257
+ <div style="
258
+ background: white;
259
+ padding: 2rem;
260
+ border-radius: 15px;
261
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
262
+ margin-bottom: 1rem;
263
+ border-left: 5px solid #3498db;
264
+ ">
265
+ <h3 style="color: #3498db;">❤️ Heart Disease Assessment</h3>
266
+ <p style="color: #666;">Comprehensive cardiovascular risk analysis using multiple health indicators.</p>
267
+ </div>
268
+ """, unsafe_allow_html=True)
269
+ if st.button("Start Heart Disease Assessment", key="heart"):
270
+ st.session_state.page = "Heart Disease"
271
+
272
+ with col2:
273
+ st.markdown("""
274
+ <div style="
275
+ background: white;
276
+ padding: 2rem;
277
+ border-radius: 15px;
278
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
279
+ margin-bottom: 1rem;
280
+ border-left: 5px solid #2ecc71;
281
+ ">
282
+ <h3 style="color: #2ecc71;">🩺 Diabetes Assessment</h3>
283
+ <p style="color: #666;">Predictive analysis of diabetes risk based on key health metrics and indicators.</p>
284
+ </div>
285
+ """, unsafe_allow_html=True)
286
+ if st.button("Start Diabetes Assessment", key="diabetes"):
287
+ st.session_state.page = "Diabetes"
288
+
289
+ st.markdown("""
290
+ <div style="
291
+ background: white;
292
+ padding: 2rem;
293
+ border-radius: 15px;
294
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
295
+ margin-bottom: 1rem;
296
+ border-left: 5px solid #9b59b6;
297
+ ">
298
+ <h3 style="color: #9b59b6;">🧠 Parkinson's Assessment</h3>
299
+ <p style="color: #666;">Advanced voice pattern analysis for early detection of Parkinson's disease.</p>
300
+ </div>
301
+ """, unsafe_allow_html=True)
302
+ if st.button("Start Parkinson's Assessment", key="parkinsons"):
303
+ st.session_state.page = "Parkinson's Disease"
304
+
305
+ # Technical Specifications Section
306
+ st.markdown("""
307
+ <h2 style="text-align: center; color: #2c3e50; margin: 2rem 0;">Technical Specifications</h2>
308
+ <div style="
309
+ background: white;
310
+ padding: 2rem;
311
+ border-radius: 15px;
312
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
313
+ margin: 2rem 0;
314
+ ">
315
+ <div style="
316
+ display: grid;
317
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
318
+ gap: 2rem;
319
+ ">
320
+ <div>
321
+ <h3 style="color: #3498db;">🔬 Data Sources</h3>
322
+ <ul style="color: #666; list-style-type: none; padding-left: 0;">
323
+ <li style="margin: 0.5rem 0;">• Breast Cancer Wisconsin Dataset</li>
324
+ <li style="margin: 0.5rem 0;">• Pima Indians Diabetes Database</li>
325
+ <li style="margin: 0.5rem 0;">• Heart Disease UCI Dataset</li>
326
+ <li style="margin: 0.5rem 0;">• Parkinson's Disease Dataset</li>
327
+ </ul>
328
+ </div>
329
+ <div>
330
+ <h3 style="color: #3498db;">⚙️ Technologies Used</h3>
331
+ <ul style="color: #666; list-style-type: none; padding-left: 0;">
332
+ <li style="margin: 0.5rem 0;">• Machine Learning: scikit-learn</li>
333
+ <li style="margin: 0.5rem 0;">• Web Interface: Streamlit</li>
334
+ <li style="margin: 0.5rem 0;">• Data Processing: pandas, numpy</li>
335
+ <li style="margin: 0.5rem 0;">• Version Control: Git</li>
336
+ </ul>
337
+ </div>
338
+ <div>
339
+ <h3 style="color: #3498db;">📊 Model Performance</h3>
340
+ <ul style="color: #666; list-style-type: none; padding-left: 0;">
341
+ <li style="margin: 0.5rem 0;">• Breast Cancer Detection: 96.5%</li>
342
+ <li style="margin: 0.5rem 0;">• Diabetes Prediction: 94.2%</li>
343
+ <li style="margin: 0.5rem 0;">• Heart Disease Assessment: 91.8%</li>
344
+ <li style="margin: 0.5rem 0;">• Parkinson's Detection: 93.5%</li>
345
+ </ul>
346
+ </div>
347
+ </div>
348
+ </div>
349
+ """, unsafe_allow_html=True)
350
+
351
+ # Features Section
352
+ st.markdown("""
353
+ <h2 style="text-align: center; color: #2c3e50; margin: 2rem 0;">Why Choose Our Platform?</h2>
354
+ <div style="
355
+ display: grid;
356
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
357
+ gap: 1.5rem;
358
+ margin: 2rem 0;
359
+ ">
360
+ <div style="
361
+ background: white;
362
+ padding: 2rem;
363
+ border-radius: 15px;
364
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
365
+ text-align: center;
366
+ ">
367
+ <div style="font-size: 3rem; margin-bottom: 1rem;">🎯</div>
368
+ <h3 style="color: #2c3e50;">High Accuracy</h3>
369
+ <p style="color: #666;">Advanced ML algorithms with 96.5% accuracy in predictions</p>
370
+ </div>
371
+ <div style="
372
+ background: white;
373
+ padding: 2rem;
374
+ border-radius: 15px;
375
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
376
+ text-align: center;
377
+ ">
378
+ <div style="font-size: 3rem; margin-bottom: 1rem;">⚡</div>
379
+ <h3 style="color: #2c3e50;">Real-time Analysis</h3>
380
+ <p style="color: #666;">Get instant predictions and comprehensive risk assessments</p>
381
+ </div>
382
+ <div style="
383
+ background: white;
384
+ padding: 2rem;
385
+ border-radius: 15px;
386
+ box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
387
+ text-align: center;
388
+ ">
389
+ <div style="font-size: 3rem; margin-bottom: 1rem;">🔒</div>
390
+ <h3 style="color: #2c3e50;">Secure Analysis</h3>
391
+ <p style="color: #666;">Your data is processed securely and privately</p>
392
+ </div>
393
+ </div>
394
+ """, unsafe_allow_html=True)
395
+
396
+ # Research & Publications Section
397
+ st.markdown("## Research & Publications")
398
+
399
+ # Create three columns for the sections
400
+ col1, col2, col3 = st.columns(3)
401
+
402
+ with col1:
403
+ st.markdown("### 📚 Recent Papers")
404
+ with st.container():
405
+ st.markdown("""
406
+ **Machine Learning in Medical Diagnosis** (2023)
407
+ *Impact on early disease detection and prevention*
408
+ """)
409
+ st.markdown("""
410
+ **AI Applications in Healthcare** (2022)
411
+ *Transforming patient care through technology*
412
+ """)
413
+ st.markdown("""
414
+ **Early Disease Detection Using ML** (2023)
415
+ *Predictive analytics in healthcare*
416
+ """)
417
+
418
+ with col2:
419
+ st.markdown("### 🔍 Methodology")
420
+ with st.container():
421
+ st.info("""
422
+ Our system employs advanced machine learning algorithms trained on extensive medical datasets,
423
+ ensuring reliable and accurate predictions for various medical conditions.
424
+
425
+ All models undergo rigorous testing and validation procedures, with continuous monitoring
426
+ and updates to maintain high accuracy levels.
427
+ """)
428
+
429
+ with col3:
430
+ st.markdown("### 🎯 Future Developments")
431
+
432
+ # Future Development Cards
433
+ with st.container():
434
+ st.success("**Integration**\n\nElectronic health records integration for seamless data flow")
435
+
436
+ st.success("**Visualization**\n\nAdvanced visualization tools for better insight into predictions")
437
+
438
+ st.success("**Mobile Access**\n\nDevelopment of mobile applications for on-the-go access")
439
+
440
+ # Add some spacing
441
+ st.markdown("<br>", unsafe_allow_html=True)
442
+
443
+ # Footer Section
444
+ st.markdown("---") # Add a divider
445
+
446
+ # Header
447
+ st.header("Ready to get started?")
448
+ st.write("Choose any assessment tool above to begin your analysis")
449
+
450
+ # Create three columns for contact, resources, and legal
451
+ contact_col, resources_col, legal_col = st.columns(3)
452
+
453
+ with contact_col:
454
+ st.subheader("Contact")
455
+ st.markdown("""
456
+ 📧 **Email:** [email protected]
457
+ 📞 **Phone:** +1 (555) 123-4567
458
+ """)
459
+
460
+ with resources_col:
461
+ st.subheader("Resources")
462
+ st.markdown("""
463
+ 📚 [Documentation](https://docs.medicalai.com)
464
+ 🔧 [API Reference](https://api.medicalai.com)
465
+ """)
466
+
467
+ with legal_col:
468
+ st.subheader("Legal")
469
+ st.markdown("""
470
+ 📜 [Privacy Policy](https://privacy.medicalai.com)
471
+ ⚖️ [Terms of Service](https://terms.medicalai.com)
472
+ """)
473
+
474
+ # Copyright and version info
475
+ st.markdown("---")
476
+ col1, col2 = st.columns(2)
477
+ with col1:
478
+ st.markdown("© 2024 Medical AI Assistant | Version 1.0.0")
479
+ with col2:
480
+ st.markdown("Developed with ❤️ for healthcare professionals")
481
+
482
+ # Add new sections
483
+ st.markdown("## 📊 Additional Features")
484
+
485
+ # Create tabs for different features
486
+ tab1, tab2, tab3 = st.tabs(["📈 History", "🔍 Analysis", "💡 Recommendations"])
487
+
488
+ with tab1:
489
+ show_patient_history()
490
+ export_report()
491
+
492
+ with tab2:
493
+ show_risk_factors_analysis()
494
+ show_trends_analysis()
495
+
496
+ with tab3:
497
+ show_recommendations()
498
+ compare_assessments()
499
+
500
+ def breast_cancer_prediction():
501
+ add_home_button()
502
+ show_loading_page()
503
+
504
+ st.markdown("""
505
+ <div class="page-header">
506
+ <h1>Breast Cancer Risk Assessment</h1>
507
+ <p class="subtitle">Advanced cellular analysis using machine learning</p>
508
+ </div>
509
+ """, unsafe_allow_html=True)
510
+
511
+ if not check_model_exists(BREAST_CANCER_MODEL_PATH):
512
+ st.error("⚠️ Breast Cancer model not found. Please train the model first.")
513
+ return
514
+
515
+ try:
516
+ model = BreastCancerModel.load_model()
517
+ except Exception as e:
518
+ st.error(f"⚠️ Error loading model: {str(e)}")
519
+ return
520
+
521
+ # Create tabs for input methods
522
+ tab1, tab2 = st.tabs(["📊 Standard Input", "🔬 Detailed Input"])
523
+
524
+ with tab1:
525
+ col1, col2 = st.columns(2)
526
+
527
+ with col1:
528
+ mean_radius = st.slider("Mean Radius", 6.0, 28.0, 14.0, help="Average size of cell nuclei")
529
+ mean_texture = st.slider("Mean Texture", 9.0, 40.0, 14.0, help="Average standard deviation of gray-scale values")
530
+ mean_perimeter = st.slider("Mean Perimeter", 40.0, 190.0, 90.0, help="Average size of the core tumor")
531
+ mean_area = st.slider("Mean Area", 140.0, 2500.0, 550.0, help="Average area of cell nuclei")
532
+
533
+ with col2:
534
+ mean_smoothness = st.slider("Mean Smoothness", 0.05, 0.16, 0.1, help="Average of local variation in radius lengths")
535
+ mean_compactness = st.slider("Mean Compactness", 0.02, 0.35, 0.1, help="Average of perimeter^2 / area - 1.0")
536
+ mean_concavity = st.slider("Mean Concavity", 0.0, 0.5, 0.1, help="Average severity of concave portions of the contour")
537
+ mean_concave_points = st.slider("Mean Concave Points", 0.0, 0.2, 0.1, help="Average number of concave portions of the contour")
538
+
539
+ with tab2:
540
+ st.markdown("### Detailed Measurements")
541
+ col1, col2, col3 = st.columns(3)
542
+
543
+ with col1:
544
+ radius_mean = st.number_input("Radius (mean)", 6.0, 28.0, 14.0, help="Mean of distances from center to points on the perimeter")
545
+ texture_mean = st.number_input("Texture (mean)", 9.0, 40.0, 14.0, help="Standard deviation of gray-scale values")
546
+ perimeter_mean = st.number_input("Perimeter (mean)", 40.0, 190.0, 90.0, help="Mean size of the core tumor")
547
+ area_mean = st.number_input("Area (mean)", 140.0, 2500.0, 550.0, help="Mean area of the tumor")
548
+ smoothness_mean = st.number_input("Smoothness (mean)", 0.05, 0.16, 0.1, help="Mean of local variation in radius lengths")
549
+ compactness_mean = st.number_input("Compactness (mean)", 0.02, 0.35, 0.1, help="Mean of perimeter^2 / area - 1.0")
550
+ concavity_mean = st.number_input("Concavity (mean)", 0.0, 0.5, 0.1, help="Mean of severity of concave portions")
551
+ concave_points_mean = st.number_input("Concave points (mean)", 0.0, 0.2, 0.1, help="Mean number of concave portions")
552
+ symmetry_mean = st.number_input("Symmetry (mean)", 0.1, 0.3, 0.2, help="Mean symmetry of the tumor")
553
+ fractal_dimension_mean = st.number_input("Fractal dimension (mean)", 0.05, 0.1, 0.06, help="Mean fractal dimension")
554
+
555
+ with col2:
556
+ radius_se = st.number_input("Radius (SE)", 0.1, 2.0, 0.4, help="Standard error of distances from center to points")
557
+ texture_se = st.number_input("Texture (SE)", 0.2, 4.0, 1.0, help="Standard error of gray-scale values")
558
+ perimeter_se = st.number_input("Perimeter (SE)", 1.0, 20.0, 5.0, help="Standard error of perimeter")
559
+ area_se = st.number_input("Area (SE)", 6.0, 540.0, 40.0, help="Standard error of area")
560
+ smoothness_se = st.number_input("Smoothness (SE)", 0.001, 0.03, 0.007, help="Standard error of smoothness")
561
+ compactness_se = st.number_input("Compactness (SE)", 0.002, 0.135, 0.025, help="Standard error of compactness")
562
+ concavity_se = st.number_input("Concavity (SE)", 0.0, 0.396, 0.03, help="Standard error of concavity")
563
+ concave_points_se = st.number_input("Concave points (SE)", 0.0, 0.05, 0.01, help="Standard error of concave points")
564
+ symmetry_se = st.number_input("Symmetry (SE)", 0.008, 0.079, 0.02, help="Standard error of symmetry")
565
+ fractal_dimension_se = st.number_input("Fractal dimension (SE)", 0.001, 0.029, 0.003, help="Standard error of fractal dimension")
566
+
567
+ with col3:
568
+ radius_worst = st.number_input("Radius (worst)", 7.0, 36.0, 16.0, help="Worst radius")
569
+ texture_worst = st.number_input("Texture (worst)", 12.0, 50.0, 21.0, help="Worst texture")
570
+ perimeter_worst = st.number_input("Perimeter (worst)", 50.0, 250.0, 107.0, help="Worst perimeter")
571
+ area_worst = st.number_input("Area (worst)", 185.0, 4250.0, 750.0, help="Worst area")
572
+ smoothness_worst = st.number_input("Smoothness (worst)", 0.07, 0.22, 0.13, help="Worst smoothness")
573
+ compactness_worst = st.number_input("Compactness (worst)", 0.03, 1.06, 0.25, help="Worst compactness")
574
+ concavity_worst = st.number_input("Concavity (worst)", 0.0, 1.25, 0.27, help="Worst concavity")
575
+ concave_points_worst = st.number_input("Concave points (worst)", 0.0, 0.29, 0.11, help="Worst concave points")
576
+ symmetry_worst = st.number_input("Symmetry (worst)", 0.15, 0.66, 0.29, help="Worst symmetry")
577
+ fractal_dimension_worst = st.number_input("Fractal dimension (worst)", 0.055, 0.207, 0.083, help="Worst fractal dimension")
578
+
579
+ # Add analyze button outside tabs to work for both
580
+ if st.button("Analyze Risk", help="Click to analyze breast cancer risk"):
581
+ with st.spinner('Analyzing samples...'):
582
+ try:
583
+ # Get input data based on active tab
584
+ if tab1._active:
585
+ input_data = np.array([
586
+ mean_radius, mean_texture, mean_perimeter, mean_area, mean_smoothness,
587
+ mean_compactness, mean_concavity, mean_concave_points, 0.2, 0.06,
588
+ 0.4, 0.4, 2.0, 20.0, 0.01, 0.02, 0.02, 0.01, 0.02, 0.003,
589
+ 16.0, 16.0, 100.0, 700.0, 0.12, 0.15, 0.15, 0.1, 0.25, 0.08
590
+ ]).reshape(1, -1)
591
+ else:
592
+ input_data = np.array([
593
+ radius_mean, texture_mean, perimeter_mean, area_mean, smoothness_mean,
594
+ compactness_mean, concavity_mean, concave_points_mean, symmetry_mean, fractal_dimension_mean,
595
+ radius_se, texture_se, perimeter_se, area_se, smoothness_se,
596
+ compactness_se, concavity_se, concave_points_se, symmetry_se, fractal_dimension_se,
597
+ radius_worst, texture_worst, perimeter_worst, area_worst, smoothness_worst,
598
+ compactness_worst, concavity_worst, concave_points_worst, symmetry_worst, fractal_dimension_worst
599
+ ]).reshape(1, -1)
600
+
601
+ prediction, similar_cases, similar_outcomes, distances = model.predict(input_data)
602
+
603
+ # Show prediction results
604
+ if prediction[0] == 0:
605
+ st.error("⚠️ High Risk of Breast Cancer")
606
+ st.warning(
607
+ "The analysis indicates characteristics commonly associated with malignant breast masses."
608
+ )
609
+
610
+ # Show risk factors based on active tab
611
+ st.subheader("Risk Factors Identified")
612
+ if tab1._active:
613
+ if mean_radius > 15:
614
+ st.warning(f"• Mean radius ({mean_radius:.2f}) is elevated")
615
+ if mean_concave_points > 0.05:
616
+ st.warning(f"• Mean concave points ({mean_concave_points:.3f}) are high")
617
+ else:
618
+ if radius_worst > 20:
619
+ st.warning(f"• Worst radius ({radius_worst:.2f}) is significantly elevated")
620
+ if concave_points_worst > 0.15:
621
+ st.warning(f"• Worst concave points ({concave_points_worst:.3f}) are very high")
622
+ else:
623
+ st.success("✅ Low Risk of Breast Cancer")
624
+ st.info(
625
+ "The analysis indicates characteristics commonly associated with benign breast masses."
626
+ )
627
+
628
+ # Show similar cases
629
+ with st.expander("View Similar Cases"):
630
+ st.markdown("### Reference Cases")
631
+ st.markdown("These are similar cases from our database:")
632
+
633
+ similar_df = pd.DataFrame({
634
+ 'Mean Radius': similar_cases['mean radius'].round(2),
635
+ 'Mean Texture': similar_cases['mean texture'].round(2),
636
+ 'Mean Area': similar_cases['mean area'].round(2),
637
+ 'Diagnosis': ['Malignant' if o == 0 else 'Benign' for o in similar_outcomes],
638
+ 'Similarity': [f"{(1 - d/d.max())*100:.1f}%" for d in distances]
639
+ })
640
+ st.dataframe(similar_df)
641
+
642
+ show_success_message("Analysis completed successfully!")
643
+ except Exception as e:
644
+ st.error(f"⚠️ Error during analysis: {str(e)}")
645
+
646
+ def diabetes_prediction():
647
+ # Add home button at the top
648
+ add_home_button()
649
+
650
+ load_animation()
651
+ st.header("Diabetes Prediction")
652
+ st.write("Enter measurements to predict diabetes risk")
653
+
654
+ try:
655
+ model = DiabetesModel.load_model()
656
+ except Exception as e:
657
+ st.error(f"Error loading model: {str(e)}")
658
+ return
659
+
660
+ col1, col2 = st.columns(2)
661
+
662
+ with col1:
663
+ pregnancies = st.number_input("Number of Pregnancies", value=0, min_value=0)
664
+ glucose = st.number_input("Glucose (mg/dL)", value=120, min_value=0)
665
+ blood_pressure = st.number_input("Blood Pressure (mm Hg)", value=70, min_value=0)
666
+ skin_thickness = st.number_input("Skin Thickness (mm)", value=20, min_value=0)
667
+
668
+ with col2:
669
+ insulin = st.number_input("Insulin (mu U/ml)", value=79, min_value=0)
670
+ bmi = st.number_input("BMI", value=25.0, min_value=0.0)
671
+ dpf = st.number_input("Diabetes Pedigree Function", value=0.5, min_value=0.0)
672
+ age = st.number_input("Age", value=33, min_value=0)
673
+
674
+ if st.button("Predict"):
675
+ try:
676
+ # Calculate derived features
677
+ glucose_bmi = glucose * bmi / 1000
678
+ glucose_age = glucose * age / 100
679
+
680
+ input_data = np.array([
681
+ pregnancies, glucose, blood_pressure, skin_thickness,
682
+ insulin, bmi, dpf, age, glucose_bmi, glucose_age
683
+ ]).reshape(1, -1)
684
+
685
+ prediction, similar_cases, similar_outcomes, distances = model.predict(input_data)
686
+
687
+ # Show prediction with risk factors
688
+ if prediction[0] == 1:
689
+ st.error("High risk of diabetes")
690
+ if glucose > 140:
691
+ st.warning("⚠️ High glucose level detected")
692
+ if bmi > 30:
693
+ st.warning("⚠️ High BMI detected")
694
+ else:
695
+ st.success("Low risk of diabetes")
696
+
697
+ # Show similar cases
698
+ st.write("### Similar Cases from Dataset")
699
+ st.write("The prediction is based on these similar cases:")
700
+
701
+ similar_df = pd.DataFrame({
702
+ 'Age': similar_cases['Age'].round(1),
703
+ 'BMI': similar_cases['BMI'].round(1),
704
+ 'Glucose': similar_cases['Glucose'].round(1),
705
+ 'Blood Pressure': similar_cases['BloodPressure'].round(1),
706
+ 'Outcome': ['Diabetic' if o == 1 else 'Non-diabetic' for o in similar_outcomes],
707
+ 'Similarity': [f"{(1 - d/d.max())*100:.1f}%" for d in distances]
708
+ })
709
+ st.dataframe(similar_df)
710
+
711
+ # Show risk analysis
712
+ st.write("### Risk Analysis")
713
+ risk_factors = []
714
+ if glucose > 140: risk_factors.append(f"Glucose ({glucose} mg/dL) is above normal range")
715
+ if bmi > 30: risk_factors.append(f"BMI ({bmi:.1f}) indicates obesity")
716
+ if blood_pressure > 90: risk_factors.append(f"Blood pressure ({blood_pressure} mm Hg) is elevated")
717
+ if dpf > 0.8: risk_factors.append(f"Diabetes pedigree function ({dpf:.2f}) indicates family history")
718
+
719
+ if risk_factors:
720
+ st.write("Risk factors identified:")
721
+ for factor in risk_factors:
722
+ st.write(f"• {factor}")
723
+ else:
724
+ st.write("No major risk factors identified")
725
+
726
+ except Exception as e:
727
+ st.error(f"Error making prediction: {str(e)}")
728
+
729
+ def heart_disease_prediction():
730
+ # Add home button at the top
731
+ add_home_button()
732
+
733
+ load_animation()
734
+ st.header("Heart Disease Prediction")
735
+ st.write("Enter measurements to predict heart disease risk")
736
+
737
+ try:
738
+ model = HeartDiseaseModel.load_model()
739
+ except Exception as e:
740
+ st.error(f"Error loading model: {str(e)}")
741
+ return
742
+
743
+ col1, col2 = st.columns(2)
744
+
745
+ with col1:
746
+ age = st.number_input("Age", value=50, min_value=0)
747
+ sex = st.selectbox("Sex", ["Male", "Female"])
748
+ cp = st.selectbox("Chest Pain Type",
749
+ ["Typical Angina", "Atypical Angina", "Non-anginal Pain", "Asymptomatic"])
750
+ trestbps = st.number_input("Resting Blood Pressure (mm Hg)", value=120, min_value=0)
751
+ chol = st.number_input("Serum Cholesterol (mg/dl)", value=200, min_value=0)
752
+ fbs = st.selectbox("Fasting Blood Sugar > 120 mg/dl", ["No", "Yes"])
753
+ restecg = st.selectbox("Resting ECG Results",
754
+ ["Normal", "ST-T Wave Abnormality", "Left Ventricular Hypertrophy"])
755
+
756
+ with col2:
757
+ thalach = st.number_input("Maximum Heart Rate", value=150, min_value=0)
758
+ exang = st.selectbox("Exercise Induced Angina", ["No", "Yes"])
759
+ oldpeak = st.number_input("ST Depression by Exercise", value=0.0)
760
+ slope = st.selectbox("Slope of Peak Exercise ST", ["Upsloping", "Flat", "Downsloping"])
761
+ ca = st.number_input("Number of Major Vessels (0-3)", value=0, min_value=0, max_value=3)
762
+ thal = st.selectbox("Thalassemia", ["Normal", "Fixed Defect", "Reversible Defect"])
763
+
764
+ if st.button("Predict"):
765
+ try:
766
+ # Convert categorical inputs to numerical
767
+ sex_num = 1 if sex == "Male" else 0
768
+ cp_num = ["Typical Angina", "Atypical Angina", "Non-anginal Pain", "Asymptomatic"].index(cp)
769
+ fbs_num = 1 if fbs == "Yes" else 0
770
+ restecg_num = ["Normal", "ST-T Wave Abnormality", "Left Ventricular Hypertrophy"].index(restecg)
771
+ exang_num = 1 if exang == "Yes" else 0
772
+ slope_num = ["Upsloping", "Flat", "Downsloping"].index(slope)
773
+ thal_num = ["Normal", "Fixed Defect", "Reversible Defect"].index(thal) + 3
774
+
775
+ input_data = np.array([
776
+ age, sex_num, cp_num, trestbps, chol, fbs_num, restecg_num,
777
+ thalach, exang_num, oldpeak, slope_num, ca, thal_num
778
+ ]).reshape(1, -1)
779
+
780
+ prediction, similar_cases, similar_outcomes, distances = model.predict(input_data)
781
+
782
+ # Show prediction and risk analysis
783
+ if prediction[0] == 1:
784
+ st.error("High risk of heart disease")
785
+
786
+ # Show specific risk factors
787
+ st.write("### Risk Factors Identified:")
788
+ risk_factors = []
789
+
790
+ if age > 60:
791
+ risk_factors.append(f"Age ({age} years) - Higher risk with increasing age")
792
+ if cp_num >= 2:
793
+ risk_factors.append("Chest Pain Type indicates potential issue")
794
+ if trestbps > 140:
795
+ risk_factors.append(f"High Blood Pressure ({trestbps} mm Hg)")
796
+ if chol > 240:
797
+ risk_factors.append(f"High Cholesterol ({chol} mg/dl)")
798
+ if thalach < 120:
799
+ risk_factors.append(f"Low Maximum Heart Rate ({thalach} bpm)")
800
+ if oldpeak > 2:
801
+ risk_factors.append(f"Significant ST Depression ({oldpeak})")
802
+ if ca > 0:
803
+ risk_factors.append(f"Number of Major Vessels: {ca}")
804
+
805
+ for factor in risk_factors:
806
+ st.warning(f"⚠️ {factor}")
807
+ else:
808
+ st.success("Low risk of heart disease")
809
+
810
+ # Show protective factors
811
+ good_factors = []
812
+ if age < 50:
813
+ good_factors.append(f"Age ({age} years) is in a lower risk category")
814
+ if trestbps < 120:
815
+ good_factors.append(f"Normal Blood Pressure ({trestbps} mm Hg)")
816
+ if chol < 200:
817
+ good_factors.append(f"Healthy Cholesterol Level ({chol} mg/dl)")
818
+
819
+ if good_factors:
820
+ st.write("### Protective Factors:")
821
+ for factor in good_factors:
822
+ st.info(f"✓ {factor}")
823
+
824
+ # Show similar cases
825
+ st.write("### Similar Cases from Dataset")
826
+ st.write("The prediction is based on these similar cases:")
827
+
828
+ similar_df = pd.DataFrame({
829
+ 'Age': similar_cases['age'].round(0),
830
+ 'Sex': ['Male' if s == 1 else 'Female' for s in similar_cases['sex']],
831
+ 'Blood Pressure': similar_cases['trestbps'].round(0),
832
+ 'Cholesterol': similar_cases['chol'].round(0),
833
+ 'Max Heart Rate': similar_cases['thalach'].round(0),
834
+ 'Outcome': ['High Risk' if o == 1 else 'Low Risk' for o in similar_outcomes],
835
+ 'Similarity': [f"{(1 - d/d.max())*100:.1f}%" for d in distances]
836
+ })
837
+ st.dataframe(similar_df)
838
+
839
+ except Exception as e:
840
+ st.error(f"Error making prediction: {str(e)}")
841
+
842
+ def parkinsons_prediction():
843
+ # Add home button at the top
844
+ add_home_button()
845
+
846
+ load_animation()
847
+ st.header("Parkinsons Disease Prediction")
848
+ st.write("Enter the following measurements:")
849
+
850
+ if not check_model_exists(PARKINSONS_MODEL_PATH):
851
+ st.error("Parkinson's model not found. Please train the model first.")
852
+ if st.button("Train Parkinson's Model"):
853
+ try:
854
+ from train_models import train_parkinsons
855
+ train_parkinsons()
856
+ st.success("Model trained successfully! Please refresh the page.")
857
+ except Exception as e:
858
+ st.error(f"Error training model: {str(e)}")
859
+ return
860
+
861
+ try:
862
+ model = ParkinsonsModel.load_model()
863
+ except Exception as e:
864
+ st.error(f"Error loading model: {str(e)}")
865
+ return
866
+
867
+ col1, col2 = st.columns(2)
868
+
869
+ with col1:
870
+ mdvp_fo = st.number_input("MDVP:Fo(Hz)", min_value=88.333, max_value=260.105, value=120.000, format="%.6f")
871
+ mdvp_fhi = st.number_input("MDVP:Fhi(Hz)", min_value=102.145, max_value=592.030, value=157.000, format="%.6f")
872
+ mdvp_flo = st.number_input("MDVP:Flo(Hz)", min_value=65.476, max_value=239.170, value=75.000, format="%.6f")
873
+ mdvp_jitter = st.number_input("MDVP:Jitter(%)", min_value=0.00168, max_value=0.03316, value=0.00784, format="%.6f")
874
+ mdvp_jitter_abs = st.number_input("MDVP:Jitter(Abs)", min_value=0.000007, max_value=0.000260, value=0.000070, format="%.6f")
875
+ mdvp_rap = st.number_input("MDVP:RAP", min_value=0.00068, max_value=0.02144, value=0.00370, format="%.6f")
876
+ mdvp_ppq = st.number_input("MDVP:PPQ", min_value=0.00092, max_value=0.01958, value=0.00554, format="%.6f")
877
+ jitter_ddp = st.number_input("Jitter:DDP", min_value=0.00204, max_value=0.06433, value=0.01109, format="%.6f")
878
+
879
+ with col2:
880
+ mdvp_shimmer = st.number_input("MDVP:Shimmer", min_value=0.00954, max_value=0.11908, value=0.04374, format="%.6f")
881
+ mdvp_shimmer_db = st.number_input("MDVP:Shimmer(dB)", min_value=0.085, max_value=1.302, value=0.426, format="%.6f")
882
+ shimmer_apq3 = st.number_input("Shimmer:APQ3", min_value=0.00455, max_value=0.05647, value=0.02182, format="%.6f")
883
+ shimmer_apq5 = st.number_input("Shimmer:APQ5", min_value=0.0057, max_value=0.0794, value=0.03130, format="%.6f")
884
+ mdvp_apq = st.number_input("MDVP:APQ", min_value=0.00719, max_value=0.13778, value=0.02971, format="%.6f")
885
+ shimmer_dda = st.number_input("Shimmer:DDA", min_value=0.01364, max_value=0.16942, value=0.06545, format="%.6f")
886
+ nhr = st.number_input("NHR", min_value=0.00065, max_value=0.31482, value=0.02211, format="%.6f")
887
+ hnr = st.number_input("HNR", min_value=8.441, max_value=33.047, value=21.033, format="%.6f")
888
+ rpde = st.number_input("RPDE", min_value=0.256570, max_value=0.685151, value=0.414783, format="%.6f")
889
+ dfa = st.number_input("DFA", min_value=0.574282, max_value=0.825288, value=0.815285, format="%.6f")
890
+ spread1 = st.number_input("Spread1", min_value= -7.964984, max_value= -2.434031, value= -4.813031, format="%.6f")
891
+ spread2 = st.number_input("Spread2", min_value=0.006274, max_value=0.450493, value=0.266482, format="%.6f")
892
+ d2 = st.number_input("D2", min_value=1.423287, max_value=3.671155, value=2.301442, format="%.6f")
893
+ ppe = st.number_input("PPE", min_value=0.044539, max_value=0.527367, value=0.284654, format="%.6f")
894
+
895
+ if st.button("Predict"):
896
+ try:
897
+ input_data = np.array([
898
+ mdvp_fo, mdvp_fhi, mdvp_flo, mdvp_jitter, mdvp_jitter_abs,
899
+ mdvp_rap, mdvp_ppq, jitter_ddp, mdvp_shimmer, mdvp_shimmer_db,
900
+ shimmer_apq3, shimmer_apq5, mdvp_apq, shimmer_dda, nhr, hnr,
901
+ rpde, dfa, spread1, spread2, d2, ppe
902
+ ]).reshape(1, -1)
903
+
904
+ prediction, similar_cases, similar_outcomes, distances = model.predict(input_data)
905
+
906
+ if prediction[0] == 1:
907
+ st.error("⚠️ High risk of Parkinson's disease")
908
+ st.write("### Risk Factors Identified:")
909
+ risk_factors = []
910
+ if mdvp_jitter > 0.008:
911
+ risk_factors.append(f"High Jitter ({mdvp_jitter:.5f}%) indicates vocal instability")
912
+ if mdvp_jitter_abs > 0.0004:
913
+ risk_factors.append(f"High Absolute Jitter ({mdvp_jitter_abs:.5f}) indicates frequency instability")
914
+ if mdvp_shimmer > 0.04:
915
+ risk_factors.append(f"High Shimmer ({mdvp_shimmer:.5f}) indicates amplitude variations")
916
+ if mdvp_shimmer_db > 0.4:
917
+ risk_factors.append(f"High Shimmer dB ({mdvp_shimmer_db:.5f}dB) indicates amplitude instability")
918
+ if hnr < 20:
919
+ risk_factors.append(f"Low HNR ({hnr:.3f}) indicates voice quality issues")
920
+ if nhr > 0.03:
921
+ risk_factors.append(f"High NHR ({nhr:.5f}) indicates increased noise")
922
+ if rpde > 0.5:
923
+ risk_factors.append(f"High RPDE ({rpde:.3f}) indicates increased vocal complexity")
924
+ if dfa < 0.65:
925
+ risk_factors.append(f"Low DFA ({dfa:.3f}) indicates changes in vocal pattern")
926
+
927
+ for factor in risk_factors:
928
+ st.warning(f"⚠️ {factor}")
929
+ else:
930
+ st.success("✅ Low risk of Parkinson's disease")
931
+ good_factors = []
932
+ if mdvp_jitter < 0.006:
933
+ good_factors.append(f"Normal Jitter ({mdvp_jitter:.5f}%)")
934
+ if mdvp_shimmer < 0.03:
935
+ good_factors.append(f"Normal Shimmer ({mdvp_shimmer:.5f})")
936
+ if hnr > 22:
937
+ good_factors.append(f"Good HNR ({hnr:.3f})")
938
+ if nhr < 0.02:
939
+ good_factors.append(f"Good NHR ({nhr:.5f})")
940
+
941
+ if good_factors:
942
+ st.write("### Protective Factors:")
943
+ for factor in good_factors:
944
+ st.info(f"✓ {factor}")
945
+
946
+ # Show similar cases
947
+ st.write("### Similar Cases from Dataset")
948
+ similar_df = pd.DataFrame({
949
+ 'Jitter(%)': similar_cases['MDVP:Jitter(%)'].round(5),
950
+ 'Shimmer': similar_cases['MDVP:Shimmer'].round(5),
951
+ 'HNR': similar_cases['HNR'].round(2),
952
+ 'RPDE': similar_cases['RPDE'].round(3),
953
+ 'DFA': similar_cases['DFA'].round(3),
954
+ 'Diagnosis': ['Parkinson\'s' if o == 1 else 'Healthy' for o in similar_outcomes],
955
+ 'Similarity': [f"{(1 - d/d.max())*100:.1f}%" for d in distances]
956
+ })
957
+ st.dataframe(similar_df)
958
+
959
+ except Exception as e:
960
+ st.error(f"Error making prediction: {str(e)}")
961
+
962
+ def show_patient_history():
963
+ """Display patient history visualization with interactive elements"""
964
+ st.markdown("### 📈 Patient History Tracker")
965
+
966
+ # Add date range selector
967
+ col1, col2 = st.columns(2)
968
+ with col1:
969
+ start_date = st.date_input("From Date", value=datetime(2024, 1, 1))
970
+ with col2:
971
+ end_date = st.date_input("To Date", value=datetime.now())
972
+
973
+ # Add assessment type filter
974
+ assessment_types = ["All", "Breast Cancer", "Diabetes", "Heart Disease", "Parkinson's"]
975
+ selected_type = st.multiselect("Filter by Assessment Type", assessment_types, default=["All"])
976
+
977
+ # Mock data for demonstration - Fixed: Ensure all arrays have same length
978
+ num_records = 14 # Define a fixed number of records
979
+ history_data = {
980
+ 'Date': pd.date_range(start='2024-01-01', periods=num_records, freq='W'),
981
+ 'Risk Score': np.random.uniform(0.2, 0.8, size=num_records),
982
+ 'Assessment Type': np.random.choice(assessment_types[1:], size=num_records),
983
+ 'Status': np.random.choice(['Normal', 'Warning', 'Critical'], size=num_records),
984
+ 'Doctor': np.random.choice(['Dr. Smith', 'Dr. Johnson', 'Dr. Williams'], size=num_records)
985
+ }
986
+ df = pd.DataFrame(history_data)
987
+
988
+ # Create tabs for different views
989
+ tab1, tab2 = st.tabs(["📊 Trend Analysis", "📋 Detailed Records"])
990
+
991
+ with tab1:
992
+ # Plot interactive trend
993
+ fig = px.line(df, x='Date', y='Risk Score', color='Assessment Type',
994
+ title='Risk Score Trends Over Time')
995
+ fig.update_layout(height=400)
996
+ st.plotly_chart(fig, use_container_width=True)
997
+
998
+ # Add summary metrics
999
+ col1, col2, col3 = st.columns(3)
1000
+ with col1:
1001
+ st.metric("Average Risk Score", f"{df['Risk Score'].mean():.2f}",
1002
+ delta=f"{(df['Risk Score'].iloc[-1] - df['Risk Score'].iloc[0]):.2f}")
1003
+ with col2:
1004
+ st.metric("Assessments", len(df), delta="↑2 from last month")
1005
+ with col3:
1006
+ st.metric("Critical Alerts", len(df[df['Status'] == 'Critical']),
1007
+ delta="-1 from last month")
1008
+
1009
+ with tab2:
1010
+ # Add search and filter options
1011
+ search = st.text_input("Search records...")
1012
+ filtered_df = df[df.astype(str).apply(lambda x: x.str.contains(search, case=False)).any(axis=1)]
1013
+
1014
+ # Display detailed records with styling
1015
+ st.dataframe(
1016
+ filtered_df.style.apply(lambda x: ['background-color: #ffcccc' if v == 'Critical'
1017
+ else 'background-color: #ffffcc' if v == 'Warning'
1018
+ else '' for v in x], subset=['Status'])
1019
+ )
1020
+
1021
+ def export_report():
1022
+ """Generate and export comprehensive assessment report"""
1023
+ st.markdown("### 📄 Export Assessment Report")
1024
+
1025
+ # Report configuration
1026
+ col1, col2 = st.columns(2)
1027
+ with col1:
1028
+ report_format = st.selectbox(
1029
+ "Report Format",
1030
+ ["PDF", "CSV", "JSON", "Excel"]
1031
+ )
1032
+ include_graphs = st.checkbox("Include Visualizations", value=True)
1033
+ with col2:
1034
+ report_type = st.selectbox(
1035
+ "Report Type",
1036
+ ["Summary", "Detailed", "Technical"]
1037
+ )
1038
+ include_recommendations = st.checkbox("Include Recommendations", value=True)
1039
+
1040
+ # Generate report
1041
+ if st.button("Generate Report", type="primary"):
1042
+ with st.spinner("Generating comprehensive report..."):
1043
+ # Simulate report generation
1044
+ progress_bar = st.progress(0)
1045
+ for i in range(100):
1046
+ time.sleep(0.01)
1047
+ progress_bar.progress(i + 1)
1048
+
1049
+ # Show success message
1050
+ st.success(f"Report generated successfully in {report_format} format!")
1051
+
1052
+ # Provide download option
1053
+ if report_format == "PDF":
1054
+ mime = "application/pdf"
1055
+ elif report_format == "CSV":
1056
+ mime = "text/csv"
1057
+ elif report_format == "JSON":
1058
+ mime = "application/json"
1059
+ else:
1060
+ mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
1061
+
1062
+ st.download_button(
1063
+ label=f"📥 Download {report_format} Report",
1064
+ data=b"Sample report data", # Replace with actual report generation
1065
+ file_name=f"medical_report_{datetime.now().strftime('%Y%m%d')}_{report_type.lower()}.{report_format.lower()}",
1066
+ mime=mime,
1067
+ key="download_report"
1068
+ )
1069
+
1070
+ def show_risk_factors_analysis():
1071
+ """Display comprehensive risk factors analysis with interactive elements"""
1072
+ st.markdown("### 🔍 Risk Factors Analysis")
1073
+
1074
+ # Create tabs for different analyses
1075
+ tab1, tab2 = st.tabs(["📊 Risk Factor Impact", "🔄 Correlation Analysis"])
1076
+
1077
+ with tab1:
1078
+ # Mock data
1079
+ risk_factors = {
1080
+ 'Factor': ['Age', 'BMI', 'Blood Pressure', 'Glucose Level', 'Family History',
1081
+ 'Smoking', 'Physical Activity', 'Diet', 'Stress Level'],
1082
+ 'Impact': [0.8, 0.6, 0.7, 0.9, 0.5, 0.65, 0.55, 0.45, 0.75],
1083
+ 'Category': ['Demographics', 'Physical', 'Physical', 'Medical', 'Medical',
1084
+ 'Lifestyle', 'Lifestyle', 'Lifestyle', 'Lifestyle']
1085
+ }
1086
+ df = pd.DataFrame(risk_factors)
1087
+
1088
+ # Add category filter
1089
+ categories = ['All'] + list(df['Category'].unique())
1090
+ selected_category = st.selectbox("Filter by Category", categories)
1091
+
1092
+ if selected_category != 'All':
1093
+ df_filtered = df[df['Category'] == selected_category]
1094
+ else:
1095
+ df_filtered = df
1096
+
1097
+ # Create interactive bar chart
1098
+ fig = px.bar(df_filtered, x='Factor', y='Impact', color='Category',
1099
+ title='Risk Factors Impact Analysis',
1100
+ labels={'Impact': 'Impact Score (0-1)'})
1101
+ st.plotly_chart(fig, use_container_width=True)
1102
+
1103
+ with tab2:
1104
+ # Create correlation matrix visualization
1105
+ correlation_data = np.random.rand(len(df), len(df))
1106
+ fig = px.imshow(correlation_data,
1107
+ labels=dict(x="Risk Factors", y="Risk Factors"),
1108
+ x=df['Factor'],
1109
+ y=df['Factor'],
1110
+ title="Risk Factors Correlation Matrix")
1111
+ st.plotly_chart(fig, use_container_width=True)
1112
+
1113
+ def show_recommendations():
1114
+ """Display personalized health recommendations with interactive elements"""
1115
+ st.markdown("### 💡 Personalized Recommendations")
1116
+
1117
+ # Add risk profile selector
1118
+ risk_profile = st.select_slider(
1119
+ "Risk Profile",
1120
+ options=["Low", "Moderate", "High"],
1121
+ value="Moderate"
1122
+ )
1123
+
1124
+ # Recommendations based on risk profile
1125
+ recommendations = {
1126
+ "Lifestyle Changes": {
1127
+ "Low": [
1128
+ "Maintain regular exercise routine",
1129
+ "Continue balanced diet",
1130
+ "Regular sleep schedule"
1131
+ ],
1132
+ "Moderate": [
1133
+ "Increase exercise to 45 minutes daily",
1134
+ "Reduce processed food intake",
1135
+ "Improve sleep quality"
1136
+ ],
1137
+ "High": [
1138
+ "Structured exercise program with supervision",
1139
+ "Strict dietary guidelines",
1140
+ "Sleep monitoring and improvement"
1141
+ ]
1142
+ },
1143
+ "Medical Follow-up": {
1144
+ "Low": [
1145
+ "Annual check-ups",
1146
+ "Regular blood pressure monitoring",
1147
+ "Basic health screenings"
1148
+ ],
1149
+ "Moderate": [
1150
+ "Semi-annual check-ups",
1151
+ "Monthly blood pressure monitoring",
1152
+ "Comprehensive screenings"
1153
+ ],
1154
+ "High": [
1155
+ "Quarterly check-ups",
1156
+ "Weekly blood pressure monitoring",
1157
+ "Advanced health screenings"
1158
+ ]
1159
+ },
1160
+ "Risk Management": {
1161
+ "Low": [
1162
+ "Basic health monitoring",
1163
+ "Stress management awareness",
1164
+ "General health education"
1165
+ ],
1166
+ "Moderate": [
1167
+ "Regular health monitoring",
1168
+ "Active stress management",
1169
+ "Specific health education"
1170
+ ],
1171
+ "High": [
1172
+ "Intensive health monitoring",
1173
+ "Professional stress management",
1174
+ "Specialized health education"
1175
+ ]
1176
+ }
1177
+ }
1178
+
1179
+ # Display recommendations with expandable sections
1180
+ for category, risk_levels in recommendations.items():
1181
+ with st.expander(f"📌 {category}", expanded=True):
1182
+ for item in risk_levels[risk_profile]:
1183
+ st.markdown(f"• {item}")
1184
+
1185
+ # Add progress tracking
1186
+ if st.checkbox(f"Track {category.lower()} progress", key=category):
1187
+ st.slider(f"{category} Adherence", 0, 100, 50, key=f"adherence_{category}")
1188
+ st.progress(50)
1189
+
1190
+ def show_trends_analysis():
1191
+ """Display comprehensive health trends analysis"""
1192
+ st.markdown("### 📊 Health Trends Analysis")
1193
+
1194
+ # Date range selector
1195
+ col1, col2 = st.columns(2)
1196
+ with col1:
1197
+ start_date = st.date_input("Start Date", value=datetime(2024, 1, 1), key="trends_start")
1198
+ with col2:
1199
+ end_date = st.date_input("End Date", value=datetime.now(), key="trends_end")
1200
+
1201
+ # Mock data
1202
+ dates = pd.date_range(start='2024-01-01', end='2024-04-01', freq='D')
1203
+ trends_data = {
1204
+ 'Date': dates,
1205
+ 'Blood Pressure': np.random.normal(120, 5, len(dates)),
1206
+ 'Glucose Level': np.random.normal(100, 3, len(dates)),
1207
+ 'BMI': np.random.normal(25, 0.5, len(dates)),
1208
+ 'Cholesterol': np.random.normal(180, 10, len(dates)),
1209
+ 'Heart Rate': np.random.normal(75, 3, len(dates))
1210
+ }
1211
+ df = pd.DataFrame(trends_data)
1212
+
1213
+ # Metric selector
1214
+ metrics = list(df.columns[1:])
1215
+ selected_metrics = st.multiselect("Select metrics to analyze", metrics, default=[metrics[0]])
1216
+
1217
+ if selected_metrics:
1218
+ # Create interactive line chart
1219
+ fig = px.line(df, x='Date', y=selected_metrics,
1220
+ title='Health Metrics Trends Over Time')
1221
+ fig.update_layout(height=400)
1222
+ st.plotly_chart(fig, use_container_width=True)
1223
+
1224
+ # Add statistical analysis
1225
+ st.markdown("#### Statistical Analysis")
1226
+ col1, col2, col3 = st.columns(3)
1227
+ for metric in selected_metrics:
1228
+ with col1:
1229
+ st.metric(f"{metric} Average",
1230
+ f"{df[metric].mean():.1f}",
1231
+ delta=f"{df[metric].iloc[-1] - df[metric].iloc[0]:.1f}")
1232
+ with col2:
1233
+ st.metric(f"{metric} Min",
1234
+ f"{df[metric].min():.1f}")
1235
+ with col3:
1236
+ st.metric(f"{metric} Max",
1237
+ f"{df[metric].max():.1f}")
1238
+
1239
+ def compare_assessments():
1240
+ """Compare different assessment results"""
1241
+ st.markdown("### 🔄 Compare Assessments")
1242
+
1243
+ col1, col2 = st.columns(2)
1244
+
1245
+ with col1:
1246
+ st.markdown("#### Previous Assessment")
1247
+ st.metric(label="Risk Score", value="75%", delta="-15%")
1248
+ st.date_input("Assessment Date", value=datetime(2024, 1, 1))
1249
+
1250
+ with col2:
1251
+ st.markdown("#### Current Assessment")
1252
+ st.metric(label="Risk Score", value="60%", delta="-5%")
1253
+ st.date_input("Assessment Date", value=datetime.now())
1254
+
1255
+ def main():
1256
+ # Initialize session state if not exists
1257
+ if "page" not in st.session_state:
1258
+ st.session_state.page = "Home"
1259
+
1260
+ # Sidebar
1261
+ with st.sidebar:
1262
+ st.image("https://img.icons8.com/color/96/000000/hospital-2.png", width=100)
1263
+ st.title("Medical AI Assistant")
1264
+ st.caption("v1.0.0")
1265
+
1266
+ # Navigation
1267
+ pages = {
1268
+ "🏠 Home": "Home",
1269
+ "🔬 Breast Cancer": "Breast Cancer",
1270
+ "🩺 Diabetes": "Diabetes",
1271
+ "❤️ Heart Disease": "Heart Disease",
1272
+ "🧠 Parkinson's Disease": "Parkinson's Disease"
1273
+ }
1274
+
1275
+ # Get current page index
1276
+ current_page = st.session_state.page
1277
+ current_key = next(k for k, v in pages.items() if v == current_page)
1278
+
1279
+ # Navigation radio buttons
1280
+ selected = st.radio(
1281
+ "🧭 Navigation",
1282
+ list(pages.keys()),
1283
+ index=list(pages.keys()).index(current_key)
1284
+ )
1285
+
1286
+ # Update page when selection changes
1287
+ if pages[selected] != st.session_state.page:
1288
+ st.session_state.page = pages[selected]
1289
+
1290
+ # Main content routing
1291
+ try:
1292
+ if st.session_state.page == "Home":
1293
+ home_page()
1294
+ elif st.session_state.page == "Breast Cancer":
1295
+ breast_cancer_prediction()
1296
+ elif st.session_state.page == "Diabetes":
1297
+ diabetes_prediction()
1298
+ elif st.session_state.page == "Heart Disease":
1299
+ heart_disease_prediction()
1300
+ elif st.session_state.page == "Parkinson's Disease":
1301
+ parkinsons_prediction()
1302
+ except Exception as e:
1303
+ st.error(f"Error loading page: {str(e)}")
1304
+ st.session_state.page = "Home"
1305
+
1306
+ if __name__ == "__main__":
1307
+ main()
check_setup.py ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+
3
+ def check_project_setup():
4
+ # Check directory structure
5
+ directories = ['app', 'models', 'src', 'data']
6
+ for dir in directories:
7
+ if not os.path.exists(dir):
8
+ print(f"Missing directory: {dir}")
9
+ os.makedirs(dir)
10
+ print(f"Created directory: {dir}")
11
+
12
+ # Check required files
13
+ required_files = [
14
+ 'app/streamlit_app.py',
15
+ 'src/config.py',
16
+ 'src/data_preprocessing.py',
17
+ 'src/model.py',
18
+ 'src/__init__.py',
19
+ 'train_model.py'
20
+ ]
21
+
22
+ for file in required_files:
23
+ if not os.path.exists(file):
24
+ print(f"Missing file: {file}")
25
+ else:
26
+ print(f"Found file: {file}")
27
+
28
+ # Check if model exists
29
+ if not os.path.exists('models/breast_cancer_model.pkl'):
30
+ print("Model file not found. Please run train_model.py first")
31
+ else:
32
+ print("Model file found")
33
+
34
+ if __name__ == "__main__":
35
+ check_project_setup()
datasets/data.csv ADDED
The diff for this file is too large to render. See raw diff
 
datasets/diabetes.csv ADDED
@@ -0,0 +1,769 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
datasets/heart.csv ADDED
@@ -0,0 +1,1026 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ age,sex,cp,trestbps,chol,fbs,restecg,thalach,exang,oldpeak,slope,ca,thal,target
2
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
3
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
4
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
5
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
6
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
7
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
8
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
9
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
10
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
11
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
12
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
13
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
14
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
15
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
16
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
17
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
18
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
19
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
20
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
21
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
22
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
23
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
24
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
25
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
26
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
27
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
28
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
29
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
30
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
31
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
32
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
33
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
34
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
35
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
36
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
37
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
38
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
39
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
40
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
41
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
42
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
43
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
44
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
45
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
46
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
47
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
48
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
49
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
50
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
51
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
52
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
53
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
54
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
55
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
56
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
57
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
58
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
59
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
60
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
61
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
62
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
63
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
64
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
65
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
66
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
67
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
68
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
69
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
70
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
71
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
72
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
73
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
74
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
75
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
76
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
77
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
78
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
79
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
80
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
81
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
82
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
83
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
84
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
85
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
86
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
87
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
88
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
89
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
90
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
91
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
92
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
93
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
94
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
95
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
96
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
97
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
98
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
99
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
100
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
101
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
102
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
103
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
104
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
105
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
106
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
107
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
108
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
109
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
110
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
111
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
112
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
113
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
114
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
115
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
116
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
117
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
118
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
119
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
120
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
121
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
122
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
123
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
124
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
125
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
126
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
127
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
128
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
129
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
130
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
131
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
132
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
133
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
134
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
135
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
136
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
137
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
138
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
139
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
140
+ 47,1,2,138,257,0,0,156,0,0,2,0,2,1
141
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
142
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
143
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
144
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
145
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
146
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
147
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
148
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
149
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
150
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
151
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
152
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
153
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
154
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
155
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
156
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
157
+ 54,1,1,108,309,0,1,156,0,0,2,0,3,1
158
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
159
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
160
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
161
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
162
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
163
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
164
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
165
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
166
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
167
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
168
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
169
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
170
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
171
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
172
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
173
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
174
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
175
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
176
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
177
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
178
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
179
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
180
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
181
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
182
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
183
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
184
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
185
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
186
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
187
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
188
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
189
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
190
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
191
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
192
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
193
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
194
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
195
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
196
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
197
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
198
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
199
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
200
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
201
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
202
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
203
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
204
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
205
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
206
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
207
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
208
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
209
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
210
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
211
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
212
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
213
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
214
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
215
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
216
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
217
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
218
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
219
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
220
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
221
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
222
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
223
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
224
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
225
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
226
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
227
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
228
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
229
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
230
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
231
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
232
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
233
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
234
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
235
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
236
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
237
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
238
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
239
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
240
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
241
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
242
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
243
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
244
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
245
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
246
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
247
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
248
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
249
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
250
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
251
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
252
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
253
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
254
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
255
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
256
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
257
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
258
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
259
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
260
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
261
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
262
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
263
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
264
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
265
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
266
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
267
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
268
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
269
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
270
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
271
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
272
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
273
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
274
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
275
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
276
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
277
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
278
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
279
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
280
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
281
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
282
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
283
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
284
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
285
+ 64,1,3,110,211,0,0,144,1,1.8,1,0,2,1
286
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
287
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
288
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
289
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
290
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
291
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
292
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
293
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
294
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
295
+ 59,1,2,150,212,1,1,157,0,1.6,2,0,2,1
296
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
297
+ 67,1,0,100,299,0,0,125,1,0.9,1,2,2,0
298
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
299
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
300
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
301
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
302
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
303
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
304
+ 55,0,1,132,342,0,1,166,0,1.2,2,0,2,1
305
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
306
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
307
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
308
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
309
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
310
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
311
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
312
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
313
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
314
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
315
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
316
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
317
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
318
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
319
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
320
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
321
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
322
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
323
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
324
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
325
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
326
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
327
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
328
+ 54,1,1,192,283,0,0,195,0,0,2,1,3,0
329
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
330
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
331
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
332
+ 37,0,2,120,215,0,1,170,0,0,2,0,2,1
333
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
334
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
335
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
336
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
337
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
338
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
339
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
340
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
341
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
342
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
343
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
344
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
345
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
346
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
347
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
348
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
349
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
350
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
351
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
352
+ 66,1,0,120,302,0,0,151,0,0.4,1,0,2,1
353
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
354
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
355
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
356
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
357
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
358
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
359
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
360
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
361
+ 53,0,2,128,216,0,0,115,0,0,2,0,0,1
362
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
363
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
364
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
365
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
366
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
367
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
368
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
369
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
370
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
371
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
372
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
373
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
374
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
375
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
376
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
377
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
378
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
379
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
380
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
381
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
382
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
383
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
384
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
385
+ 58,1,0,150,270,0,0,111,1,0.8,2,0,3,0
386
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
387
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
388
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
389
+ 77,1,0,125,304,0,0,162,1,0,2,3,2,0
390
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
391
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
392
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
393
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
394
+ 51,1,2,110,175,0,1,123,0,0.6,2,0,2,1
395
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
396
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
397
+ 66,0,2,146,278,0,0,152,0,0,1,1,2,1
398
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
399
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
400
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
401
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
402
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
403
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
404
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
405
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
406
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
407
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
408
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
409
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
410
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
411
+ 46,1,2,150,231,0,1,147,0,3.6,1,0,2,0
412
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
413
+ 56,1,0,125,249,1,0,144,1,1.2,1,1,2,0
414
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
415
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
416
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
417
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
418
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
419
+ 52,1,2,138,223,0,1,169,0,0,2,4,2,1
420
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
421
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
422
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
423
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
424
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
425
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
426
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
427
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
428
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
429
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
430
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
431
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
432
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
433
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
434
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
435
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
436
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
437
+ 57,0,0,120,354,0,1,163,1,0.6,2,0,2,1
438
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
439
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
440
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
441
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
442
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
443
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
444
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
445
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
446
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
447
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
448
+ 53,1,2,130,246,1,0,173,0,0,2,3,2,1
449
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
450
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
451
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
452
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
453
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
454
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
455
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
456
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
457
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
458
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
459
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
460
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
461
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
462
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
463
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
464
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
465
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
466
+ 67,0,2,115,564,0,0,160,0,1.6,1,0,3,1
467
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
468
+ 44,1,1,130,219,0,0,188,0,0,2,0,2,1
469
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
470
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
471
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
472
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
473
+ 64,0,2,140,313,0,1,133,0,0.2,2,0,3,1
474
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
475
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
476
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
477
+ 57,1,2,150,126,1,1,173,0,0.2,2,1,3,1
478
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
479
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
480
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
481
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
482
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
483
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
484
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
485
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
486
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
487
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
488
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
489
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
490
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
491
+ 61,1,2,150,243,1,1,137,1,1,1,0,2,1
492
+ 57,0,0,128,303,0,0,159,0,0,2,1,2,1
493
+ 57,1,2,150,168,0,1,174,0,1.6,2,0,2,1
494
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
495
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
496
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
497
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
498
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
499
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
500
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
501
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
502
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
503
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
504
+ 46,0,2,142,177,0,0,160,1,1.4,0,0,2,1
505
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
506
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
507
+ 44,0,2,118,242,0,1,149,0,0.3,1,1,2,1
508
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
509
+ 41,0,1,130,204,0,0,172,0,1.4,2,0,2,1
510
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
511
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
512
+ 54,0,1,132,288,1,0,159,1,0,2,1,2,1
513
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
514
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
515
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
516
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
517
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
518
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
519
+ 41,0,1,105,198,0,1,168,0,0,2,1,2,1
520
+ 49,1,2,120,188,0,1,139,0,2,1,3,3,0
521
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
522
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
523
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
524
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
525
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
526
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
527
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
528
+ 62,0,0,160,164,0,0,145,0,6.2,0,3,3,0
529
+ 62,0,0,124,209,0,1,163,0,0,2,0,2,1
530
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
531
+ 69,1,3,160,234,1,0,131,0,0.1,1,1,2,1
532
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
533
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
534
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
535
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
536
+ 54,0,2,108,267,0,0,167,0,0,2,0,2,1
537
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
538
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
539
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
540
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
541
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
542
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
543
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
544
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
545
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
546
+ 54,1,2,125,273,0,0,152,0,0.5,0,1,2,1
547
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
548
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
549
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
550
+ 51,0,2,120,295,0,0,157,0,0.6,2,0,2,1
551
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
552
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
553
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
554
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
555
+ 53,1,2,130,197,1,0,152,0,1.2,0,0,2,1
556
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
557
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
558
+ 59,1,0,140,177,0,1,162,1,0,2,1,3,0
559
+ 48,1,0,122,222,0,0,186,0,0,2,0,2,1
560
+ 39,0,2,94,199,0,1,179,0,0,2,0,2,1
561
+ 67,1,0,120,237,0,1,71,0,1,1,0,2,0
562
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
563
+ 65,0,2,155,269,0,1,148,0,0.8,2,0,2,1
564
+ 42,0,2,120,209,0,1,173,0,0,1,0,2,1
565
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
566
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
567
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
568
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
569
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
570
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
571
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
572
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
573
+ 60,1,0,145,282,0,0,142,1,2.8,1,2,3,0
574
+ 34,1,3,118,182,0,0,174,0,0,2,0,2,1
575
+ 44,1,0,112,290,0,0,153,0,0,2,1,2,0
576
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
577
+ 43,1,0,150,247,0,1,171,0,1.5,2,0,2,1
578
+ 52,1,3,152,298,1,1,178,0,1.2,1,0,3,1
579
+ 70,1,0,130,322,0,0,109,0,2.4,1,3,2,0
580
+ 62,0,0,140,394,0,0,157,0,1.2,1,0,2,1
581
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
582
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
583
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
584
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
585
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
586
+ 55,1,0,132,353,0,1,132,1,1.2,1,1,3,0
587
+ 40,1,3,140,199,0,1,178,1,1.4,2,0,3,1
588
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
589
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
590
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
591
+ 54,1,0,122,286,0,0,116,1,3.2,1,2,2,0
592
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
593
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
594
+ 70,1,2,160,269,0,1,112,1,2.9,1,1,3,0
595
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
596
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
597
+ 61,1,0,148,203,0,1,161,0,0,2,1,3,0
598
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
599
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
600
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
601
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
602
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
603
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
604
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
605
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
606
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
607
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
608
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
609
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
610
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
611
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
612
+ 43,0,0,132,341,1,0,136,1,3,1,0,3,0
613
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
614
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
615
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
616
+ 51,0,0,130,305,0,1,142,1,1.2,1,0,3,0
617
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
618
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
619
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
620
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
621
+ 65,1,0,110,248,0,0,158,0,0.6,2,2,1,0
622
+ 57,1,0,152,274,0,1,88,1,1.2,1,1,3,0
623
+ 48,1,0,130,256,1,0,150,1,0,2,2,3,0
624
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
625
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
626
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
627
+ 69,1,2,140,254,0,0,146,0,2,1,3,3,0
628
+ 58,1,2,132,224,0,0,173,0,3.2,2,2,3,0
629
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
630
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
631
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
632
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
633
+ 49,1,1,130,266,0,1,171,0,0.6,2,0,2,1
634
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
635
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
636
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
637
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
638
+ 59,0,0,174,249,0,1,143,1,0,1,0,2,0
639
+ 58,0,2,120,340,0,1,172,0,0,2,0,2,1
640
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
641
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
642
+ 46,0,0,138,243,0,0,152,1,0,1,0,2,1
643
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
644
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
645
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
646
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
647
+ 50,1,0,150,243,0,0,128,0,2.6,1,0,3,0
648
+ 47,1,2,108,243,0,1,152,0,0,2,0,2,0
649
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
650
+ 71,0,0,112,149,0,1,125,0,1.6,1,0,2,1
651
+ 45,0,1,130,234,0,0,175,0,0.6,1,0,2,1
652
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
653
+ 41,1,1,120,157,0,1,182,0,0,2,0,2,1
654
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
655
+ 56,1,0,130,283,1,0,103,1,1.6,0,0,3,0
656
+ 41,0,1,126,306,0,1,163,0,0,2,0,2,1
657
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
658
+ 57,0,1,130,236,0,0,174,0,0,1,1,2,0
659
+ 39,0,2,138,220,0,1,152,0,0,1,0,2,1
660
+ 64,1,2,125,309,0,1,131,1,1.8,1,0,3,0
661
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
662
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
663
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
664
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
665
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
666
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
667
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
668
+ 35,1,1,122,192,0,1,174,0,0,2,0,2,1
669
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
670
+ 29,1,1,130,204,0,0,202,0,0,2,0,2,1
671
+ 66,1,1,160,246,0,1,120,1,0,1,3,1,0
672
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
673
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
674
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
675
+ 54,1,2,120,258,0,0,147,0,0.4,1,0,3,1
676
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
677
+ 58,1,0,100,234,0,1,156,0,0.1,2,1,3,0
678
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
679
+ 63,1,0,130,254,0,0,147,0,1.4,1,1,3,0
680
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
681
+ 68,1,2,180,274,1,0,150,1,1.6,1,0,3,0
682
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
683
+ 59,1,0,170,326,0,0,140,1,3.4,0,0,3,0
684
+ 59,1,0,164,176,1,0,90,0,1,1,2,1,0
685
+ 43,1,0,120,177,0,0,120,1,2.5,1,0,3,0
686
+ 60,1,2,140,185,0,0,155,0,3,1,0,2,0
687
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
688
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
689
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
690
+ 56,0,0,200,288,1,0,133,1,4,0,2,3,0
691
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
692
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
693
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
694
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
695
+ 63,0,1,140,195,0,1,179,0,0,2,2,2,1
696
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
697
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
698
+ 50,0,2,120,219,0,1,158,0,1.6,1,0,2,1
699
+ 67,1,2,152,212,0,0,150,0,0.8,1,0,3,0
700
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
701
+ 35,1,0,126,282,0,0,156,1,0,2,0,3,0
702
+ 41,1,2,130,214,0,0,168,0,2,1,0,2,1
703
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
704
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
705
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
706
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
707
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
708
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
709
+ 56,0,1,140,294,0,0,153,0,1.3,1,0,2,1
710
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
711
+ 45,1,3,110,264,0,1,132,0,1.2,1,0,3,0
712
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
713
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
714
+ 45,0,1,112,160,0,1,138,0,0,1,0,2,1
715
+ 66,0,3,150,226,0,1,114,0,2.6,0,0,2,1
716
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
717
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
718
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
719
+ 56,1,2,130,256,1,0,142,1,0.6,1,1,1,0
720
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
721
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
722
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
723
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
724
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
725
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
726
+ 74,0,1,120,269,0,0,121,1,0.2,2,1,2,1
727
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
728
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
729
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
730
+ 46,1,0,140,311,0,1,120,1,1.8,1,2,3,0
731
+ 55,0,1,135,250,0,0,161,0,1.4,1,0,2,1
732
+ 44,1,1,120,220,0,1,170,0,0,2,0,2,1
733
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
734
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
735
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
736
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
737
+ 50,1,2,129,196,0,1,163,0,0,2,0,2,1
738
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
739
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
740
+ 58,1,0,125,300,0,0,171,0,0,2,2,3,0
741
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
742
+ 44,1,2,140,235,0,0,180,0,0,2,0,2,1
743
+ 41,0,2,112,268,0,0,172,1,0,2,0,2,1
744
+ 63,1,0,130,330,1,0,132,1,1.8,2,3,3,0
745
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
746
+ 60,0,2,102,318,0,1,160,0,0,2,1,2,1
747
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
748
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
749
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
750
+ 44,1,2,120,226,0,1,169,0,0,2,0,2,1
751
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
752
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
753
+ 65,0,2,160,360,0,0,151,0,0.8,2,0,2,1
754
+ 48,1,1,130,245,0,0,180,0,0.2,1,0,2,1
755
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
756
+ 51,0,2,130,256,0,0,149,0,0.5,2,0,2,1
757
+ 48,1,2,124,255,1,1,175,0,0,2,2,2,1
758
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
759
+ 66,1,0,160,228,0,0,138,0,2.3,2,0,1,1
760
+ 46,0,1,105,204,0,1,172,0,0,2,0,2,1
761
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
762
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
763
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
764
+ 56,1,1,130,221,0,0,163,0,0,2,0,3,1
765
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
766
+ 63,1,0,140,187,0,0,144,1,4,2,2,3,0
767
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
768
+ 57,1,0,110,335,0,1,143,1,3,1,1,3,0
769
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
770
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
771
+ 71,0,2,110,265,1,0,130,0,0,2,1,2,1
772
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
773
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
774
+ 62,0,0,150,244,0,1,154,1,1.4,1,0,2,0
775
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
776
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
777
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
778
+ 61,0,0,145,307,0,0,146,1,1,1,0,3,0
779
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
780
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
781
+ 34,0,1,118,210,0,1,192,0,0.7,2,0,2,1
782
+ 44,1,0,120,169,0,1,144,1,2.8,0,0,1,0
783
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
784
+ 64,0,0,130,303,0,1,122,0,2,1,2,2,1
785
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
786
+ 54,1,2,150,232,0,0,165,0,1.6,2,0,3,1
787
+ 55,1,0,160,289,0,0,145,1,0.8,1,1,3,0
788
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
789
+ 51,1,0,140,298,0,1,122,1,4.2,1,3,3,0
790
+ 62,0,0,138,294,1,1,106,0,1.9,1,3,2,0
791
+ 62,1,1,120,281,0,0,103,0,1.4,1,1,3,0
792
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
793
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
794
+ 68,1,0,144,193,1,1,141,0,3.4,1,2,3,0
795
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
796
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
797
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
798
+ 41,1,1,135,203,0,1,132,0,0,1,0,1,1
799
+ 65,0,0,150,225,0,0,114,0,1,1,3,3,0
800
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
801
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
802
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
803
+ 63,1,3,145,233,1,0,150,0,2.3,0,0,1,1
804
+ 63,0,0,124,197,0,1,136,1,0,1,0,2,0
805
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
806
+ 58,0,0,130,197,0,1,131,0,0.6,1,0,2,1
807
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
808
+ 57,1,0,150,276,0,0,112,1,0.6,1,1,1,0
809
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
810
+ 51,1,2,94,227,0,1,154,1,0,2,1,3,1
811
+ 54,0,2,110,214,0,1,158,0,1.6,1,0,2,1
812
+ 40,1,0,110,167,0,0,114,1,2,1,0,3,0
813
+ 57,1,1,124,261,0,1,141,0,0.3,2,0,3,0
814
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
815
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
816
+ 62,1,1,128,208,1,0,140,0,0,2,0,2,1
817
+ 58,1,2,105,240,0,0,154,1,0.6,1,0,3,1
818
+ 70,1,1,156,245,0,0,143,0,0,2,0,2,1
819
+ 45,1,0,115,260,0,0,185,0,0,2,0,2,1
820
+ 42,1,3,148,244,0,0,178,0,0.8,2,2,2,1
821
+ 58,0,0,170,225,1,0,146,1,2.8,1,2,1,0
822
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
823
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
824
+ 60,1,0,130,253,0,1,144,1,1.4,2,1,3,0
825
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
826
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
827
+ 63,0,2,135,252,0,0,172,0,0,2,0,2,1
828
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
829
+ 57,1,2,128,229,0,0,150,0,0.4,1,1,3,0
830
+ 44,1,2,130,233,0,1,179,1,0.4,2,0,2,1
831
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
832
+ 51,1,2,100,222,0,1,143,1,1.2,1,0,2,1
833
+ 58,1,1,125,220,0,1,144,0,0.4,1,4,3,1
834
+ 68,1,2,118,277,0,1,151,0,1,2,1,3,1
835
+ 55,1,0,140,217,0,1,111,1,5.6,0,0,3,0
836
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
837
+ 49,1,2,118,149,0,0,126,0,0.8,2,3,2,0
838
+ 53,0,0,138,234,0,0,160,0,0,2,0,2,1
839
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
840
+ 51,1,3,125,213,0,0,125,1,1.4,2,1,2,1
841
+ 51,1,0,140,261,0,0,186,1,0,2,0,2,1
842
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
843
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
844
+ 58,1,2,112,230,0,0,165,0,2.5,1,1,3,0
845
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
846
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
847
+ 56,1,0,132,184,0,0,105,1,2.1,1,1,1,0
848
+ 35,0,0,138,183,0,1,182,0,1.4,2,0,2,1
849
+ 61,1,0,138,166,0,0,125,1,3.6,1,1,2,0
850
+ 58,0,3,150,283,1,0,162,0,1,2,0,2,1
851
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
852
+ 58,1,1,120,284,0,0,160,0,1.8,1,0,2,0
853
+ 37,1,2,130,250,0,1,187,0,3.5,0,0,2,1
854
+ 52,1,0,128,255,0,1,161,1,0,2,1,3,0
855
+ 67,1,0,120,229,0,0,129,1,2.6,1,2,3,0
856
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
857
+ 46,1,1,101,197,1,1,156,0,0,2,0,3,1
858
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
859
+ 43,1,0,115,303,0,1,181,0,1.2,1,0,2,1
860
+ 68,0,2,120,211,0,0,115,0,1.5,1,0,2,1
861
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
862
+ 52,1,0,112,230,0,1,160,0,0,2,1,2,0
863
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
864
+ 59,1,3,170,288,0,0,159,0,0.2,1,0,3,0
865
+ 52,1,0,125,212,0,1,168,0,1,2,2,3,0
866
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
867
+ 60,0,3,150,240,0,1,171,0,0.9,2,0,2,1
868
+ 41,1,2,112,250,0,1,179,0,0,2,0,2,1
869
+ 41,1,1,110,235,0,1,153,0,0,2,0,2,1
870
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
871
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
872
+ 48,0,2,130,275,0,1,139,0,0.2,2,0,2,1
873
+ 39,1,2,140,321,0,0,182,0,0,2,0,2,1
874
+ 64,1,3,170,227,0,0,155,0,0.6,1,0,3,1
875
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
876
+ 59,1,3,160,273,0,0,125,0,0,2,0,2,0
877
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
878
+ 61,1,0,140,207,0,0,138,1,1.9,2,1,3,0
879
+ 43,0,2,122,213,0,1,165,0,0.2,1,0,2,1
880
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
881
+ 59,1,0,138,271,0,0,182,0,0,2,0,2,1
882
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
883
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
884
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
885
+ 48,1,0,124,274,0,0,166,0,0.5,1,0,3,0
886
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
887
+ 57,1,0,165,289,1,0,124,0,1,1,3,3,0
888
+ 61,1,0,120,260,0,1,140,1,3.6,1,1,3,0
889
+ 57,1,0,110,201,0,1,126,1,1.5,1,0,1,1
890
+ 60,0,0,150,258,0,0,157,0,2.6,1,2,3,0
891
+ 63,0,0,150,407,0,0,154,0,4,1,3,3,0
892
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
893
+ 64,0,0,180,325,0,1,154,1,0,2,0,2,1
894
+ 54,1,0,110,239,0,1,126,1,2.8,1,1,3,0
895
+ 52,1,0,128,204,1,1,156,1,1,1,0,0,0
896
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
897
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
898
+ 59,1,3,178,270,0,0,145,0,4.2,0,0,3,1
899
+ 52,1,1,134,201,0,1,158,0,0.8,2,1,2,1
900
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
901
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
902
+ 61,1,3,134,234,0,1,145,0,2.6,1,2,2,0
903
+ 42,0,0,102,265,0,0,122,0,0.6,1,0,2,1
904
+ 62,0,0,140,268,0,0,160,0,3.6,0,2,2,0
905
+ 59,1,2,126,218,1,1,134,0,2.2,1,1,1,0
906
+ 55,1,1,130,262,0,1,155,0,0,2,0,2,1
907
+ 64,1,0,120,246,0,0,96,1,2.2,0,1,2,0
908
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
909
+ 50,0,1,120,244,0,1,162,0,1.1,2,0,2,1
910
+ 62,1,0,120,267,0,1,99,1,1.8,1,2,3,0
911
+ 50,1,0,144,200,0,0,126,1,0.9,1,0,3,0
912
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
913
+ 58,0,1,136,319,1,0,152,0,0,2,2,2,0
914
+ 35,1,0,120,198,0,1,130,1,1.6,1,0,3,0
915
+ 45,1,0,104,208,0,0,148,1,3,1,0,2,1
916
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
917
+ 46,1,0,120,249,0,0,144,0,0.8,2,0,3,0
918
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
919
+ 47,1,2,130,253,0,1,179,0,0,2,0,2,1
920
+ 59,1,3,134,204,0,1,162,0,0.8,2,2,2,0
921
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
922
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
923
+ 58,1,0,146,218,0,1,105,0,2,1,1,3,0
924
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
925
+ 54,1,0,140,239,0,1,160,0,1.2,2,0,2,1
926
+ 61,0,0,130,330,0,0,169,0,0,2,0,2,0
927
+ 57,1,0,130,131,0,1,115,1,1.2,1,1,3,0
928
+ 54,1,0,110,206,0,0,108,1,0,1,1,2,0
929
+ 42,1,2,120,240,1,1,194,0,0.8,0,0,3,1
930
+ 54,1,0,124,266,0,0,109,1,2.2,1,1,3,0
931
+ 60,1,0,130,206,0,0,132,1,2.4,1,2,3,0
932
+ 65,1,0,135,254,0,0,127,0,2.8,1,1,3,0
933
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
934
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
935
+ 38,1,3,120,231,0,1,182,1,3.8,1,0,3,0
936
+ 42,1,2,130,180,0,1,150,0,0,2,0,2,1
937
+ 56,1,1,120,240,0,1,169,0,0,0,0,2,1
938
+ 43,1,2,130,315,0,1,162,0,1.9,2,1,2,1
939
+ 64,1,2,140,335,0,1,158,0,0,2,0,2,0
940
+ 53,1,0,142,226,0,0,111,1,0,2,0,3,1
941
+ 49,0,1,134,271,0,1,162,0,0,1,0,2,1
942
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
943
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
944
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
945
+ 65,1,0,120,177,0,1,140,0,0.4,2,0,3,1
946
+ 66,0,0,178,228,1,1,165,1,1,1,2,3,0
947
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
948
+ 67,0,2,152,277,0,1,172,0,0,2,1,2,1
949
+ 54,0,2,160,201,0,1,163,0,0,2,1,2,1
950
+ 70,1,0,145,174,0,1,125,1,2.6,0,0,3,0
951
+ 57,1,0,132,207,0,1,168,1,0,2,0,3,1
952
+ 67,1,0,160,286,0,0,108,1,1.5,1,3,2,0
953
+ 62,0,2,130,263,0,1,97,0,1.2,1,1,3,0
954
+ 54,0,2,135,304,1,1,170,0,0,2,0,2,1
955
+ 45,0,0,138,236,0,0,152,1,0.2,1,0,2,1
956
+ 53,0,0,130,264,0,0,143,0,0.4,1,0,2,1
957
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
958
+ 49,0,0,130,269,0,1,163,0,0,2,0,2,1
959
+ 50,1,2,140,233,0,1,163,0,0.6,1,1,3,0
960
+ 65,0,2,140,417,1,0,157,0,0.8,2,1,2,1
961
+ 69,0,3,140,239,0,1,151,0,1.8,2,2,2,1
962
+ 52,0,2,136,196,0,0,169,0,0.1,1,0,2,1
963
+ 58,0,0,100,248,0,0,122,0,1,1,0,2,1
964
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
965
+ 57,0,0,140,241,0,1,123,1,0.2,1,0,3,0
966
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
967
+ 76,0,2,140,197,0,2,116,0,1.1,1,0,2,1
968
+ 58,1,0,128,259,0,0,130,1,3,1,2,3,0
969
+ 60,0,2,120,178,1,1,96,0,0,2,0,2,1
970
+ 53,1,0,140,203,1,0,155,1,3.1,0,0,3,0
971
+ 52,1,1,120,325,0,1,172,0,0.2,2,0,2,1
972
+ 38,1,2,138,175,0,1,173,0,0,2,4,2,1
973
+ 52,1,2,172,199,1,1,162,0,0.5,2,0,3,1
974
+ 52,1,3,118,186,0,0,190,0,0,1,0,1,1
975
+ 51,1,2,125,245,1,0,166,0,2.4,1,0,2,1
976
+ 43,1,0,110,211,0,1,161,0,0,2,0,3,1
977
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
978
+ 63,0,0,108,269,0,1,169,1,1.8,1,2,2,0
979
+ 52,1,1,128,205,1,1,184,0,0,2,0,2,1
980
+ 44,1,0,110,197,0,0,177,0,0,2,1,2,0
981
+ 45,1,0,142,309,0,0,147,1,0,1,3,3,0
982
+ 57,1,0,140,192,0,1,148,0,0.4,1,0,1,1
983
+ 39,1,0,118,219,0,1,140,0,1.2,1,0,3,0
984
+ 67,0,0,106,223,0,1,142,0,0.3,2,2,2,1
985
+ 64,1,0,128,263,0,1,105,1,0.2,1,1,3,1
986
+ 59,1,0,135,234,0,1,161,0,0.5,1,0,3,1
987
+ 62,1,2,130,231,0,1,146,0,1.8,1,3,3,1
988
+ 55,0,0,180,327,0,2,117,1,3.4,1,0,2,0
989
+ 57,1,1,154,232,0,0,164,0,0,2,1,2,0
990
+ 60,1,0,140,293,0,0,170,0,1.2,1,2,3,0
991
+ 71,0,1,160,302,0,1,162,0,0.4,2,2,2,1
992
+ 56,1,1,120,236,0,1,178,0,0.8,2,0,2,1
993
+ 60,1,0,117,230,1,1,160,1,1.4,2,2,3,0
994
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
995
+ 43,1,0,132,247,1,0,143,1,0.1,1,4,3,0
996
+ 59,1,0,110,239,0,0,142,1,1.2,1,1,3,0
997
+ 44,1,1,120,263,0,1,173,0,0,2,0,3,1
998
+ 56,0,0,134,409,0,0,150,1,1.9,1,2,3,0
999
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
1000
+ 42,1,0,136,315,0,1,125,1,1.8,1,0,1,0
1001
+ 67,1,0,125,254,1,1,163,0,0.2,1,2,3,0
1002
+ 64,1,0,145,212,0,0,132,0,2,1,2,1,0
1003
+ 42,1,0,140,226,0,1,178,0,0,2,0,2,1
1004
+ 66,1,0,112,212,0,0,132,1,0.1,2,1,2,0
1005
+ 52,1,0,108,233,1,1,147,0,0.1,2,3,3,1
1006
+ 51,0,2,140,308,0,0,142,0,1.5,2,1,2,1
1007
+ 55,0,0,128,205,0,2,130,1,2,1,1,3,0
1008
+ 58,1,2,140,211,1,0,165,0,0,2,0,2,1
1009
+ 56,1,3,120,193,0,0,162,0,1.9,1,0,3,1
1010
+ 42,1,1,120,295,0,1,162,0,0,2,0,2,1
1011
+ 40,1,0,152,223,0,1,181,0,0,2,0,3,0
1012
+ 51,1,0,140,299,0,1,173,1,1.6,2,0,3,0
1013
+ 45,1,1,128,308,0,0,170,0,0,2,0,2,1
1014
+ 48,1,1,110,229,0,1,168,0,1,0,0,3,0
1015
+ 58,1,0,114,318,0,2,140,0,4.4,0,3,1,0
1016
+ 44,0,2,108,141,0,1,175,0,0.6,1,0,2,1
1017
+ 58,1,0,128,216,0,0,131,1,2.2,1,3,3,0
1018
+ 65,1,3,138,282,1,0,174,0,1.4,1,1,2,0
1019
+ 53,1,0,123,282,0,1,95,1,2,1,2,3,0
1020
+ 41,1,0,110,172,0,0,158,0,0,2,0,3,0
1021
+ 47,1,0,112,204,0,1,143,0,0.1,2,0,2,1
1022
+ 59,1,1,140,221,0,1,164,1,0,2,0,2,1
1023
+ 60,1,0,125,258,0,0,141,1,2.8,1,1,3,0
1024
+ 47,1,0,110,275,0,0,118,1,1,1,1,2,0
1025
+ 50,0,0,110,254,0,0,159,0,0,2,0,2,1
1026
+ 54,1,0,120,188,0,1,113,0,1.4,1,1,3,0
datasets/parkinsons.csv ADDED
@@ -0,0 +1,196 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ name,MDVP:Fo(Hz),MDVP:Fhi(Hz),MDVP:Flo(Hz),MDVP:Jitter(%),MDVP:Jitter(Abs),MDVP:RAP,MDVP:PPQ,Jitter:DDP,MDVP:Shimmer,MDVP:Shimmer(dB),Shimmer:APQ3,Shimmer:APQ5,MDVP:APQ,Shimmer:DDA,NHR,HNR,status,RPDE,DFA,spread1,spread2,D2,PPE
2
+ phon_R01_S01_1,119.99200,157.30200,74.99700,0.00784,0.00007,0.00370,0.00554,0.01109,0.04374,0.42600,0.02182,0.03130,0.02971,0.06545,0.02211,21.03300,1,0.414783,0.815285,-4.813031,0.266482,2.301442,0.284654
3
+ phon_R01_S01_2,122.40000,148.65000,113.81900,0.00968,0.00008,0.00465,0.00696,0.01394,0.06134,0.62600,0.03134,0.04518,0.04368,0.09403,0.01929,19.08500,1,0.458359,0.819521,-4.075192,0.335590,2.486855,0.368674
4
+ phon_R01_S01_3,116.68200,131.11100,111.55500,0.01050,0.00009,0.00544,0.00781,0.01633,0.05233,0.48200,0.02757,0.03858,0.03590,0.08270,0.01309,20.65100,1,0.429895,0.825288,-4.443179,0.311173,2.342259,0.332634
5
+ phon_R01_S01_4,116.67600,137.87100,111.36600,0.00997,0.00009,0.00502,0.00698,0.01505,0.05492,0.51700,0.02924,0.04005,0.03772,0.08771,0.01353,20.64400,1,0.434969,0.819235,-4.117501,0.334147,2.405554,0.368975
6
+ phon_R01_S01_5,116.01400,141.78100,110.65500,0.01284,0.00011,0.00655,0.00908,0.01966,0.06425,0.58400,0.03490,0.04825,0.04465,0.10470,0.01767,19.64900,1,0.417356,0.823484,-3.747787,0.234513,2.332180,0.410335
7
+ phon_R01_S01_6,120.55200,131.16200,113.78700,0.00968,0.00008,0.00463,0.00750,0.01388,0.04701,0.45600,0.02328,0.03526,0.03243,0.06985,0.01222,21.37800,1,0.415564,0.825069,-4.242867,0.299111,2.187560,0.357775
8
+ phon_R01_S02_1,120.26700,137.24400,114.82000,0.00333,0.00003,0.00155,0.00202,0.00466,0.01608,0.14000,0.00779,0.00937,0.01351,0.02337,0.00607,24.88600,1,0.596040,0.764112,-5.634322,0.257682,1.854785,0.211756
9
+ phon_R01_S02_2,107.33200,113.84000,104.31500,0.00290,0.00003,0.00144,0.00182,0.00431,0.01567,0.13400,0.00829,0.00946,0.01256,0.02487,0.00344,26.89200,1,0.637420,0.763262,-6.167603,0.183721,2.064693,0.163755
10
+ phon_R01_S02_3,95.73000,132.06800,91.75400,0.00551,0.00006,0.00293,0.00332,0.00880,0.02093,0.19100,0.01073,0.01277,0.01717,0.03218,0.01070,21.81200,1,0.615551,0.773587,-5.498678,0.327769,2.322511,0.231571
11
+ phon_R01_S02_4,95.05600,120.10300,91.22600,0.00532,0.00006,0.00268,0.00332,0.00803,0.02838,0.25500,0.01441,0.01725,0.02444,0.04324,0.01022,21.86200,1,0.547037,0.798463,-5.011879,0.325996,2.432792,0.271362
12
+ phon_R01_S02_5,88.33300,112.24000,84.07200,0.00505,0.00006,0.00254,0.00330,0.00763,0.02143,0.19700,0.01079,0.01342,0.01892,0.03237,0.01166,21.11800,1,0.611137,0.776156,-5.249770,0.391002,2.407313,0.249740
13
+ phon_R01_S02_6,91.90400,115.87100,86.29200,0.00540,0.00006,0.00281,0.00336,0.00844,0.02752,0.24900,0.01424,0.01641,0.02214,0.04272,0.01141,21.41400,1,0.583390,0.792520,-4.960234,0.363566,2.642476,0.275931
14
+ phon_R01_S04_1,136.92600,159.86600,131.27600,0.00293,0.00002,0.00118,0.00153,0.00355,0.01259,0.11200,0.00656,0.00717,0.01140,0.01968,0.00581,25.70300,1,0.460600,0.646846,-6.547148,0.152813,2.041277,0.138512
15
+ phon_R01_S04_2,139.17300,179.13900,76.55600,0.00390,0.00003,0.00165,0.00208,0.00496,0.01642,0.15400,0.00728,0.00932,0.01797,0.02184,0.01041,24.88900,1,0.430166,0.665833,-5.660217,0.254989,2.519422,0.199889
16
+ phon_R01_S04_3,152.84500,163.30500,75.83600,0.00294,0.00002,0.00121,0.00149,0.00364,0.01828,0.15800,0.01064,0.00972,0.01246,0.03191,0.00609,24.92200,1,0.474791,0.654027,-6.105098,0.203653,2.125618,0.170100
17
+ phon_R01_S04_4,142.16700,217.45500,83.15900,0.00369,0.00003,0.00157,0.00203,0.00471,0.01503,0.12600,0.00772,0.00888,0.01359,0.02316,0.00839,25.17500,1,0.565924,0.658245,-5.340115,0.210185,2.205546,0.234589
18
+ phon_R01_S04_5,144.18800,349.25900,82.76400,0.00544,0.00004,0.00211,0.00292,0.00632,0.02047,0.19200,0.00969,0.01200,0.02074,0.02908,0.01859,22.33300,1,0.567380,0.644692,-5.440040,0.239764,2.264501,0.218164
19
+ phon_R01_S04_6,168.77800,232.18100,75.60300,0.00718,0.00004,0.00284,0.00387,0.00853,0.03327,0.34800,0.01441,0.01893,0.03430,0.04322,0.02919,20.37600,1,0.631099,0.605417,-2.931070,0.434326,3.007463,0.430788
20
+ phon_R01_S05_1,153.04600,175.82900,68.62300,0.00742,0.00005,0.00364,0.00432,0.01092,0.05517,0.54200,0.02471,0.03572,0.05767,0.07413,0.03160,17.28000,1,0.665318,0.719467,-3.949079,0.357870,3.109010,0.377429
21
+ phon_R01_S05_2,156.40500,189.39800,142.82200,0.00768,0.00005,0.00372,0.00399,0.01116,0.03995,0.34800,0.01721,0.02374,0.04310,0.05164,0.03365,17.15300,1,0.649554,0.686080,-4.554466,0.340176,2.856676,0.322111
22
+ phon_R01_S05_3,153.84800,165.73800,65.78200,0.00840,0.00005,0.00428,0.00450,0.01285,0.03810,0.32800,0.01667,0.02383,0.04055,0.05000,0.03871,17.53600,1,0.660125,0.704087,-4.095442,0.262564,2.739710,0.365391
23
+ phon_R01_S05_4,153.88000,172.86000,78.12800,0.00480,0.00003,0.00232,0.00267,0.00696,0.04137,0.37000,0.02021,0.02591,0.04525,0.06062,0.01849,19.49300,1,0.629017,0.698951,-5.186960,0.237622,2.557536,0.259765
24
+ phon_R01_S05_5,167.93000,193.22100,79.06800,0.00442,0.00003,0.00220,0.00247,0.00661,0.04351,0.37700,0.02228,0.02540,0.04246,0.06685,0.01280,22.46800,1,0.619060,0.679834,-4.330956,0.262384,2.916777,0.285695
25
+ phon_R01_S05_6,173.91700,192.73500,86.18000,0.00476,0.00003,0.00221,0.00258,0.00663,0.04192,0.36400,0.02187,0.02470,0.03772,0.06562,0.01840,20.42200,1,0.537264,0.686894,-5.248776,0.210279,2.547508,0.253556
26
+ phon_R01_S06_1,163.65600,200.84100,76.77900,0.00742,0.00005,0.00380,0.00390,0.01140,0.01659,0.16400,0.00738,0.00948,0.01497,0.02214,0.01778,23.83100,1,0.397937,0.732479,-5.557447,0.220890,2.692176,0.215961
27
+ phon_R01_S06_2,104.40000,206.00200,77.96800,0.00633,0.00006,0.00316,0.00375,0.00948,0.03767,0.38100,0.01732,0.02245,0.03780,0.05197,0.02887,22.06600,1,0.522746,0.737948,-5.571843,0.236853,2.846369,0.219514
28
+ phon_R01_S06_3,171.04100,208.31300,75.50100,0.00455,0.00003,0.00250,0.00234,0.00750,0.01966,0.18600,0.00889,0.01169,0.01872,0.02666,0.01095,25.90800,1,0.418622,0.720916,-6.183590,0.226278,2.589702,0.147403
29
+ phon_R01_S06_4,146.84500,208.70100,81.73700,0.00496,0.00003,0.00250,0.00275,0.00749,0.01919,0.19800,0.00883,0.01144,0.01826,0.02650,0.01328,25.11900,1,0.358773,0.726652,-6.271690,0.196102,2.314209,0.162999
30
+ phon_R01_S06_5,155.35800,227.38300,80.05500,0.00310,0.00002,0.00159,0.00176,0.00476,0.01718,0.16100,0.00769,0.01012,0.01661,0.02307,0.00677,25.97000,1,0.470478,0.676258,-7.120925,0.279789,2.241742,0.108514
31
+ phon_R01_S06_6,162.56800,198.34600,77.63000,0.00502,0.00003,0.00280,0.00253,0.00841,0.01791,0.16800,0.00793,0.01057,0.01799,0.02380,0.01170,25.67800,1,0.427785,0.723797,-6.635729,0.209866,1.957961,0.135242
32
+ phon_R01_S07_1,197.07600,206.89600,192.05500,0.00289,0.00001,0.00166,0.00168,0.00498,0.01098,0.09700,0.00563,0.00680,0.00802,0.01689,0.00339,26.77500,0,0.422229,0.741367,-7.348300,0.177551,1.743867,0.085569
33
+ phon_R01_S07_2,199.22800,209.51200,192.09100,0.00241,0.00001,0.00134,0.00138,0.00402,0.01015,0.08900,0.00504,0.00641,0.00762,0.01513,0.00167,30.94000,0,0.432439,0.742055,-7.682587,0.173319,2.103106,0.068501
34
+ phon_R01_S07_3,198.38300,215.20300,193.10400,0.00212,0.00001,0.00113,0.00135,0.00339,0.01263,0.11100,0.00640,0.00825,0.00951,0.01919,0.00119,30.77500,0,0.465946,0.738703,-7.067931,0.175181,1.512275,0.096320
35
+ phon_R01_S07_4,202.26600,211.60400,197.07900,0.00180,0.000009,0.00093,0.00107,0.00278,0.00954,0.08500,0.00469,0.00606,0.00719,0.01407,0.00072,32.68400,0,0.368535,0.742133,-7.695734,0.178540,1.544609,0.056141
36
+ phon_R01_S07_5,203.18400,211.52600,196.16000,0.00178,0.000009,0.00094,0.00106,0.00283,0.00958,0.08500,0.00468,0.00610,0.00726,0.01403,0.00065,33.04700,0,0.340068,0.741899,-7.964984,0.163519,1.423287,0.044539
37
+ phon_R01_S07_6,201.46400,210.56500,195.70800,0.00198,0.000010,0.00105,0.00115,0.00314,0.01194,0.10700,0.00586,0.00760,0.00957,0.01758,0.00135,31.73200,0,0.344252,0.742737,-7.777685,0.170183,2.447064,0.057610
38
+ phon_R01_S08_1,177.87600,192.92100,168.01300,0.00411,0.00002,0.00233,0.00241,0.00700,0.02126,0.18900,0.01154,0.01347,0.01612,0.03463,0.00586,23.21600,1,0.360148,0.778834,-6.149653,0.218037,2.477082,0.165827
39
+ phon_R01_S08_2,176.17000,185.60400,163.56400,0.00369,0.00002,0.00205,0.00218,0.00616,0.01851,0.16800,0.00938,0.01160,0.01491,0.02814,0.00340,24.95100,1,0.341435,0.783626,-6.006414,0.196371,2.536527,0.173218
40
+ phon_R01_S08_3,180.19800,201.24900,175.45600,0.00284,0.00002,0.00153,0.00166,0.00459,0.01444,0.13100,0.00726,0.00885,0.01190,0.02177,0.00231,26.73800,1,0.403884,0.766209,-6.452058,0.212294,2.269398,0.141929
41
+ phon_R01_S08_4,187.73300,202.32400,173.01500,0.00316,0.00002,0.00168,0.00182,0.00504,0.01663,0.15100,0.00829,0.01003,0.01366,0.02488,0.00265,26.31000,1,0.396793,0.758324,-6.006647,0.266892,2.382544,0.160691
42
+ phon_R01_S08_5,186.16300,197.72400,177.58400,0.00298,0.00002,0.00165,0.00175,0.00496,0.01495,0.13500,0.00774,0.00941,0.01233,0.02321,0.00231,26.82200,1,0.326480,0.765623,-6.647379,0.201095,2.374073,0.130554
43
+ phon_R01_S08_6,184.05500,196.53700,166.97700,0.00258,0.00001,0.00134,0.00147,0.00403,0.01463,0.13200,0.00742,0.00901,0.01234,0.02226,0.00257,26.45300,1,0.306443,0.759203,-7.044105,0.063412,2.361532,0.115730
44
+ phon_R01_S10_1,237.22600,247.32600,225.22700,0.00298,0.00001,0.00169,0.00182,0.00507,0.01752,0.16400,0.01035,0.01024,0.01133,0.03104,0.00740,22.73600,0,0.305062,0.654172,-7.310550,0.098648,2.416838,0.095032
45
+ phon_R01_S10_2,241.40400,248.83400,232.48300,0.00281,0.00001,0.00157,0.00173,0.00470,0.01760,0.15400,0.01006,0.01038,0.01251,0.03017,0.00675,23.14500,0,0.457702,0.634267,-6.793547,0.158266,2.256699,0.117399
46
+ phon_R01_S10_3,243.43900,250.91200,232.43500,0.00210,0.000009,0.00109,0.00137,0.00327,0.01419,0.12600,0.00777,0.00898,0.01033,0.02330,0.00454,25.36800,0,0.438296,0.635285,-7.057869,0.091608,2.330716,0.091470
47
+ phon_R01_S10_4,242.85200,255.03400,227.91100,0.00225,0.000009,0.00117,0.00139,0.00350,0.01494,0.13400,0.00847,0.00879,0.01014,0.02542,0.00476,25.03200,0,0.431285,0.638928,-6.995820,0.102083,2.365800,0.102706
48
+ phon_R01_S10_5,245.51000,262.09000,231.84800,0.00235,0.000010,0.00127,0.00148,0.00380,0.01608,0.14100,0.00906,0.00977,0.01149,0.02719,0.00476,24.60200,0,0.467489,0.631653,-7.156076,0.127642,2.392122,0.097336
49
+ phon_R01_S10_6,252.45500,261.48700,182.78600,0.00185,0.000007,0.00092,0.00113,0.00276,0.01152,0.10300,0.00614,0.00730,0.00860,0.01841,0.00432,26.80500,0,0.610367,0.635204,-7.319510,0.200873,2.028612,0.086398
50
+ phon_R01_S13_1,122.18800,128.61100,115.76500,0.00524,0.00004,0.00169,0.00203,0.00507,0.01613,0.14300,0.00855,0.00776,0.01433,0.02566,0.00839,23.16200,0,0.579597,0.733659,-6.439398,0.266392,2.079922,0.133867
51
+ phon_R01_S13_2,122.96400,130.04900,114.67600,0.00428,0.00003,0.00124,0.00155,0.00373,0.01681,0.15400,0.00930,0.00802,0.01400,0.02789,0.00462,24.97100,0,0.538688,0.754073,-6.482096,0.264967,2.054419,0.128872
52
+ phon_R01_S13_3,124.44500,135.06900,117.49500,0.00431,0.00003,0.00141,0.00167,0.00422,0.02184,0.19700,0.01241,0.01024,0.01685,0.03724,0.00479,25.13500,0,0.553134,0.775933,-6.650471,0.254498,1.840198,0.103561
53
+ phon_R01_S13_4,126.34400,134.23100,112.77300,0.00448,0.00004,0.00131,0.00169,0.00393,0.02033,0.18500,0.01143,0.00959,0.01614,0.03429,0.00474,25.03000,0,0.507504,0.760361,-6.689151,0.291954,2.431854,0.105993
54
+ phon_R01_S13_5,128.00100,138.05200,122.08000,0.00436,0.00003,0.00137,0.00166,0.00411,0.02297,0.21000,0.01323,0.01072,0.01677,0.03969,0.00481,24.69200,0,0.459766,0.766204,-7.072419,0.220434,1.972297,0.119308
55
+ phon_R01_S13_6,129.33600,139.86700,118.60400,0.00490,0.00004,0.00165,0.00183,0.00495,0.02498,0.22800,0.01396,0.01219,0.01947,0.04188,0.00484,25.42900,0,0.420383,0.785714,-6.836811,0.269866,2.223719,0.147491
56
+ phon_R01_S16_1,108.80700,134.65600,102.87400,0.00761,0.00007,0.00349,0.00486,0.01046,0.02719,0.25500,0.01483,0.01609,0.02067,0.04450,0.01036,21.02800,1,0.536009,0.819032,-4.649573,0.205558,1.986899,0.316700
57
+ phon_R01_S16_2,109.86000,126.35800,104.43700,0.00874,0.00008,0.00398,0.00539,0.01193,0.03209,0.30700,0.01789,0.01992,0.02454,0.05368,0.01180,20.76700,1,0.558586,0.811843,-4.333543,0.221727,2.014606,0.344834
58
+ phon_R01_S16_3,110.41700,131.06700,103.37000,0.00784,0.00007,0.00352,0.00514,0.01056,0.03715,0.33400,0.02032,0.02302,0.02802,0.06097,0.00969,21.42200,1,0.541781,0.821364,-4.438453,0.238298,1.922940,0.335041
59
+ phon_R01_S16_4,117.27400,129.91600,110.40200,0.00752,0.00006,0.00299,0.00469,0.00898,0.02293,0.22100,0.01189,0.01459,0.01948,0.03568,0.00681,22.81700,1,0.530529,0.817756,-4.608260,0.290024,2.021591,0.314464
60
+ phon_R01_S16_5,116.87900,131.89700,108.15300,0.00788,0.00007,0.00334,0.00493,0.01003,0.02645,0.26500,0.01394,0.01625,0.02137,0.04183,0.00786,22.60300,1,0.540049,0.813432,-4.476755,0.262633,1.827012,0.326197
61
+ phon_R01_S16_6,114.84700,271.31400,104.68000,0.00867,0.00008,0.00373,0.00520,0.01120,0.03225,0.35000,0.01805,0.01974,0.02519,0.05414,0.01143,21.66000,1,0.547975,0.817396,-4.609161,0.221711,1.831691,0.316395
62
+ phon_R01_S17_1,209.14400,237.49400,109.37900,0.00282,0.00001,0.00147,0.00152,0.00442,0.01861,0.17000,0.00975,0.01258,0.01382,0.02925,0.00871,25.55400,0,0.341788,0.678874,-7.040508,0.066994,2.460791,0.101516
63
+ phon_R01_S17_2,223.36500,238.98700,98.66400,0.00264,0.00001,0.00154,0.00151,0.00461,0.01906,0.16500,0.01013,0.01296,0.01340,0.03039,0.00301,26.13800,0,0.447979,0.686264,-7.293801,0.086372,2.321560,0.098555
64
+ phon_R01_S17_3,222.23600,231.34500,205.49500,0.00266,0.00001,0.00152,0.00144,0.00457,0.01643,0.14500,0.00867,0.01108,0.01200,0.02602,0.00340,25.85600,0,0.364867,0.694399,-6.966321,0.095882,2.278687,0.103224
65
+ phon_R01_S17_4,228.83200,234.61900,223.63400,0.00296,0.00001,0.00175,0.00155,0.00526,0.01644,0.14500,0.00882,0.01075,0.01179,0.02647,0.00351,25.96400,0,0.256570,0.683296,-7.245620,0.018689,2.498224,0.093534
66
+ phon_R01_S17_5,229.40100,252.22100,221.15600,0.00205,0.000009,0.00114,0.00113,0.00342,0.01457,0.12900,0.00769,0.00957,0.01016,0.02308,0.00300,26.41500,0,0.276850,0.673636,-7.496264,0.056844,2.003032,0.073581
67
+ phon_R01_S17_6,228.96900,239.54100,113.20100,0.00238,0.00001,0.00136,0.00140,0.00408,0.01745,0.15400,0.00942,0.01160,0.01234,0.02827,0.00420,24.54700,0,0.305429,0.681811,-7.314237,0.006274,2.118596,0.091546
68
+ phon_R01_S18_1,140.34100,159.77400,67.02100,0.00817,0.00006,0.00430,0.00440,0.01289,0.03198,0.31300,0.01830,0.01810,0.02428,0.05490,0.02183,19.56000,1,0.460139,0.720908,-5.409423,0.226850,2.359973,0.226156
69
+ phon_R01_S18_2,136.96900,166.60700,66.00400,0.00923,0.00007,0.00507,0.00463,0.01520,0.03111,0.30800,0.01638,0.01759,0.02603,0.04914,0.02659,19.97900,1,0.498133,0.729067,-5.324574,0.205660,2.291558,0.226247
70
+ phon_R01_S18_3,143.53300,162.21500,65.80900,0.01101,0.00008,0.00647,0.00467,0.01941,0.05384,0.47800,0.03152,0.02422,0.03392,0.09455,0.04882,20.33800,1,0.513237,0.731444,-5.869750,0.151814,2.118496,0.185580
71
+ phon_R01_S18_4,148.09000,162.82400,67.34300,0.00762,0.00005,0.00467,0.00354,0.01400,0.05428,0.49700,0.03357,0.02494,0.03635,0.10070,0.02431,21.71800,1,0.487407,0.727313,-6.261141,0.120956,2.137075,0.141958
72
+ phon_R01_S18_5,142.72900,162.40800,65.47600,0.00831,0.00006,0.00469,0.00419,0.01407,0.03485,0.36500,0.01868,0.01906,0.02949,0.05605,0.02599,20.26400,1,0.489345,0.730387,-5.720868,0.158830,2.277927,0.180828
73
+ phon_R01_S18_6,136.35800,176.59500,65.75000,0.00971,0.00007,0.00534,0.00478,0.01601,0.04978,0.48300,0.02749,0.02466,0.03736,0.08247,0.03361,18.57000,1,0.543299,0.733232,-5.207985,0.224852,2.642276,0.242981
74
+ phon_R01_S19_1,120.08000,139.71000,111.20800,0.00405,0.00003,0.00180,0.00220,0.00540,0.01706,0.15200,0.00974,0.00925,0.01345,0.02921,0.00442,25.74200,1,0.495954,0.762959,-5.791820,0.329066,2.205024,0.188180
75
+ phon_R01_S19_2,112.01400,588.51800,107.02400,0.00533,0.00005,0.00268,0.00329,0.00805,0.02448,0.22600,0.01373,0.01375,0.01956,0.04120,0.00623,24.17800,1,0.509127,0.789532,-5.389129,0.306636,1.928708,0.225461
76
+ phon_R01_S19_3,110.79300,128.10100,107.31600,0.00494,0.00004,0.00260,0.00283,0.00780,0.02442,0.21600,0.01432,0.01325,0.01831,0.04295,0.00479,25.43800,1,0.437031,0.815908,-5.313360,0.201861,2.225815,0.244512
77
+ phon_R01_S19_4,110.70700,122.61100,105.00700,0.00516,0.00005,0.00277,0.00289,0.00831,0.02215,0.20600,0.01284,0.01219,0.01715,0.03851,0.00472,25.19700,1,0.463514,0.807217,-5.477592,0.315074,1.862092,0.228624
78
+ phon_R01_S19_5,112.87600,148.82600,106.98100,0.00500,0.00004,0.00270,0.00289,0.00810,0.03999,0.35000,0.02413,0.02231,0.02704,0.07238,0.00905,23.37000,1,0.489538,0.789977,-5.775966,0.341169,2.007923,0.193918
79
+ phon_R01_S19_6,110.56800,125.39400,106.82100,0.00462,0.00004,0.00226,0.00280,0.00677,0.02199,0.19700,0.01284,0.01199,0.01636,0.03852,0.00420,25.82000,1,0.429484,0.816340,-5.391029,0.250572,1.777901,0.232744
80
+ phon_R01_S20_1,95.38500,102.14500,90.26400,0.00608,0.00006,0.00331,0.00332,0.00994,0.03202,0.26300,0.01803,0.01886,0.02455,0.05408,0.01062,21.87500,1,0.644954,0.779612,-5.115212,0.249494,2.017753,0.260015
81
+ phon_R01_S20_2,100.77000,115.69700,85.54500,0.01038,0.00010,0.00622,0.00576,0.01865,0.03121,0.36100,0.01773,0.01783,0.02139,0.05320,0.02220,19.20000,1,0.594387,0.790117,-4.913885,0.265699,2.398422,0.277948
82
+ phon_R01_S20_3,96.10600,108.66400,84.51000,0.00694,0.00007,0.00389,0.00415,0.01168,0.04024,0.36400,0.02266,0.02451,0.02876,0.06799,0.01823,19.05500,1,0.544805,0.770466,-4.441519,0.155097,2.645959,0.327978
83
+ phon_R01_S20_4,95.60500,107.71500,87.54900,0.00702,0.00007,0.00428,0.00371,0.01283,0.03156,0.29600,0.01792,0.01841,0.02190,0.05377,0.01825,19.65900,1,0.576084,0.778747,-5.132032,0.210458,2.232576,0.260633
84
+ phon_R01_S20_5,100.96000,110.01900,95.62800,0.00606,0.00006,0.00351,0.00348,0.01053,0.02427,0.21600,0.01371,0.01421,0.01751,0.04114,0.01237,20.53600,1,0.554610,0.787896,-5.022288,0.146948,2.428306,0.264666
85
+ phon_R01_S20_6,98.80400,102.30500,87.80400,0.00432,0.00004,0.00247,0.00258,0.00742,0.02223,0.20200,0.01277,0.01343,0.01552,0.03831,0.00882,22.24400,1,0.576644,0.772416,-6.025367,0.078202,2.053601,0.177275
86
+ phon_R01_S21_1,176.85800,205.56000,75.34400,0.00747,0.00004,0.00418,0.00420,0.01254,0.04795,0.43500,0.02679,0.03022,0.03510,0.08037,0.05470,13.89300,1,0.556494,0.729586,-5.288912,0.343073,3.099301,0.242119
87
+ phon_R01_S21_2,180.97800,200.12500,155.49500,0.00406,0.00002,0.00220,0.00244,0.00659,0.03852,0.33100,0.02107,0.02493,0.02877,0.06321,0.02782,16.17600,1,0.583574,0.727747,-5.657899,0.315903,3.098256,0.200423
88
+ phon_R01_S21_3,178.22200,202.45000,141.04700,0.00321,0.00002,0.00163,0.00194,0.00488,0.03759,0.32700,0.02073,0.02415,0.02784,0.06219,0.03151,15.92400,1,0.598714,0.712199,-6.366916,0.335753,2.654271,0.144614
89
+ phon_R01_S21_4,176.28100,227.38100,125.61000,0.00520,0.00003,0.00287,0.00312,0.00862,0.06511,0.58000,0.03671,0.04159,0.04683,0.11012,0.04824,13.92200,1,0.602874,0.740837,-5.515071,0.299549,3.136550,0.220968
90
+ phon_R01_S21_5,173.89800,211.35000,74.67700,0.00448,0.00003,0.00237,0.00254,0.00710,0.06727,0.65000,0.03788,0.04254,0.04802,0.11363,0.04214,14.73900,1,0.599371,0.743937,-5.783272,0.299793,3.007096,0.194052
91
+ phon_R01_S21_6,179.71100,225.93000,144.87800,0.00709,0.00004,0.00391,0.00419,0.01172,0.04313,0.44200,0.02297,0.02768,0.03455,0.06892,0.07223,11.86600,1,0.590951,0.745526,-4.379411,0.375531,3.671155,0.332086
92
+ phon_R01_S21_7,166.60500,206.00800,78.03200,0.00742,0.00004,0.00387,0.00453,0.01161,0.06640,0.63400,0.03650,0.04282,0.05114,0.10949,0.08725,11.74400,1,0.653410,0.733165,-4.508984,0.389232,3.317586,0.301952
93
+ phon_R01_S22_1,151.95500,163.33500,147.22600,0.00419,0.00003,0.00224,0.00227,0.00672,0.07959,0.77200,0.04421,0.04962,0.05690,0.13262,0.01658,19.66400,1,0.501037,0.714360,-6.411497,0.207156,2.344876,0.134120
94
+ phon_R01_S22_2,148.27200,164.98900,142.29900,0.00459,0.00003,0.00250,0.00256,0.00750,0.04190,0.38300,0.02383,0.02521,0.03051,0.07150,0.01914,18.78000,1,0.454444,0.734504,-5.952058,0.087840,2.344336,0.186489
95
+ phon_R01_S22_3,152.12500,161.46900,76.59600,0.00382,0.00003,0.00191,0.00226,0.00574,0.05925,0.63700,0.03341,0.03794,0.04398,0.10024,0.01211,20.96900,1,0.447456,0.697790,-6.152551,0.173520,2.080121,0.160809
96
+ phon_R01_S22_4,157.82100,172.97500,68.40100,0.00358,0.00002,0.00196,0.00196,0.00587,0.03716,0.30700,0.02062,0.02321,0.02764,0.06185,0.00850,22.21900,1,0.502380,0.712170,-6.251425,0.188056,2.143851,0.160812
97
+ phon_R01_S22_5,157.44700,163.26700,149.60500,0.00369,0.00002,0.00201,0.00197,0.00602,0.03272,0.28300,0.01813,0.01909,0.02571,0.05439,0.01018,21.69300,1,0.447285,0.705658,-6.247076,0.180528,2.344348,0.164916
98
+ phon_R01_S22_6,159.11600,168.91300,144.81100,0.00342,0.00002,0.00178,0.00184,0.00535,0.03381,0.30700,0.01806,0.02024,0.02809,0.05417,0.00852,22.66300,1,0.366329,0.693429,-6.417440,0.194627,2.473239,0.151709
99
+ phon_R01_S24_1,125.03600,143.94600,116.18700,0.01280,0.00010,0.00743,0.00623,0.02228,0.03886,0.34200,0.02135,0.02174,0.03088,0.06406,0.08151,15.33800,1,0.629574,0.714485,-4.020042,0.265315,2.671825,0.340623
100
+ phon_R01_S24_2,125.79100,140.55700,96.20600,0.01378,0.00011,0.00826,0.00655,0.02478,0.04689,0.42200,0.02542,0.02630,0.03908,0.07625,0.10323,15.43300,1,0.571010,0.690892,-5.159169,0.202146,2.441612,0.260375
101
+ phon_R01_S24_3,126.51200,141.75600,99.77000,0.01936,0.00015,0.01159,0.00990,0.03476,0.06734,0.65900,0.03611,0.03963,0.05783,0.10833,0.16744,12.43500,1,0.638545,0.674953,-3.760348,0.242861,2.634633,0.378483
102
+ phon_R01_S24_4,125.64100,141.06800,116.34600,0.03316,0.00026,0.02144,0.01522,0.06433,0.09178,0.89100,0.05358,0.04791,0.06196,0.16074,0.31482,8.86700,1,0.671299,0.656846,-3.700544,0.260481,2.991063,0.370961
103
+ phon_R01_S24_5,128.45100,150.44900,75.63200,0.01551,0.00012,0.00905,0.00909,0.02716,0.06170,0.58400,0.03223,0.03672,0.05174,0.09669,0.11843,15.06000,1,0.639808,0.643327,-4.202730,0.310163,2.638279,0.356881
104
+ phon_R01_S24_6,139.22400,586.56700,66.15700,0.03011,0.00022,0.01854,0.01628,0.05563,0.09419,0.93000,0.05551,0.05005,0.06023,0.16654,0.25930,10.48900,1,0.596362,0.641418,-3.269487,0.270641,2.690917,0.444774
105
+ phon_R01_S25_1,150.25800,154.60900,75.34900,0.00248,0.00002,0.00105,0.00136,0.00315,0.01131,0.10700,0.00522,0.00659,0.01009,0.01567,0.00495,26.75900,1,0.296888,0.722356,-6.878393,0.089267,2.004055,0.113942
106
+ phon_R01_S25_2,154.00300,160.26700,128.62100,0.00183,0.00001,0.00076,0.00100,0.00229,0.01030,0.09400,0.00469,0.00582,0.00871,0.01406,0.00243,28.40900,1,0.263654,0.691483,-7.111576,0.144780,2.065477,0.093193
107
+ phon_R01_S25_3,149.68900,160.36800,133.60800,0.00257,0.00002,0.00116,0.00134,0.00349,0.01346,0.12600,0.00660,0.00818,0.01059,0.01979,0.00578,27.42100,1,0.365488,0.719974,-6.997403,0.210279,1.994387,0.112878
108
+ phon_R01_S25_4,155.07800,163.73600,144.14800,0.00168,0.00001,0.00068,0.00092,0.00204,0.01064,0.09700,0.00522,0.00632,0.00928,0.01567,0.00233,29.74600,1,0.334171,0.677930,-6.981201,0.184550,2.129924,0.106802
109
+ phon_R01_S25_5,151.88400,157.76500,133.75100,0.00258,0.00002,0.00115,0.00122,0.00346,0.01450,0.13700,0.00633,0.00788,0.01267,0.01898,0.00659,26.83300,1,0.393563,0.700246,-6.600023,0.249172,2.499148,0.105306
110
+ phon_R01_S25_6,151.98900,157.33900,132.85700,0.00174,0.00001,0.00075,0.00096,0.00225,0.01024,0.09300,0.00455,0.00576,0.00993,0.01364,0.00238,29.92800,1,0.311369,0.676066,-6.739151,0.160686,2.296873,0.115130
111
+ phon_R01_S26_1,193.03000,208.90000,80.29700,0.00766,0.00004,0.00450,0.00389,0.01351,0.03044,0.27500,0.01771,0.01815,0.02084,0.05312,0.00947,21.93400,1,0.497554,0.740539,-5.845099,0.278679,2.608749,0.185668
112
+ phon_R01_S26_2,200.71400,223.98200,89.68600,0.00621,0.00003,0.00371,0.00337,0.01112,0.02286,0.20700,0.01192,0.01439,0.01852,0.03576,0.00704,23.23900,1,0.436084,0.727863,-5.258320,0.256454,2.550961,0.232520
113
+ phon_R01_S26_3,208.51900,220.31500,199.02000,0.00609,0.00003,0.00368,0.00339,0.01105,0.01761,0.15500,0.00952,0.01058,0.01307,0.02855,0.00830,22.40700,1,0.338097,0.712466,-6.471427,0.184378,2.502336,0.136390
114
+ phon_R01_S26_4,204.66400,221.30000,189.62100,0.00841,0.00004,0.00502,0.00485,0.01506,0.02378,0.21000,0.01277,0.01483,0.01767,0.03831,0.01316,21.30500,1,0.498877,0.722085,-4.876336,0.212054,2.376749,0.268144
115
+ phon_R01_S26_5,210.14100,232.70600,185.25800,0.00534,0.00003,0.00321,0.00280,0.00964,0.01680,0.14900,0.00861,0.01017,0.01301,0.02583,0.00620,23.67100,1,0.441097,0.722254,-5.963040,0.250283,2.489191,0.177807
116
+ phon_R01_S26_6,206.32700,226.35500,92.02000,0.00495,0.00002,0.00302,0.00246,0.00905,0.02105,0.20900,0.01107,0.01284,0.01604,0.03320,0.01048,21.86400,1,0.331508,0.715121,-6.729713,0.181701,2.938114,0.115515
117
+ phon_R01_S27_1,151.87200,492.89200,69.08500,0.00856,0.00006,0.00404,0.00385,0.01211,0.01843,0.23500,0.00796,0.00832,0.01271,0.02389,0.06051,23.69300,1,0.407701,0.662668,-4.673241,0.261549,2.702355,0.274407
118
+ phon_R01_S27_2,158.21900,442.55700,71.94800,0.00476,0.00003,0.00214,0.00207,0.00642,0.01458,0.14800,0.00606,0.00747,0.01312,0.01818,0.01554,26.35600,1,0.450798,0.653823,-6.051233,0.273280,2.640798,0.170106
119
+ phon_R01_S27_3,170.75600,450.24700,79.03200,0.00555,0.00003,0.00244,0.00261,0.00731,0.01725,0.17500,0.00757,0.00971,0.01652,0.02270,0.01802,25.69000,1,0.486738,0.676023,-4.597834,0.372114,2.975889,0.282780
120
+ phon_R01_S27_4,178.28500,442.82400,82.06300,0.00462,0.00003,0.00157,0.00194,0.00472,0.01279,0.12900,0.00617,0.00744,0.01151,0.01851,0.00856,25.02000,1,0.470422,0.655239,-4.913137,0.393056,2.816781,0.251972
121
+ phon_R01_S27_5,217.11600,233.48100,93.97800,0.00404,0.00002,0.00127,0.00128,0.00381,0.01299,0.12400,0.00679,0.00631,0.01075,0.02038,0.00681,24.58100,1,0.462516,0.582710,-5.517173,0.389295,2.925862,0.220657
122
+ phon_R01_S27_6,128.94000,479.69700,88.25100,0.00581,0.00005,0.00241,0.00314,0.00723,0.02008,0.22100,0.00849,0.01117,0.01734,0.02548,0.02350,24.74300,1,0.487756,0.684130,-6.186128,0.279933,2.686240,0.152428
123
+ phon_R01_S27_7,176.82400,215.29300,83.96100,0.00460,0.00003,0.00209,0.00221,0.00628,0.01169,0.11700,0.00534,0.00630,0.01104,0.01603,0.01161,27.16600,1,0.400088,0.656182,-4.711007,0.281618,2.655744,0.234809
124
+ phon_R01_S31_1,138.19000,203.52200,83.34000,0.00704,0.00005,0.00406,0.00398,0.01218,0.04479,0.44100,0.02587,0.02567,0.03220,0.07761,0.01968,18.30500,1,0.538016,0.741480,-5.418787,0.160267,2.090438,0.229892
125
+ phon_R01_S31_2,182.01800,197.17300,79.18700,0.00842,0.00005,0.00506,0.00449,0.01517,0.02503,0.23100,0.01372,0.01580,0.01931,0.04115,0.01813,18.78400,1,0.589956,0.732903,-5.445140,0.142466,2.174306,0.215558
126
+ phon_R01_S31_3,156.23900,195.10700,79.82000,0.00694,0.00004,0.00403,0.00395,0.01209,0.02343,0.22400,0.01289,0.01420,0.01720,0.03867,0.02020,19.19600,1,0.618663,0.728421,-5.944191,0.143359,1.929715,0.181988
127
+ phon_R01_S31_4,145.17400,198.10900,80.63700,0.00733,0.00005,0.00414,0.00422,0.01242,0.02362,0.23300,0.01235,0.01495,0.01944,0.03706,0.01874,18.85700,1,0.637518,0.735546,-5.594275,0.127950,1.765957,0.222716
128
+ phon_R01_S31_5,138.14500,197.23800,81.11400,0.00544,0.00004,0.00294,0.00327,0.00883,0.02791,0.24600,0.01484,0.01805,0.02259,0.04451,0.01794,18.17800,1,0.623209,0.738245,-5.540351,0.087165,1.821297,0.214075
129
+ phon_R01_S31_6,166.88800,198.96600,79.51200,0.00638,0.00004,0.00368,0.00351,0.01104,0.02857,0.25700,0.01547,0.01859,0.02301,0.04641,0.01796,18.33000,1,0.585169,0.736964,-5.825257,0.115697,1.996146,0.196535
130
+ phon_R01_S32_1,119.03100,127.53300,109.21600,0.00440,0.00004,0.00214,0.00192,0.00641,0.01033,0.09800,0.00538,0.00570,0.00811,0.01614,0.01724,26.84200,1,0.457541,0.699787,-6.890021,0.152941,2.328513,0.112856
131
+ phon_R01_S32_2,120.07800,126.63200,105.66700,0.00270,0.00002,0.00116,0.00135,0.00349,0.01022,0.09000,0.00476,0.00588,0.00903,0.01428,0.00487,26.36900,1,0.491345,0.718839,-5.892061,0.195976,2.108873,0.183572
132
+ phon_R01_S32_3,120.28900,128.14300,100.20900,0.00492,0.00004,0.00269,0.00238,0.00808,0.01412,0.12500,0.00703,0.00820,0.01194,0.02110,0.01610,23.94900,1,0.467160,0.724045,-6.135296,0.203630,2.539724,0.169923
133
+ phon_R01_S32_4,120.25600,125.30600,104.77300,0.00407,0.00003,0.00224,0.00205,0.00671,0.01516,0.13800,0.00721,0.00815,0.01310,0.02164,0.01015,26.01700,1,0.468621,0.735136,-6.112667,0.217013,2.527742,0.170633
134
+ phon_R01_S32_5,119.05600,125.21300,86.79500,0.00346,0.00003,0.00169,0.00170,0.00508,0.01201,0.10600,0.00633,0.00701,0.00915,0.01898,0.00903,23.38900,1,0.470972,0.721308,-5.436135,0.254909,2.516320,0.232209
135
+ phon_R01_S32_6,118.74700,123.72300,109.83600,0.00331,0.00003,0.00168,0.00171,0.00504,0.01043,0.09900,0.00490,0.00621,0.00903,0.01471,0.00504,25.61900,1,0.482296,0.723096,-6.448134,0.178713,2.034827,0.141422
136
+ phon_R01_S33_1,106.51600,112.77700,93.10500,0.00589,0.00006,0.00291,0.00319,0.00873,0.04932,0.44100,0.02683,0.03112,0.03651,0.08050,0.03031,17.06000,1,0.637814,0.744064,-5.301321,0.320385,2.375138,0.243080
137
+ phon_R01_S33_2,110.45300,127.61100,105.55400,0.00494,0.00004,0.00244,0.00315,0.00731,0.04128,0.37900,0.02229,0.02592,0.03316,0.06688,0.02529,17.70700,1,0.653427,0.706687,-5.333619,0.322044,2.631793,0.228319
138
+ phon_R01_S33_3,113.40000,133.34400,107.81600,0.00451,0.00004,0.00219,0.00283,0.00658,0.04879,0.43100,0.02385,0.02973,0.04370,0.07154,0.02278,19.01300,1,0.647900,0.708144,-4.378916,0.300067,2.445502,0.259451
139
+ phon_R01_S33_4,113.16600,130.27000,100.67300,0.00502,0.00004,0.00257,0.00312,0.00772,0.05279,0.47600,0.02896,0.03347,0.04134,0.08689,0.03690,16.74700,1,0.625362,0.708617,-4.654894,0.304107,2.672362,0.274387
140
+ phon_R01_S33_5,112.23900,126.60900,104.09500,0.00472,0.00004,0.00238,0.00290,0.00715,0.05643,0.51700,0.03070,0.03530,0.04451,0.09211,0.02629,17.36600,1,0.640945,0.701404,-5.634576,0.306014,2.419253,0.209191
141
+ phon_R01_S33_6,116.15000,131.73100,109.81500,0.00381,0.00003,0.00181,0.00232,0.00542,0.03026,0.26700,0.01514,0.01812,0.02770,0.04543,0.01827,18.80100,1,0.624811,0.696049,-5.866357,0.233070,2.445646,0.184985
142
+ phon_R01_S34_1,170.36800,268.79600,79.54300,0.00571,0.00003,0.00232,0.00269,0.00696,0.03273,0.28100,0.01713,0.01964,0.02824,0.05139,0.02485,18.54000,1,0.677131,0.685057,-4.796845,0.397749,2.963799,0.277227
143
+ phon_R01_S34_2,208.08300,253.79200,91.80200,0.00757,0.00004,0.00428,0.00428,0.01285,0.06725,0.57100,0.04016,0.04003,0.04464,0.12047,0.04238,15.64800,1,0.606344,0.665945,-5.410336,0.288917,2.665133,0.231723
144
+ phon_R01_S34_3,198.45800,219.29000,148.69100,0.00376,0.00002,0.00182,0.00215,0.00546,0.03527,0.29700,0.02055,0.02076,0.02530,0.06165,0.01728,18.70200,1,0.606273,0.661735,-5.585259,0.310746,2.465528,0.209863
145
+ phon_R01_S34_4,202.80500,231.50800,86.23200,0.00370,0.00002,0.00189,0.00211,0.00568,0.01997,0.18000,0.01117,0.01177,0.01506,0.03350,0.02010,18.68700,1,0.536102,0.632631,-5.898673,0.213353,2.470746,0.189032
146
+ phon_R01_S34_5,202.54400,241.35000,164.16800,0.00254,0.00001,0.00100,0.00133,0.00301,0.02662,0.22800,0.01475,0.01558,0.02006,0.04426,0.01049,20.68000,1,0.497480,0.630409,-6.132663,0.220617,2.576563,0.159777
147
+ phon_R01_S34_6,223.36100,263.87200,87.63800,0.00352,0.00002,0.00169,0.00188,0.00506,0.02536,0.22500,0.01379,0.01478,0.01909,0.04137,0.01493,20.36600,1,0.566849,0.574282,-5.456811,0.345238,2.840556,0.232861
148
+ phon_R01_S35_1,169.77400,191.75900,151.45100,0.01568,0.00009,0.00863,0.00946,0.02589,0.08143,0.82100,0.03804,0.05426,0.08808,0.11411,0.07530,12.35900,1,0.561610,0.793509,-3.297668,0.414758,3.413649,0.457533
149
+ phon_R01_S35_2,183.52000,216.81400,161.34000,0.01466,0.00008,0.00849,0.00819,0.02546,0.06050,0.61800,0.02865,0.04101,0.06359,0.08595,0.06057,14.36700,1,0.478024,0.768974,-4.276605,0.355736,3.142364,0.336085
150
+ phon_R01_S35_3,188.62000,216.30200,165.98200,0.01719,0.00009,0.00996,0.01027,0.02987,0.07118,0.72200,0.03474,0.04580,0.06824,0.10422,0.08069,12.29800,1,0.552870,0.764036,-3.377325,0.335357,3.274865,0.418646
151
+ phon_R01_S35_4,202.63200,565.74000,177.25800,0.01627,0.00008,0.00919,0.00963,0.02756,0.07170,0.83300,0.03515,0.04265,0.06460,0.10546,0.07889,14.98900,1,0.427627,0.775708,-4.892495,0.262281,2.910213,0.270173
152
+ phon_R01_S35_5,186.69500,211.96100,149.44200,0.01872,0.00010,0.01075,0.01154,0.03225,0.05830,0.78400,0.02699,0.03714,0.06259,0.08096,0.10952,12.52900,1,0.507826,0.762726,-4.484303,0.340256,2.958815,0.301487
153
+ phon_R01_S35_6,192.81800,224.42900,168.79300,0.03107,0.00016,0.01800,0.01958,0.05401,0.11908,1.30200,0.05647,0.07940,0.13778,0.16942,0.21713,8.44100,1,0.625866,0.768320,-2.434031,0.450493,3.079221,0.527367
154
+ phon_R01_S35_7,198.11600,233.09900,174.47800,0.02714,0.00014,0.01568,0.01699,0.04705,0.08684,1.01800,0.04284,0.05556,0.08318,0.12851,0.16265,9.44900,1,0.584164,0.754449,-2.839756,0.356224,3.184027,0.454721
155
+ phon_R01_S37_1,121.34500,139.64400,98.25000,0.00684,0.00006,0.00388,0.00332,0.01164,0.02534,0.24100,0.01340,0.01399,0.02056,0.04019,0.04179,21.52000,1,0.566867,0.670475,-4.865194,0.246404,2.013530,0.168581
156
+ phon_R01_S37_2,119.10000,128.44200,88.83300,0.00692,0.00006,0.00393,0.00300,0.01179,0.02682,0.23600,0.01484,0.01405,0.02018,0.04451,0.04611,21.82400,1,0.651680,0.659333,-4.239028,0.175691,2.451130,0.247455
157
+ phon_R01_S37_3,117.87000,127.34900,95.65400,0.00647,0.00005,0.00356,0.00300,0.01067,0.03087,0.27600,0.01659,0.01804,0.02402,0.04977,0.02631,22.43100,1,0.628300,0.652025,-3.583722,0.207914,2.439597,0.206256
158
+ phon_R01_S37_4,122.33600,142.36900,94.79400,0.00727,0.00006,0.00415,0.00339,0.01246,0.02293,0.22300,0.01205,0.01289,0.01771,0.03615,0.03191,22.95300,1,0.611679,0.623731,-5.435100,0.230532,2.699645,0.220546
159
+ phon_R01_S37_5,117.96300,134.20900,100.75700,0.01813,0.00015,0.01117,0.00718,0.03351,0.04912,0.43800,0.02610,0.02161,0.02916,0.07830,0.10748,19.07500,1,0.630547,0.646786,-3.444478,0.303214,2.964568,0.261305
160
+ phon_R01_S37_6,126.14400,154.28400,97.54300,0.00975,0.00008,0.00593,0.00454,0.01778,0.02852,0.26600,0.01500,0.01581,0.02157,0.04499,0.03828,21.53400,1,0.635015,0.627337,-5.070096,0.280091,2.892300,0.249703
161
+ phon_R01_S39_1,127.93000,138.75200,112.17300,0.00605,0.00005,0.00321,0.00318,0.00962,0.03235,0.33900,0.01360,0.01650,0.03105,0.04079,0.02663,19.65100,1,0.654945,0.675865,-5.498456,0.234196,2.103014,0.216638
162
+ phon_R01_S39_2,114.23800,124.39300,77.02200,0.00581,0.00005,0.00299,0.00316,0.00896,0.04009,0.40600,0.01579,0.01994,0.04114,0.04736,0.02073,20.43700,1,0.653139,0.694571,-5.185987,0.259229,2.151121,0.244948
163
+ phon_R01_S39_3,115.32200,135.73800,107.80200,0.00619,0.00005,0.00352,0.00329,0.01057,0.03273,0.32500,0.01644,0.01722,0.02931,0.04933,0.02810,19.38800,1,0.577802,0.684373,-5.283009,0.226528,2.442906,0.238281
164
+ phon_R01_S39_4,114.55400,126.77800,91.12100,0.00651,0.00006,0.00366,0.00340,0.01097,0.03658,0.36900,0.01864,0.01940,0.03091,0.05592,0.02707,18.95400,1,0.685151,0.719576,-5.529833,0.242750,2.408689,0.220520
165
+ phon_R01_S39_5,112.15000,131.66900,97.52700,0.00519,0.00005,0.00291,0.00284,0.00873,0.01756,0.15500,0.00967,0.01033,0.01363,0.02902,0.01435,21.21900,1,0.557045,0.673086,-5.617124,0.184896,1.871871,0.212386
166
+ phon_R01_S39_6,102.27300,142.83000,85.90200,0.00907,0.00009,0.00493,0.00461,0.01480,0.02814,0.27200,0.01579,0.01553,0.02073,0.04736,0.03882,18.44700,1,0.671378,0.674562,-2.929379,0.396746,2.560422,0.367233
167
+ phon_R01_S42_1,236.20000,244.66300,102.13700,0.00277,0.00001,0.00154,0.00153,0.00462,0.02448,0.21700,0.01410,0.01426,0.01621,0.04231,0.00620,24.07800,0,0.469928,0.628232,-6.816086,0.172270,2.235197,0.119652
168
+ phon_R01_S42_2,237.32300,243.70900,229.25600,0.00303,0.00001,0.00173,0.00159,0.00519,0.01242,0.11600,0.00696,0.00747,0.00882,0.02089,0.00533,24.67900,0,0.384868,0.626710,-7.018057,0.176316,1.852402,0.091604
169
+ phon_R01_S42_3,260.10500,264.91900,237.30300,0.00339,0.00001,0.00205,0.00186,0.00616,0.02030,0.19700,0.01186,0.01230,0.01367,0.03557,0.00910,21.08300,0,0.440988,0.628058,-7.517934,0.160414,1.881767,0.075587
170
+ phon_R01_S42_4,197.56900,217.62700,90.79400,0.00803,0.00004,0.00490,0.00448,0.01470,0.02177,0.18900,0.01279,0.01272,0.01439,0.03836,0.01337,19.26900,0,0.372222,0.725216,-5.736781,0.164529,2.882450,0.202879
171
+ phon_R01_S42_5,240.30100,245.13500,219.78300,0.00517,0.00002,0.00316,0.00283,0.00949,0.02018,0.21200,0.01176,0.01191,0.01344,0.03529,0.00965,21.02000,0,0.371837,0.646167,-7.169701,0.073298,2.266432,0.100881
172
+ phon_R01_S42_6,244.99000,272.21000,239.17000,0.00451,0.00002,0.00279,0.00237,0.00837,0.01897,0.18100,0.01084,0.01121,0.01255,0.03253,0.01049,21.52800,0,0.522812,0.646818,-7.304500,0.171088,2.095237,0.096220
173
+ phon_R01_S43_1,112.54700,133.37400,105.71500,0.00355,0.00003,0.00166,0.00190,0.00499,0.01358,0.12900,0.00664,0.00786,0.01140,0.01992,0.00435,26.43600,0,0.413295,0.756700,-6.323531,0.218885,2.193412,0.160376
174
+ phon_R01_S43_2,110.73900,113.59700,100.13900,0.00356,0.00003,0.00170,0.00200,0.00510,0.01484,0.13300,0.00754,0.00950,0.01285,0.02261,0.00430,26.55000,0,0.369090,0.776158,-6.085567,0.192375,1.889002,0.174152
175
+ phon_R01_S43_3,113.71500,116.44300,96.91300,0.00349,0.00003,0.00171,0.00203,0.00514,0.01472,0.13300,0.00748,0.00905,0.01148,0.02245,0.00478,26.54700,0,0.380253,0.766700,-5.943501,0.192150,1.852542,0.179677
176
+ phon_R01_S43_4,117.00400,144.46600,99.92300,0.00353,0.00003,0.00176,0.00218,0.00528,0.01657,0.14500,0.00881,0.01062,0.01318,0.02643,0.00590,25.44500,0,0.387482,0.756482,-6.012559,0.229298,1.872946,0.163118
177
+ phon_R01_S43_5,115.38000,123.10900,108.63400,0.00332,0.00003,0.00160,0.00199,0.00480,0.01503,0.13700,0.00812,0.00933,0.01133,0.02436,0.00401,26.00500,0,0.405991,0.761255,-5.966779,0.197938,1.974857,0.184067
178
+ phon_R01_S43_6,116.38800,129.03800,108.97000,0.00346,0.00003,0.00169,0.00213,0.00507,0.01725,0.15500,0.00874,0.01021,0.01331,0.02623,0.00415,26.14300,0,0.361232,0.763242,-6.016891,0.109256,2.004719,0.174429
179
+ phon_R01_S44_1,151.73700,190.20400,129.85900,0.00314,0.00002,0.00135,0.00162,0.00406,0.01469,0.13200,0.00728,0.00886,0.01230,0.02184,0.00570,24.15100,1,0.396610,0.745957,-6.486822,0.197919,2.449763,0.132703
180
+ phon_R01_S44_2,148.79000,158.35900,138.99000,0.00309,0.00002,0.00152,0.00186,0.00456,0.01574,0.14200,0.00839,0.00956,0.01309,0.02518,0.00488,24.41200,1,0.402591,0.762508,-6.311987,0.182459,2.251553,0.160306
181
+ phon_R01_S44_3,148.14300,155.98200,135.04100,0.00392,0.00003,0.00204,0.00231,0.00612,0.01450,0.13100,0.00725,0.00876,0.01263,0.02175,0.00540,23.68300,1,0.398499,0.778349,-5.711205,0.240875,2.845109,0.192730
182
+ phon_R01_S44_4,150.44000,163.44100,144.73600,0.00396,0.00003,0.00206,0.00233,0.00619,0.02551,0.23700,0.01321,0.01574,0.02148,0.03964,0.00611,23.13300,1,0.352396,0.759320,-6.261446,0.183218,2.264226,0.144105
183
+ phon_R01_S44_5,148.46200,161.07800,141.99800,0.00397,0.00003,0.00202,0.00235,0.00605,0.01831,0.16300,0.00950,0.01103,0.01559,0.02849,0.00639,22.86600,1,0.408598,0.768845,-5.704053,0.216204,2.679185,0.197710
184
+ phon_R01_S44_6,149.81800,163.41700,144.78600,0.00336,0.00002,0.00174,0.00198,0.00521,0.02145,0.19800,0.01155,0.01341,0.01666,0.03464,0.00595,23.00800,1,0.329577,0.757180,-6.277170,0.109397,2.209021,0.156368
185
+ phon_R01_S49_1,117.22600,123.92500,106.65600,0.00417,0.00004,0.00186,0.00270,0.00558,0.01909,0.17100,0.00864,0.01223,0.01949,0.02592,0.00955,23.07900,0,0.603515,0.669565,-5.619070,0.191576,2.027228,0.215724
186
+ phon_R01_S49_2,116.84800,217.55200,99.50300,0.00531,0.00005,0.00260,0.00346,0.00780,0.01795,0.16300,0.00810,0.01144,0.01756,0.02429,0.01179,22.08500,0,0.663842,0.656516,-5.198864,0.206768,2.120412,0.252404
187
+ phon_R01_S49_3,116.28600,177.29100,96.98300,0.00314,0.00003,0.00134,0.00192,0.00403,0.01564,0.13600,0.00667,0.00990,0.01691,0.02001,0.00737,24.19900,0,0.598515,0.654331,-5.592584,0.133917,2.058658,0.214346
188
+ phon_R01_S49_4,116.55600,592.03000,86.22800,0.00496,0.00004,0.00254,0.00263,0.00762,0.01660,0.15400,0.00820,0.00972,0.01491,0.02460,0.01397,23.95800,0,0.566424,0.667654,-6.431119,0.153310,2.161936,0.120605
189
+ phon_R01_S49_5,116.34200,581.28900,94.24600,0.00267,0.00002,0.00115,0.00148,0.00345,0.01300,0.11700,0.00631,0.00789,0.01144,0.01892,0.00680,25.02300,0,0.528485,0.663884,-6.359018,0.116636,2.152083,0.138868
190
+ phon_R01_S49_6,114.56300,119.16700,86.64700,0.00327,0.00003,0.00146,0.00184,0.00439,0.01185,0.10600,0.00557,0.00721,0.01095,0.01672,0.00703,24.77500,0,0.555303,0.659132,-6.710219,0.149694,1.913990,0.121777
191
+ phon_R01_S50_1,201.77400,262.70700,78.22800,0.00694,0.00003,0.00412,0.00396,0.01235,0.02574,0.25500,0.01454,0.01582,0.01758,0.04363,0.04441,19.36800,0,0.508479,0.683761,-6.934474,0.159890,2.316346,0.112838
192
+ phon_R01_S50_2,174.18800,230.97800,94.26100,0.00459,0.00003,0.00263,0.00259,0.00790,0.04087,0.40500,0.02336,0.02498,0.02745,0.07008,0.02764,19.51700,0,0.448439,0.657899,-6.538586,0.121952,2.657476,0.133050
193
+ phon_R01_S50_3,209.51600,253.01700,89.48800,0.00564,0.00003,0.00331,0.00292,0.00994,0.02751,0.26300,0.01604,0.01657,0.01879,0.04812,0.01810,19.14700,0,0.431674,0.683244,-6.195325,0.129303,2.784312,0.168895
194
+ phon_R01_S50_4,174.68800,240.00500,74.28700,0.01360,0.00008,0.00624,0.00564,0.01873,0.02308,0.25600,0.01268,0.01365,0.01667,0.03804,0.10715,17.88300,0,0.407567,0.655683,-6.787197,0.158453,2.679772,0.131728
195
+ phon_R01_S50_5,198.76400,396.96100,74.90400,0.00740,0.00004,0.00370,0.00390,0.01109,0.02296,0.24100,0.01265,0.01321,0.01588,0.03794,0.07223,19.02000,0,0.451221,0.643956,-6.744577,0.207454,2.138608,0.123306
196
+ phon_R01_S50_6,214.28900,260.27700,77.97300,0.00567,0.00003,0.00295,0.00317,0.00885,0.01884,0.19000,0.01026,0.01161,0.01373,0.03078,0.04398,21.20900,0,0.462803,0.664357,-5.724056,0.190667,2.555477,0.148569
diabetes_prediction.py ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import numpy as np
2
+ import pandas as pd
3
+ from sklearn.preprocessing import StandardScaler
4
+ from sklearn.model_selection import train_test_split
5
+ from sklearn import svm
6
+ from sklearn.metrics import accuracy_score
7
+
8
+ def load_data():
9
+ # Load the dataset
10
+ diabetes_dataset = pd.read_csv(r'C:\Users\HP\OneDrive\Desktop\HackAI\diabetes.csv')
11
+ return diabetes_dataset
12
+
13
+ def preprocess_data(diabetes_dataset):
14
+ # Prepare data
15
+ X = diabetes_dataset.drop(columns='Outcome', axis=1)
16
+ Y = diabetes_dataset['Outcome']
17
+
18
+ # Standardize features
19
+ scaler = StandardScaler()
20
+ scaler.fit(X)
21
+ standardized_data = scaler.transform(X)
22
+ X = standardized_data
23
+
24
+ # Split data
25
+ X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, stratify=Y, random_state=2)
26
+ return X_train, X_test, Y_train, Y_test, scaler
27
+
28
+ def train_model(X_train, Y_train):
29
+ # Train model
30
+ classifier = svm.SVC(kernel='linear')
31
+ classifier.fit(X_train, Y_train)
32
+ return classifier
33
+
34
+ def evaluate_model(classifier, X_train, X_test, Y_train, Y_test):
35
+ # Evaluate model
36
+ X_train_prediction = classifier.predict(X_train)
37
+ training_data_accuracy = accuracy_score(X_train_prediction, Y_train)
38
+ print('Accuracy score of the training data:', training_data_accuracy)
39
+
40
+ X_test_prediction = classifier.predict(X_test)
41
+ test_data_accuracy = accuracy_score(X_test_prediction, Y_test)
42
+ print('Accuracy score of the test data:', test_data_accuracy)
43
+
44
+ def predict_diabetes(input_data, classifier, scaler):
45
+ # Convert input to numpy array
46
+ input_data_as_numpy_array = np.asarray(input_data)
47
+
48
+ # Reshape for single prediction
49
+ input_data_reshaped = input_data_as_numpy_array.reshape(1, -1)
50
+
51
+ # Standardize the input
52
+ std_data = scaler.transform(input_data_reshaped)
53
+
54
+ # Make prediction
55
+ prediction = classifier.predict(std_data)
56
+
57
+ # Return result
58
+ if prediction[0] == 0:
59
+ return 'The person is not diabetic'
60
+ else:
61
+ return 'The person is diabetic'
62
+
63
+ if __name__ == "__main__":
64
+ # Load and preprocess data
65
+ diabetes_dataset = load_data()
66
+ X_train, X_test, Y_train, Y_test, scaler = preprocess_data(diabetes_dataset)
67
+
68
+ # Train model
69
+ classifier = train_model(X_train, Y_train)
70
+
71
+ # Evaluate model
72
+ evaluate_model(classifier, X_train, X_test, Y_train, Y_test)
73
+
74
+ # Example prediction
75
+ input_data = (5, 166, 72, 19, 175, 25.8, 0.587, 51)
76
+ result = predict_diabetes(input_data, classifier, scaler)
77
+ print(result)
models/breast_cancer_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa130fb1e520551ccede18f455b0e7a7430be515d25ee607b0c0e07a81db6657
3
+ size 234388
models/diabetes_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:27369860d4dda0c702e10bc350c81ee9b3736a797e6273ac6f07fc3fa246528d
3
+ size 136501
models/heart_disease_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0b2446c7a996cc4f6fe586de4be7464a46f8e02fea8fbd4ece916f35e098eee5
3
+ size 220880
models/parkinsons_model.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f26724c3b28d5987eeae0ccbdc182cf4e28f6015d4a42085fa97d6328f315d1b
3
+ size 65271
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ numpy>=1.21.0
2
+ pandas>=1.3.0
3
+ scikit-learn>=0.24.2
4
+ streamlit>=1.0.0
5
+ joblib>=1.0.1
6
+ python-dotenv>=0.19.0
src/__init__.py ADDED
File without changes
src/__pycache__/__init__.cpython-310.pyc ADDED
Binary file (133 Bytes). View file
 
src/__pycache__/__init__.cpython-311.pyc ADDED
Binary file (160 Bytes). View file
 
src/__pycache__/config.cpython-310.pyc ADDED
Binary file (673 Bytes). View file
 
src/__pycache__/config.cpython-311.pyc ADDED
Binary file (1.27 kB). View file
 
src/__pycache__/data_preprocessing.cpython-311.pyc ADDED
Binary file (1.46 kB). View file
 
src/__pycache__/model.cpython-310.pyc ADDED
Binary file (3.4 kB). View file
 
src/__pycache__/model.cpython-311.pyc ADDED
Binary file (6.2 kB). View file
 
src/config.py ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import os
2
+ from pathlib import Path
3
+
4
+ # Base paths
5
+ BASE_DIR = Path(__file__).resolve().parent.parent
6
+ DATA_DIR = os.path.join(BASE_DIR, "data")
7
+ MODEL_DIR = os.path.join(BASE_DIR, "models")
8
+
9
+ # Create directories if they don't exist
10
+ os.makedirs(MODEL_DIR, exist_ok=True)
11
+ os.makedirs(DATA_DIR, exist_ok=True)
12
+
13
+ # Model paths
14
+ BREAST_CANCER_MODEL_PATH = os.path.join(MODEL_DIR, "breast_cancer_model.pkl")
15
+ DIABETES_MODEL_PATH = os.path.join(MODEL_DIR, "diabetes_model.pkl")
16
+ HEART_DISEASE_MODEL_PATH = os.path.join(MODEL_DIR, "heart_disease_model.pkl")
17
+ PARKINSONS_MODEL_PATH = os.path.join(MODEL_DIR, "parkinsons_model.pkl")
18
+
19
+ # Model parameters
20
+ RANDOM_STATE = 42
21
+ TEST_SIZE = 0.2
src/data_preprocessing.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from sklearn.preprocessing import StandardScaler
3
+ import logging
4
+ from sklearn.datasets import load_breast_cancer
5
+
6
+ logging.basicConfig(level=logging.INFO)
7
+ logger = logging.getLogger(__name__)
8
+
9
+ def load_and_preprocess_data():
10
+ """Load and preprocess the breast cancer data."""
11
+ try:
12
+ # Load data from sklearn
13
+ dataset = load_breast_cancer()
14
+ feature_names = dataset.feature_names
15
+
16
+ # Create DataFrame
17
+ df = pd.DataFrame(dataset.data, columns=feature_names)
18
+
19
+ # Scale the features
20
+ scaler = StandardScaler()
21
+ X_scaled = scaler.fit_transform(df)
22
+ X_scaled = pd.DataFrame(X_scaled, columns=feature_names)
23
+
24
+ return X_scaled, dataset.target, scaler
25
+
26
+ except Exception as e:
27
+ logger.error(f"Error in data preprocessing: {str(e)}")
28
+ raise
src/model.py ADDED
@@ -0,0 +1,120 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sklearn.neighbors import KNeighborsClassifier
2
+ from sklearn.model_selection import train_test_split
3
+ from sklearn.metrics import accuracy_score
4
+ from .models.base_model import BaseModel
5
+ from .config import BREAST_CANCER_MODEL_PATH, RANDOM_STATE, TEST_SIZE
6
+ import numpy as np
7
+ import pandas as pd
8
+
9
+ class BreastCancerModel(BaseModel):
10
+ def __init__(self):
11
+ super().__init__(BREAST_CANCER_MODEL_PATH)
12
+ self.model = KNeighborsClassifier(
13
+ n_neighbors=5,
14
+ weights='distance'
15
+ )
16
+ self.feature_names = [
17
+ 'mean radius', 'mean texture', 'mean perimeter', 'mean area', 'mean smoothness',
18
+ 'mean compactness', 'mean concavity', 'mean concave points', 'mean symmetry', 'mean fractal dimension',
19
+ 'radius error', 'texture error', 'perimeter error', 'area error', 'smoothness error',
20
+ 'compactness error', 'concavity error', 'concave points error', 'symmetry error', 'fractal dimension error',
21
+ 'worst radius', 'worst texture', 'worst perimeter', 'worst area', 'worst smoothness',
22
+ 'worst compactness', 'worst concavity', 'worst concave points', 'worst symmetry', 'worst fractal dimension'
23
+ ]
24
+ self.X_train = None
25
+ self.y_train = None
26
+
27
+ # Define risk thresholds
28
+ self.high_risk_threshold = 0.5
29
+
30
+ # Feature importance weights
31
+ self.feature_weights = {
32
+ 'mean radius': 1.5,
33
+ 'mean texture': 1.2,
34
+ 'mean perimeter': 1.5,
35
+ 'mean area': 1.5,
36
+ 'mean concave points': 2.0,
37
+ 'worst radius': 1.8,
38
+ 'worst perimeter': 1.8,
39
+ 'worst area': 1.8,
40
+ 'worst concave points': 2.0
41
+ }
42
+
43
+ def train(self, X, y):
44
+ # Convert input to DataFrame if it's not already
45
+ if not isinstance(X, pd.DataFrame):
46
+ X = pd.DataFrame(X, columns=self.feature_names)
47
+
48
+ # Apply feature weights
49
+ X_weighted = X.copy()
50
+ for feature, weight in self.feature_weights.items():
51
+ if feature in X.columns:
52
+ X_weighted[feature] = X_weighted[feature] * weight
53
+
54
+ X_train, X_test, y_train, y_test = train_test_split(
55
+ X_weighted, y, test_size=TEST_SIZE, random_state=RANDOM_STATE,
56
+ stratify=y
57
+ )
58
+
59
+ # Store training data as DataFrame/Series
60
+ self.X_train = pd.DataFrame(X_train, columns=self.feature_names)
61
+ self.y_train = pd.Series(y_train)
62
+
63
+ self.model.fit(X_train, y_train)
64
+ return self.evaluate(X_train, X_test, y_train, y_test)
65
+
66
+ def predict(self, X):
67
+ # Convert input to DataFrame
68
+ if not isinstance(X, pd.DataFrame):
69
+ X = pd.DataFrame(X, columns=self.feature_names)
70
+
71
+ if self.scaler:
72
+ X = pd.DataFrame(self.scaler.transform(X), columns=self.feature_names)
73
+
74
+ # Apply feature weights
75
+ for feature, weight in self.feature_weights.items():
76
+ if feature in X.columns:
77
+ X[feature] = X[feature] * weight
78
+
79
+ # Get nearest neighbors
80
+ distances, indices = self.model.kneighbors(X)
81
+
82
+ # Ensure X_train and y_train are DataFrame/Series
83
+ if isinstance(self.X_train, np.ndarray):
84
+ self.X_train = pd.DataFrame(self.X_train, columns=self.feature_names)
85
+ if isinstance(self.y_train, np.ndarray):
86
+ self.y_train = pd.Series(self.y_train)
87
+
88
+ # Get similar cases
89
+ similar_cases = self.X_train.iloc[indices[0]]
90
+ similar_outcomes = self.y_train.iloc[indices[0]]
91
+
92
+ # Calculate weighted probability
93
+ weights = 1 / (distances[0] + 1e-6)
94
+ weighted_prob = np.sum(similar_outcomes * weights) / np.sum(weights)
95
+
96
+ # Check risk factors
97
+ if self.scaler:
98
+ X_orig = pd.DataFrame(self.scaler.inverse_transform(X), columns=self.feature_names)
99
+ else:
100
+ X_orig = X
101
+
102
+ # Add risk based on key measurements
103
+ if X_orig['mean radius'].iloc[0] > 15:
104
+ weighted_prob += 0.1
105
+ if X_orig['mean concave points'].iloc[0] > 0.05:
106
+ weighted_prob += 0.15
107
+ if X_orig['worst radius'].iloc[0] > 20:
108
+ weighted_prob += 0.15
109
+ if X_orig['worst concave points'].iloc[0] > 0.15:
110
+ weighted_prob += 0.15
111
+
112
+ # Make prediction based on threshold
113
+ prediction = np.array([0 if weighted_prob >= self.high_risk_threshold else 1])
114
+
115
+ return prediction, similar_cases, similar_outcomes, distances[0]
116
+
117
+ def evaluate(self, X_train, X_test, y_train, y_test):
118
+ train_accuracy = accuracy_score(y_train, self.model.predict(X_train))
119
+ test_accuracy = accuracy_score(y_test, self.model.predict(X_test))
120
+ return train_accuracy, test_accuracy
src/models/__pycache__/base_model.cpython-310.pyc ADDED
Binary file (1.63 kB). View file
 
src/models/__pycache__/base_model.cpython-311.pyc ADDED
Binary file (2.7 kB). View file
 
src/models/__pycache__/breast_cancer.cpython-311.pyc ADDED
Binary file (2.57 kB). View file
 
src/models/__pycache__/diabetes.cpython-310.pyc ADDED
Binary file (2.12 kB). View file
 
src/models/__pycache__/diabetes.cpython-311.pyc ADDED
Binary file (3.53 kB). View file
 
src/models/__pycache__/heart_disease.cpython-310.pyc ADDED
Binary file (2.92 kB). View file
 
src/models/__pycache__/heart_disease.cpython-311.pyc ADDED
Binary file (5.32 kB). View file
 
src/models/__pycache__/parkinsons.cpython-310.pyc ADDED
Binary file (4.08 kB). View file
 
src/models/__pycache__/parkinsons.cpython-311.pyc ADDED
Binary file (6.91 kB). View file
 
src/models/base_model.py ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from abc import ABC, abstractmethod
2
+ import joblib
3
+ import logging
4
+ import pickle
5
+ from pathlib import Path
6
+
7
+ logging.basicConfig(level=logging.INFO)
8
+ logger = logging.getLogger(__name__)
9
+
10
+ class BaseModel(ABC):
11
+ def __init__(self, model_path):
12
+ self.model_path = model_path
13
+ self.model = None
14
+ self.scaler = None
15
+ self.X_train = None
16
+ self.y_train = None
17
+
18
+ @abstractmethod
19
+ def train(self, X, y):
20
+ pass
21
+
22
+ @abstractmethod
23
+ def predict(self, X):
24
+ pass
25
+
26
+ def save_model(self):
27
+ model_data = {
28
+ 'model': self.model,
29
+ 'scaler': self.scaler,
30
+ 'X_train': self.X_train,
31
+ 'y_train': self.y_train
32
+ }
33
+ with open(self.model_path, 'wb') as f:
34
+ pickle.dump(model_data, f)
35
+
36
+ @classmethod
37
+ def load_model(cls):
38
+ instance = cls()
39
+ with open(instance.model_path, 'rb') as f:
40
+ model_data = pickle.load(f)
41
+ instance.model = model_data['model']
42
+ instance.scaler = model_data['scaler']
43
+ instance.X_train = model_data['X_train']
44
+ instance.y_train = model_data['y_train']
45
+ return instance
src/models/breast_cancer.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sklearn.linear_model import LogisticRegression
2
+ from sklearn.model_selection import train_test_split, cross_val_score
3
+ from sklearn.metrics import accuracy_score
4
+ from .base_model import BaseModel
5
+ from ..config import BREAST_CANCER_MODEL_PATH, RANDOM_STATE, TEST_SIZE
6
+
7
+ class BreastCancerModel(BaseModel):
8
+ def __init__(self):
9
+ super().__init__(BREAST_CANCER_MODEL_PATH)
10
+ self.model = LogisticRegression(max_iter=1000, random_state=RANDOM_STATE)
11
+
12
+ def train(self, X, y):
13
+ X_train, X_test, y_train, y_test = train_test_split(
14
+ X, y, test_size=TEST_SIZE, random_state=RANDOM_STATE
15
+ )
16
+
17
+ self.model.fit(X_train, y_train)
18
+ return self.evaluate(X_train, X_test, y_train, y_test)
19
+
20
+ def predict(self, X):
21
+ if self.scaler:
22
+ X = self.scaler.transform(X)
23
+ return self.model.predict(X)
24
+
25
+ def evaluate(self, X_train, X_test, y_train, y_test):
26
+ train_accuracy = accuracy_score(y_train, self.model.predict(X_train))
27
+ test_accuracy = accuracy_score(y_test, self.model.predict(X_test))
28
+ return train_accuracy, test_accuracy
src/models/diabetes.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sklearn.neighbors import KNeighborsClassifier
2
+ from sklearn.model_selection import train_test_split
3
+ from sklearn.metrics import accuracy_score
4
+ from .base_model import BaseModel
5
+ from ..config import DIABETES_MODEL_PATH, RANDOM_STATE, TEST_SIZE
6
+ import numpy as np
7
+
8
+ class DiabetesModel(BaseModel):
9
+ def __init__(self):
10
+ super().__init__(DIABETES_MODEL_PATH)
11
+ self.model = KNeighborsClassifier(
12
+ n_neighbors=7, # Increased neighbors for more robust prediction
13
+ weights='distance' # Weight points by distance
14
+ )
15
+ self.feature_names = [
16
+ 'Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness',
17
+ 'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age',
18
+ 'GlucoseBMI', 'GlucoseAge' # Added derived features
19
+ ]
20
+ self.X_train = None
21
+ self.y_train = None
22
+
23
+ # Define risk thresholds
24
+ self.high_risk_threshold = 0.6
25
+
26
+ def train(self, X, y):
27
+ X_train, X_test, y_train, y_test = train_test_split(
28
+ X, y, test_size=TEST_SIZE, random_state=RANDOM_STATE,
29
+ stratify=y # Ensure balanced split
30
+ )
31
+
32
+ self.X_train = X_train
33
+ self.y_train = y_train
34
+
35
+ self.model.fit(X_train, y_train)
36
+ return self.evaluate(X_train, X_test, y_train, y_test)
37
+
38
+ def predict(self, X):
39
+ if self.scaler:
40
+ X = self.scaler.transform(X)
41
+
42
+ # Get distances and indices of nearest neighbors
43
+ distances, indices = self.model.kneighbors(X)
44
+
45
+ # Get similar cases
46
+ similar_cases = self.X_train.iloc[indices[0]]
47
+ similar_outcomes = self.y_train.iloc[indices[0]]
48
+
49
+ # Calculate weighted probability
50
+ weights = 1 / (distances[0] + 1e-6) # Add small constant to avoid division by zero
51
+ weighted_prob = np.sum(similar_outcomes * weights) / np.sum(weights)
52
+
53
+ # Make prediction based on probability threshold
54
+ prediction = np.array([1 if weighted_prob >= self.high_risk_threshold else 0])
55
+
56
+ return prediction, similar_cases, similar_outcomes, distances[0]
57
+
58
+ def evaluate(self, X_train, X_test, y_train, y_test):
59
+ train_accuracy = accuracy_score(y_train, self.model.predict(X_train))
60
+ test_accuracy = accuracy_score(y_test, self.model.predict(X_test))
61
+ return train_accuracy, test_accuracy
src/models/heart_disease.py ADDED
@@ -0,0 +1,112 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sklearn.neighbors import KNeighborsClassifier
2
+ from sklearn.model_selection import train_test_split
3
+ from sklearn.metrics import accuracy_score
4
+ from .base_model import BaseModel
5
+ from ..config import HEART_DISEASE_MODEL_PATH, RANDOM_STATE, TEST_SIZE
6
+ import numpy as np
7
+ import pandas as pd
8
+
9
+ class HeartDiseaseModel(BaseModel):
10
+ def __init__(self):
11
+ super().__init__(HEART_DISEASE_MODEL_PATH)
12
+ self.model = KNeighborsClassifier(
13
+ n_neighbors=5,
14
+ weights='distance', # Weight by distance for better local sensitivity
15
+ metric='manhattan' # Manhattan distance for better feature importance
16
+ )
17
+ self.feature_names = [
18
+ 'age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg',
19
+ 'thalach', 'exang', 'oldpeak', 'slope', 'ca', 'thal'
20
+ ]
21
+ self.X_train = None
22
+ self.y_train = None
23
+
24
+ # Define risk thresholds
25
+ self.high_risk_threshold = 0.5
26
+
27
+ # Feature importance weights
28
+ self.feature_weights = {
29
+ 'age': 1.5, # Age is important
30
+ 'cp': 2.0, # Chest pain type is very important
31
+ 'trestbps': 1.2, # Blood pressure
32
+ 'chol': 1.2, # Cholesterol
33
+ 'thalach': 1.5, # Max heart rate
34
+ 'oldpeak': 1.8, # ST depression
35
+ 'ca': 2.0, # Number of vessels
36
+ 'thal': 1.5 # Thalassemia
37
+ }
38
+
39
+ def train(self, X, y):
40
+ X = X[self.feature_names]
41
+
42
+ # Apply feature weights
43
+ for feature, weight in self.feature_weights.items():
44
+ if feature in X.columns:
45
+ X[feature] = X[feature] * weight
46
+
47
+ X_train, X_test, y_train, y_test = train_test_split(
48
+ X, y, test_size=TEST_SIZE, random_state=RANDOM_STATE,
49
+ stratify=y # Ensure balanced split
50
+ )
51
+
52
+ self.X_train = X_train
53
+ self.y_train = y_train
54
+
55
+ self.model.fit(X_train, y_train)
56
+ return self.evaluate(X_train, X_test, y_train, y_test)
57
+
58
+ def predict(self, X):
59
+ if self.scaler:
60
+ X = self.scaler.transform(X)
61
+ X = pd.DataFrame(X, columns=self.feature_names)
62
+
63
+ # Apply feature weights
64
+ for feature, weight in self.feature_weights.items():
65
+ if feature in X.columns:
66
+ X[feature] = X[feature] * weight
67
+
68
+ # Get nearest neighbors
69
+ distances, indices = self.model.kneighbors(X)
70
+
71
+ # Get similar cases
72
+ similar_cases = self.X_train.iloc[indices[0]]
73
+ similar_outcomes = self.y_train.iloc[indices[0]]
74
+
75
+ # Calculate risk score based on weighted voting
76
+ weights = 1 / (distances[0] + 1e-6)
77
+ weighted_prob = np.sum(similar_outcomes * weights) / np.sum(weights)
78
+
79
+ # Calculate additional risk factors
80
+ risk_factors = []
81
+
82
+ # Convert X back to original scale if scaler exists
83
+ if self.scaler:
84
+ X_orig = pd.DataFrame(self.scaler.inverse_transform(X), columns=self.feature_names)
85
+ else:
86
+ X_orig = X
87
+
88
+ # Check various risk factors
89
+ if X_orig['age'].iloc[0] > 60:
90
+ weighted_prob += 0.1
91
+ if X_orig['cp'].iloc[0] >= 2: # Non-typical chest pain
92
+ weighted_prob += 0.1
93
+ if X_orig['trestbps'].iloc[0] > 140: # High blood pressure
94
+ weighted_prob += 0.1
95
+ if X_orig['chol'].iloc[0] > 240: # High cholesterol
96
+ weighted_prob += 0.1
97
+ if X_orig['thalach'].iloc[0] < 120: # Low max heart rate
98
+ weighted_prob += 0.1
99
+ if X_orig['oldpeak'].iloc[0] > 2: # High ST depression
100
+ weighted_prob += 0.15
101
+ if X_orig['ca'].iloc[0] > 0: # Presence of vessels colored by fluoroscopy
102
+ weighted_prob += 0.15 * X_orig['ca'].iloc[0]
103
+
104
+ # Make final prediction based on threshold
105
+ prediction = np.array([1 if weighted_prob >= self.high_risk_threshold else 0])
106
+
107
+ return prediction, similar_cases, similar_outcomes, distances[0]
108
+
109
+ def evaluate(self, X_train, X_test, y_train, y_test):
110
+ train_accuracy = accuracy_score(y_train, self.model.predict(X_train))
111
+ test_accuracy = accuracy_score(y_test, self.model.predict(X_test))
112
+ return train_accuracy, test_accuracy
src/models/parkinsons.py ADDED
@@ -0,0 +1,148 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from sklearn.neighbors import KNeighborsClassifier
2
+ from sklearn.model_selection import train_test_split
3
+ from sklearn.metrics import accuracy_score
4
+ from .base_model import BaseModel
5
+ from ..config import PARKINSONS_MODEL_PATH, RANDOM_STATE, TEST_SIZE
6
+ import numpy as np
7
+ import pandas as pd
8
+
9
+ class ParkinsonsModel(BaseModel):
10
+ def __init__(self):
11
+ super().__init__(PARKINSONS_MODEL_PATH)
12
+ self.model = KNeighborsClassifier(
13
+ n_neighbors=5, # Increased for more robust predictions
14
+ weights='distance',
15
+ metric='euclidean' # Changed to euclidean for better distance measurement
16
+ )
17
+ self.feature_names = [
18
+ 'MDVP:Fo(Hz)', 'MDVP:Fhi(Hz)', 'MDVP:Flo(Hz)', 'MDVP:Jitter(%)',
19
+ 'MDVP:Jitter(Abs)', 'MDVP:RAP', 'MDVP:PPQ', 'Jitter:DDP',
20
+ 'MDVP:Shimmer', 'MDVP:Shimmer(dB)', 'Shimmer:APQ3', 'Shimmer:APQ5',
21
+ 'MDVP:APQ', 'Shimmer:DDA', 'NHR', 'HNR', 'RPDE', 'DFA',
22
+ 'spread1', 'spread2', 'D2', 'PPE'
23
+ ]
24
+ self.X_train = None
25
+ self.y_train = None
26
+ self.scaler = None
27
+
28
+ # Feature ranges from dataset analysis
29
+ self.feature_ranges = {
30
+ 'MDVP:Fo(Hz)': (88.333, 260.105),
31
+ 'MDVP:Fhi(Hz)': (102.145, 592.030),
32
+ 'MDVP:Flo(Hz)': (65.476, 239.170),
33
+ 'MDVP:Jitter(%)': (0.001, 0.033),
34
+ 'MDVP:Shimmer': (0.009, 0.119),
35
+ 'HNR': (8.441, 33.047),
36
+ 'RPDE': (0.256, 0.685),
37
+ 'DFA': (0.574, 0.825),
38
+ 'spread1': (-7.968984, -2.434031),
39
+ 'spread2': (0.006, 0.527),
40
+ 'PPE': (0.044, 0.527)
41
+ }
42
+
43
+ # Add feature weights
44
+ self.feature_weights = {
45
+ 'MDVP:Fo(Hz)': 1.0,
46
+ 'MDVP:Fhi(Hz)': 1.0,
47
+ 'MDVP:Flo(Hz)': 1.0,
48
+ 'MDVP:Jitter(%)': 2.0,
49
+ 'MDVP:Jitter(Abs)': 1.5,
50
+ 'MDVP:RAP': 1.5,
51
+ 'MDVP:PPQ': 1.5,
52
+ 'Jitter:DDP': 1.5,
53
+ 'MDVP:Shimmer': 2.0,
54
+ 'MDVP:Shimmer(dB)': 1.5,
55
+ 'Shimmer:APQ3': 1.5,
56
+ 'Shimmer:APQ5': 1.5,
57
+ 'MDVP:APQ': 1.5,
58
+ 'Shimmer:DDA': 1.5,
59
+ 'NHR': 1.8,
60
+ 'HNR': 1.8,
61
+ 'RPDE': 1.5,
62
+ 'DFA': 1.5,
63
+ 'spread1': 1.2,
64
+ 'spread2': 1.2,
65
+ 'D2': 1.2,
66
+ 'PPE': 1.8
67
+ }
68
+
69
+ def is_input_valid(self, X):
70
+ """Check if input values are within expected ranges"""
71
+ X_df = pd.DataFrame(X, columns=self.feature_names)
72
+ for feature, (min_val, max_val) in self.feature_ranges.items():
73
+ if feature in X_df.columns:
74
+ value = X_df[feature].iloc[0]
75
+ # Extend the acceptable range by 20% on both sides
76
+ range_width = max_val - min_val
77
+ extended_min = min_val - (range_width * 0.2)
78
+ extended_max = max_val + (range_width * 0.2)
79
+ if value < extended_min or value > extended_max:
80
+ return False, f"{feature} value ({value:.3f}) is outside expected range ({min_val:.3f} - {max_val:.3f})"
81
+ return True, ""
82
+
83
+ def predict(self, X):
84
+ # Validate input
85
+ is_valid, message = self.is_input_valid(X)
86
+ if not is_valid:
87
+ raise ValueError(f"Invalid input: {message}")
88
+
89
+ if self.scaler:
90
+ X = self.scaler.transform(X)
91
+
92
+ X = pd.DataFrame(X, columns=self.feature_names)
93
+
94
+ # Apply feature weights
95
+ for feature, weight in self.feature_weights.items():
96
+ if feature in X.columns:
97
+ X[feature] = X[feature] * weight
98
+
99
+ # Get nearest neighbors
100
+ distances, indices = self.model.kneighbors(X)
101
+
102
+ # Convert X_train to DataFrame if it's a numpy array
103
+ if isinstance(self.X_train, np.ndarray):
104
+ self.X_train = pd.DataFrame(self.X_train, columns=self.feature_names)
105
+
106
+ # Get similar cases
107
+ similar_cases = self.X_train.iloc[indices[0]]
108
+ similar_outcomes = pd.Series(self.y_train).iloc[indices[0]] # Convert y_train to Series
109
+
110
+ # Calculate confidence score based on distances
111
+ max_distance = np.max(distances)
112
+ confidence_scores = 1 - (distances[0] / max_distance)
113
+
114
+ # Weight the predictions by confidence
115
+ weighted_pred = np.average(similar_outcomes, weights=confidence_scores)
116
+
117
+ # Make final prediction
118
+ prediction = np.array([1 if weighted_pred >= 0.5 else 0])
119
+
120
+ return prediction, similar_cases, similar_outcomes, distances[0]
121
+
122
+ def train(self, X, y):
123
+ # Convert input to DataFrame if it's not already
124
+ if not isinstance(X, pd.DataFrame):
125
+ X = pd.DataFrame(X, columns=self.feature_names)
126
+
127
+ # Apply feature weights
128
+ X_weighted = X.copy()
129
+ for feature, weight in self.feature_weights.items():
130
+ if feature in X.columns:
131
+ X_weighted[feature] = X_weighted[feature] * weight
132
+
133
+ X_train, X_test, y_train, y_test = train_test_split(
134
+ X_weighted, y, test_size=TEST_SIZE, random_state=RANDOM_STATE,
135
+ stratify=y
136
+ )
137
+
138
+ # Store as DataFrames/Series
139
+ self.X_train = pd.DataFrame(X_train, columns=self.feature_names)
140
+ self.y_train = pd.Series(y_train)
141
+
142
+ self.model.fit(X_train, y_train)
143
+ return self.evaluate(X_train, X_test, y_train, y_test)
144
+
145
+ def evaluate(self, X_train, X_test, y_train, y_test):
146
+ train_accuracy = accuracy_score(y_train, self.model.predict(X_train))
147
+ test_accuracy = accuracy_score(y_test, self.model.predict(X_test))
148
+ return train_accuracy, test_accuracy
src/preprocessing/__pycache__/diabetes.cpython-311.pyc ADDED
Binary file (2.3 kB). View file
 
src/preprocessing/__pycache__/heart_disease.cpython-311.pyc ADDED
Binary file (1.87 kB). View file
 
src/preprocessing/__pycache__/parkinsons.cpython-311.pyc ADDED
Binary file (1.93 kB). View file
 
src/preprocessing/diabetes.py ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from sklearn.preprocessing import StandardScaler
3
+ import logging
4
+ from pathlib import Path
5
+
6
+ logging.basicConfig(level=logging.INFO)
7
+ logger = logging.getLogger(__name__)
8
+
9
+ def load_and_preprocess_diabetes_data():
10
+ try:
11
+ # Load the dataset from local datasets folder
12
+ data_path = Path(__file__).resolve().parent.parent.parent / "datasets" / "diabetes.csv"
13
+ df = pd.read_csv(data_path)
14
+
15
+ feature_names = [
16
+ 'Pregnancies', # Number of times pregnant
17
+ 'Glucose', # Plasma glucose concentration (mg/dL)
18
+ 'BloodPressure', # Diastolic blood pressure (mm Hg)
19
+ 'SkinThickness', # Triceps skin fold thickness (mm)
20
+ 'Insulin', # 2-Hour serum insulin (mu U/ml)
21
+ 'BMI', # Body mass index
22
+ 'DiabetesPedigreeFunction', # Diabetes pedigree function
23
+ 'Age' # Age in years
24
+ ]
25
+
26
+ # Handle missing values (0 values in certain columns)
27
+ zero_not_accepted = ['Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI']
28
+ for column in zero_not_accepted:
29
+ mask = df[column] != 0
30
+ df.loc[~mask, column] = df.loc[mask, column].median()
31
+
32
+ # Add some derived features
33
+ df['GlucoseBMI'] = df['Glucose'] * df['BMI'] / 1000
34
+ df['GlucoseAge'] = df['Glucose'] * df['Age'] / 100
35
+ feature_names.extend(['GlucoseBMI', 'GlucoseAge'])
36
+
37
+ # Separate features and target
38
+ X = df[feature_names]
39
+ y = df['Outcome']
40
+
41
+ # Scale features
42
+ scaler = StandardScaler()
43
+ X_scaled = scaler.fit_transform(X)
44
+ X_scaled = pd.DataFrame(X_scaled, columns=feature_names)
45
+
46
+ return X_scaled, y, scaler
47
+
48
+ except Exception as e:
49
+ logger.error(f"Error in diabetes data preprocessing: {str(e)}")
50
+ raise
src/preprocessing/heart_disease.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pandas as pd
2
+ from sklearn.preprocessing import StandardScaler
3
+ import logging
4
+ from pathlib import Path
5
+
6
+ logging.basicConfig(level=logging.INFO)
7
+ logger = logging.getLogger(__name__)
8
+
9
+ def load_and_preprocess_heart_data():
10
+ try:
11
+ # Load the dataset from local datasets folder
12
+ data_path = Path(__file__).resolve().parent.parent.parent / "datasets" / "heart.csv"
13
+ df = pd.read_csv(data_path)
14
+
15
+ feature_names = [
16
+ 'age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg',
17
+ 'thalach', 'exang', 'oldpeak', 'slope', 'ca', 'thal'
18
+ ]
19
+
20
+ # Handle missing values if any
21
+ df = df.replace('?', pd.NA).dropna()
22
+
23
+ # Separate features and target
24
+ X = df[feature_names]
25
+ y = df['target']
26
+
27
+ # Scale features
28
+ scaler = StandardScaler()
29
+ X_scaled = scaler.fit_transform(X)
30
+ X_scaled = pd.DataFrame(X_scaled, columns=feature_names)
31
+
32
+ return X_scaled, y, scaler
33
+
34
+ except Exception as e:
35
+ logger.error(f"Error in heart disease data preprocessing: {str(e)}")
36
+ raise