criticalDanger
commited on
Commit
•
fe7f032
1
Parent(s):
041cd7b
Upload Medviser.ipynb
Browse files- Medviser.ipynb +363 -0
Medviser.ipynb
ADDED
@@ -0,0 +1,363 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"nbformat": 4,
|
3 |
+
"nbformat_minor": 0,
|
4 |
+
"metadata": {
|
5 |
+
"colab": {
|
6 |
+
"provenance": []
|
7 |
+
},
|
8 |
+
"kernelspec": {
|
9 |
+
"name": "python3",
|
10 |
+
"display_name": "Python 3"
|
11 |
+
},
|
12 |
+
"language_info": {
|
13 |
+
"name": "python"
|
14 |
+
}
|
15 |
+
},
|
16 |
+
"cells": [
|
17 |
+
{
|
18 |
+
"cell_type": "markdown",
|
19 |
+
"source": [
|
20 |
+
"Importing all the essential stuff"
|
21 |
+
],
|
22 |
+
"metadata": {
|
23 |
+
"id": "GY0lAyEVygnv"
|
24 |
+
}
|
25 |
+
},
|
26 |
+
{
|
27 |
+
"cell_type": "code",
|
28 |
+
"execution_count": null,
|
29 |
+
"metadata": {
|
30 |
+
"id": "OT7h2znxcoLp"
|
31 |
+
},
|
32 |
+
"outputs": [],
|
33 |
+
"source": [
|
34 |
+
"import pandas as pd\n",
|
35 |
+
"from sklearn.model_selection import train_test_split\n",
|
36 |
+
"from sklearn.linear_model import LogisticRegression\n",
|
37 |
+
"from sklearn.metrics import accuracy_score\n",
|
38 |
+
"\n",
|
39 |
+
"import matplotlib.pyplot as plt\n",
|
40 |
+
"import seaborn as sns\n",
|
41 |
+
"from sklearn.metrics import confusion_matrix\n",
|
42 |
+
"from sklearn.metrics import classification_report"
|
43 |
+
]
|
44 |
+
},
|
45 |
+
{
|
46 |
+
"cell_type": "markdown",
|
47 |
+
"source": [
|
48 |
+
"Reading and acquiring the dataset"
|
49 |
+
],
|
50 |
+
"metadata": {
|
51 |
+
"id": "9o1rKoKHymIw"
|
52 |
+
}
|
53 |
+
},
|
54 |
+
{
|
55 |
+
"cell_type": "code",
|
56 |
+
"source": [
|
57 |
+
"data=pd.read_csv('HeartDisease.csv')"
|
58 |
+
],
|
59 |
+
"metadata": {
|
60 |
+
"colab": {
|
61 |
+
"base_uri": "https://localhost:8080/"
|
62 |
+
},
|
63 |
+
"id": "8V_mP798d15d",
|
64 |
+
"outputId": "aeebfaf6-d62b-4bc0-eaa6-bd55fdc6333c",
|
65 |
+
"collapsed": true
|
66 |
+
},
|
67 |
+
"execution_count": null,
|
68 |
+
"outputs": [
|
69 |
+
{
|
70 |
+
"output_type": "stream",
|
71 |
+
"name": "stdout",
|
72 |
+
"text": [
|
73 |
+
" male age currentSmoker cigsPerDay BPMeds prevalentStroke \\\n",
|
74 |
+
"0 1 39 0 0 0 0 \n",
|
75 |
+
"1 0 46 0 0 0 0 \n",
|
76 |
+
"2 1 48 1 20 0 0 \n",
|
77 |
+
"3 0 61 1 30 0 0 \n",
|
78 |
+
"4 0 46 1 23 0 0 \n",
|
79 |
+
"... ... ... ... ... ... ... \n",
|
80 |
+
"4132 1 68 0 0 0 0 \n",
|
81 |
+
"4133 1 50 1 1 0 0 \n",
|
82 |
+
"4134 1 51 1 43 0 0 \n",
|
83 |
+
"4135 0 44 1 15 0 0 \n",
|
84 |
+
"4136 0 52 0 0 0 0 \n",
|
85 |
+
"\n",
|
86 |
+
" prevalentHyp diabetes BMI TenYearCHD \n",
|
87 |
+
"0 0 0 26.97 0 \n",
|
88 |
+
"1 0 0 28.73 0 \n",
|
89 |
+
"2 0 0 25.34 0 \n",
|
90 |
+
"3 1 0 28.58 1 \n",
|
91 |
+
"4 0 0 23.10 0 \n",
|
92 |
+
"... ... ... ... ... \n",
|
93 |
+
"4132 1 0 23.14 1 \n",
|
94 |
+
"4133 1 0 25.97 1 \n",
|
95 |
+
"4134 0 0 19.71 0 \n",
|
96 |
+
"4135 0 0 19.16 0 \n",
|
97 |
+
"4136 0 0 21.47 0 \n",
|
98 |
+
"\n",
|
99 |
+
"[4137 rows x 10 columns]\n",
|
100 |
+
"[]\n"
|
101 |
+
]
|
102 |
+
}
|
103 |
+
]
|
104 |
+
},
|
105 |
+
{
|
106 |
+
"cell_type": "markdown",
|
107 |
+
"source": [
|
108 |
+
"Getting pandas to understand the data"
|
109 |
+
],
|
110 |
+
"metadata": {
|
111 |
+
"id": "fFJpTqnZy54q"
|
112 |
+
}
|
113 |
+
},
|
114 |
+
{
|
115 |
+
"cell_type": "code",
|
116 |
+
"source": [
|
117 |
+
"df = pd.DataFrame(data)"
|
118 |
+
],
|
119 |
+
"metadata": {
|
120 |
+
"id": "_uL_UiU9eSqS"
|
121 |
+
},
|
122 |
+
"execution_count": null,
|
123 |
+
"outputs": []
|
124 |
+
},
|
125 |
+
{
|
126 |
+
"cell_type": "markdown",
|
127 |
+
"source": [
|
128 |
+
"Determining the Predicting column"
|
129 |
+
],
|
130 |
+
"metadata": {
|
131 |
+
"id": "9L7gSh_6zrP1"
|
132 |
+
}
|
133 |
+
},
|
134 |
+
{
|
135 |
+
"cell_type": "code",
|
136 |
+
"source": [
|
137 |
+
"X=df.drop('TenYearCHD',axis=1)\n",
|
138 |
+
"y=df['TenYearCHD']"
|
139 |
+
],
|
140 |
+
"metadata": {
|
141 |
+
"id": "2tt1BYjEed0h"
|
142 |
+
},
|
143 |
+
"execution_count": null,
|
144 |
+
"outputs": []
|
145 |
+
},
|
146 |
+
{
|
147 |
+
"cell_type": "markdown",
|
148 |
+
"source": [
|
149 |
+
"Spliting the dataset into Training and Testing datasets"
|
150 |
+
],
|
151 |
+
"metadata": {
|
152 |
+
"id": "2PvD1TRizwyr"
|
153 |
+
}
|
154 |
+
},
|
155 |
+
{
|
156 |
+
"cell_type": "code",
|
157 |
+
"source": [
|
158 |
+
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)"
|
159 |
+
],
|
160 |
+
"metadata": {
|
161 |
+
"id": "H-cuKGVZe2y0"
|
162 |
+
},
|
163 |
+
"execution_count": null,
|
164 |
+
"outputs": []
|
165 |
+
},
|
166 |
+
{
|
167 |
+
"cell_type": "markdown",
|
168 |
+
"source": [
|
169 |
+
"Determining the Model"
|
170 |
+
],
|
171 |
+
"metadata": {
|
172 |
+
"id": "T8SwT0C0z3z6"
|
173 |
+
}
|
174 |
+
},
|
175 |
+
{
|
176 |
+
"cell_type": "code",
|
177 |
+
"source": [
|
178 |
+
"model = LogisticRegression(random_state=42)\n",
|
179 |
+
"model.fit(X_train, y_train)"
|
180 |
+
],
|
181 |
+
"metadata": {
|
182 |
+
"colab": {
|
183 |
+
"base_uri": "https://localhost:8080/",
|
184 |
+
"height": 234
|
185 |
+
},
|
186 |
+
"id": "ofqGp7tjlu5P",
|
187 |
+
"outputId": "5071185d-e3aa-4fcb-b0b4-18104e2d313c",
|
188 |
+
"collapsed": true
|
189 |
+
},
|
190 |
+
"execution_count": null,
|
191 |
+
"outputs": [
|
192 |
+
{
|
193 |
+
"output_type": "stream",
|
194 |
+
"name": "stderr",
|
195 |
+
"text": [
|
196 |
+
"/usr/local/lib/python3.10/dist-packages/sklearn/linear_model/_logistic.py:458: ConvergenceWarning: lbfgs failed to converge (status=1):\n",
|
197 |
+
"STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n",
|
198 |
+
"\n",
|
199 |
+
"Increase the number of iterations (max_iter) or scale the data as shown in:\n",
|
200 |
+
" https://scikit-learn.org/stable/modules/preprocessing.html\n",
|
201 |
+
"Please also refer to the documentation for alternative solver options:\n",
|
202 |
+
" https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n",
|
203 |
+
" n_iter_i = _check_optimize_result(\n"
|
204 |
+
]
|
205 |
+
},
|
206 |
+
{
|
207 |
+
"output_type": "execute_result",
|
208 |
+
"data": {
|
209 |
+
"text/plain": [
|
210 |
+
"LogisticRegression(random_state=42)"
|
211 |
+
],
|
212 |
+
"text/html": [
|
213 |
+
"<style>#sk-container-id-1 {color: black;background-color: white;}#sk-container-id-1 pre{padding: 0;}#sk-container-id-1 div.sk-toggleable {background-color: white;}#sk-container-id-1 label.sk-toggleable__label {cursor: pointer;display: block;width: 100%;margin-bottom: 0;padding: 0.3em;box-sizing: border-box;text-align: center;}#sk-container-id-1 label.sk-toggleable__label-arrow:before {content: \"▸\";float: left;margin-right: 0.25em;color: #696969;}#sk-container-id-1 label.sk-toggleable__label-arrow:hover:before {color: black;}#sk-container-id-1 div.sk-estimator:hover label.sk-toggleable__label-arrow:before {color: black;}#sk-container-id-1 div.sk-toggleable__content {max-height: 0;max-width: 0;overflow: hidden;text-align: left;background-color: #f0f8ff;}#sk-container-id-1 div.sk-toggleable__content pre {margin: 0.2em;color: black;border-radius: 0.25em;background-color: #f0f8ff;}#sk-container-id-1 input.sk-toggleable__control:checked~div.sk-toggleable__content {max-height: 200px;max-width: 100%;overflow: auto;}#sk-container-id-1 input.sk-toggleable__control:checked~label.sk-toggleable__label-arrow:before {content: \"▾\";}#sk-container-id-1 div.sk-estimator input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-label input.sk-toggleable__control:checked~label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 input.sk-hidden--visually {border: 0;clip: rect(1px 1px 1px 1px);clip: rect(1px, 1px, 1px, 1px);height: 1px;margin: -1px;overflow: hidden;padding: 0;position: absolute;width: 1px;}#sk-container-id-1 div.sk-estimator {font-family: monospace;background-color: #f0f8ff;border: 1px dotted black;border-radius: 0.25em;box-sizing: border-box;margin-bottom: 0.5em;}#sk-container-id-1 div.sk-estimator:hover {background-color: #d4ebff;}#sk-container-id-1 div.sk-parallel-item::after {content: \"\";width: 100%;border-bottom: 1px solid gray;flex-grow: 1;}#sk-container-id-1 div.sk-label:hover label.sk-toggleable__label {background-color: #d4ebff;}#sk-container-id-1 div.sk-serial::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: 0;}#sk-container-id-1 div.sk-serial {display: flex;flex-direction: column;align-items: center;background-color: white;padding-right: 0.2em;padding-left: 0.2em;position: relative;}#sk-container-id-1 div.sk-item {position: relative;z-index: 1;}#sk-container-id-1 div.sk-parallel {display: flex;align-items: stretch;justify-content: center;background-color: white;position: relative;}#sk-container-id-1 div.sk-item::before, #sk-container-id-1 div.sk-parallel-item::before {content: \"\";position: absolute;border-left: 1px solid gray;box-sizing: border-box;top: 0;bottom: 0;left: 50%;z-index: -1;}#sk-container-id-1 div.sk-parallel-item {display: flex;flex-direction: column;z-index: 1;position: relative;background-color: white;}#sk-container-id-1 div.sk-parallel-item:first-child::after {align-self: flex-end;width: 50%;}#sk-container-id-1 div.sk-parallel-item:last-child::after {align-self: flex-start;width: 50%;}#sk-container-id-1 div.sk-parallel-item:only-child::after {width: 0;}#sk-container-id-1 div.sk-dashed-wrapped {border: 1px dashed gray;margin: 0 0.4em 0.5em 0.4em;box-sizing: border-box;padding-bottom: 0.4em;background-color: white;}#sk-container-id-1 div.sk-label label {font-family: monospace;font-weight: bold;display: inline-block;line-height: 1.2em;}#sk-container-id-1 div.sk-label-container {text-align: center;}#sk-container-id-1 div.sk-container {/* jupyter's `normalize.less` sets `[hidden] { display: none; }` but bootstrap.min.css set `[hidden] { display: none !important; }` so we also need the `!important` here to be able to override the default hidden behavior on the sphinx rendered scikit-learn.org. See: https://github.com/scikit-learn/scikit-learn/issues/21755 */display: inline-block !important;position: relative;}#sk-container-id-1 div.sk-text-repr-fallback {display: none;}</style><div id=\"sk-container-id-1\" class=\"sk-top-container\"><div class=\"sk-text-repr-fallback\"><pre>LogisticRegression(random_state=42)</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 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 sk-toggleable__label-arrow\">LogisticRegression</label><div class=\"sk-toggleable__content\"><pre>LogisticRegression(random_state=42)</pre></div></div></div></div></div>"
|
214 |
+
]
|
215 |
+
},
|
216 |
+
"metadata": {},
|
217 |
+
"execution_count": 6
|
218 |
+
}
|
219 |
+
]
|
220 |
+
},
|
221 |
+
{
|
222 |
+
"cell_type": "markdown",
|
223 |
+
"source": [
|
224 |
+
"Testing the model"
|
225 |
+
],
|
226 |
+
"metadata": {
|
227 |
+
"id": "qTjHM0Liz9MJ"
|
228 |
+
}
|
229 |
+
},
|
230 |
+
{
|
231 |
+
"cell_type": "code",
|
232 |
+
"source": [
|
233 |
+
"predictions = model.predict(X_test)\n",
|
234 |
+
"print(predictions)"
|
235 |
+
],
|
236 |
+
"metadata": {
|
237 |
+
"colab": {
|
238 |
+
"base_uri": "https://localhost:8080/"
|
239 |
+
},
|
240 |
+
"collapsed": true,
|
241 |
+
"id": "Y8UoF5H0kdTc",
|
242 |
+
"outputId": "b39aaa8d-a8b5-4a14-9afe-0aec39326633"
|
243 |
+
},
|
244 |
+
"execution_count": null,
|
245 |
+
"outputs": [
|
246 |
+
{
|
247 |
+
"output_type": "stream",
|
248 |
+
"name": "stdout",
|
249 |
+
"text": [
|
250 |
+
"[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
251 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
252 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
253 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
254 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
255 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
256 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
257 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
258 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0\n",
|
259 |
+
" 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
260 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
261 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
262 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
263 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
264 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
265 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
266 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
267 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0\n",
|
268 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
269 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
270 |
+
" 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
271 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
|
272 |
+
" 0 0 0 0 0 0 0 0 0 0 0 0 0 0]\n"
|
273 |
+
]
|
274 |
+
}
|
275 |
+
]
|
276 |
+
},
|
277 |
+
{
|
278 |
+
"cell_type": "markdown",
|
279 |
+
"source": [
|
280 |
+
"Evaluating the model"
|
281 |
+
],
|
282 |
+
"metadata": {
|
283 |
+
"id": "1I7fw8Ce0CKD"
|
284 |
+
}
|
285 |
+
},
|
286 |
+
{
|
287 |
+
"cell_type": "code",
|
288 |
+
"source": [
|
289 |
+
"accuracy = accuracy_score(y_test, predictions)\n",
|
290 |
+
"print(f'Model Accuracy: {accuracy}')"
|
291 |
+
],
|
292 |
+
"metadata": {
|
293 |
+
"colab": {
|
294 |
+
"base_uri": "https://localhost:8080/"
|
295 |
+
},
|
296 |
+
"id": "T3J0Mar3kqm3",
|
297 |
+
"outputId": "8f0f6fda-7b1d-4d42-eafc-f22dea600f39"
|
298 |
+
},
|
299 |
+
"execution_count": null,
|
300 |
+
"outputs": [
|
301 |
+
{
|
302 |
+
"output_type": "stream",
|
303 |
+
"name": "stdout",
|
304 |
+
"text": [
|
305 |
+
"Model Accuracy: 0.8405797101449275\n"
|
306 |
+
]
|
307 |
+
}
|
308 |
+
]
|
309 |
+
},
|
310 |
+
{
|
311 |
+
"cell_type": "markdown",
|
312 |
+
"source": [
|
313 |
+
"Confusion Matrix of the model"
|
314 |
+
],
|
315 |
+
"metadata": {
|
316 |
+
"id": "5QeMo5EV0GYt"
|
317 |
+
}
|
318 |
+
},
|
319 |
+
{
|
320 |
+
"cell_type": "code",
|
321 |
+
"source": [
|
322 |
+
"cm = confusion_matrix(y_test, predictions)"
|
323 |
+
],
|
324 |
+
"metadata": {
|
325 |
+
"id": "I7379CUrlW0n"
|
326 |
+
},
|
327 |
+
"execution_count": null,
|
328 |
+
"outputs": []
|
329 |
+
},
|
330 |
+
{
|
331 |
+
"cell_type": "code",
|
332 |
+
"source": [
|
333 |
+
"plt.figure(figsize=(6, 4))\n",
|
334 |
+
"sns.heatmap(cm, annot=True, fmt=\"d\", cmap=\"Blues\", cbar=False)\n",
|
335 |
+
"plt.xlabel('Predicted')\n",
|
336 |
+
"plt.ylabel('Actual')\n",
|
337 |
+
"plt.title('Confusion Matrix')\n",
|
338 |
+
"plt.show()"
|
339 |
+
],
|
340 |
+
"metadata": {
|
341 |
+
"colab": {
|
342 |
+
"base_uri": "https://localhost:8080/",
|
343 |
+
"height": 410
|
344 |
+
},
|
345 |
+
"id": "i5ix5ThYlk_f",
|
346 |
+
"outputId": "a38c7ab9-0b97-47ab-8ec6-c3746eec5a82"
|
347 |
+
},
|
348 |
+
"execution_count": null,
|
349 |
+
"outputs": [
|
350 |
+
{
|
351 |
+
"output_type": "display_data",
|
352 |
+
"data": {
|
353 |
+
"text/plain": [
|
354 |
+
"<Figure size 600x400 with 1 Axes>"
|
355 |
+
],
|
356 |
+
"image/png": "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L7p4OgC5bDablixZoi5durh6FBQjzkDALV26dEmbN29W27ZtHcs8PDzUtm1bbdiwwYWTAQAkAgJuKiUlRdnZ2apQoYLT8goVKig5OdlFUwEAchEQAADAGAEBt1S2bFl5enrq+PHjTsuPHz+uihUrumgqAEAuAgJuydvbW40bN9aaNWscy3JycrRmzRo1a9bMhZMBACSplKsHAPITFxenmJgY3Xbbbbr99ts1adIkpaenq1evXq4eDSjx0tLStHfvXsfjAwcOKCkpSWXKlFHlypVdOBmKC7dxwq1NnTpVr776qpKTk9WgQQNNnjxZTZs2dfVYQIm3bt06tWnTJs/ymJgYzZ49u/gHQrEjIAAAgDGugQAAAMYICAAAYIyAAAAAxggIAABgjIAAAADGCAgAAGCMgAAAAMYICAAAYIyAAFBkYmNj1aVLF8fj1q1b6/nnny/2OdatWyebzaazZ88W+76BPysCAiiBYmNjZbPZZLPZ5O3trerVq2vkyJG6fPlyke73o48+0qhRowq0Ln/pA+6NH6YFlFD33nuvZs2apczMTH3yySd69tln5eXlpSFDhjitd+nSJXl7exfKPsuUKVMo2wHgepyBAEoou92uihUrKjw8XE8//bTatm2rZcuWOT52GDNmjMLCwhQZGSlJOnz4sLp3767g4GCVKVNG0dHROnjwoGN72dnZiouLU3BwsG666Sa98MILuvJH7Vz5EUZmZqYGDx6sSpUqyW63q3r16po5c6YOHjzo+EFNISEhstlsio2NlfTrj3WPj49XlSpV5Ovrq/r162vRokVO+/nkk09Us2ZN+fr6qk2bNk5zAigcBAQASZKvr68uXbokSVqzZo12796t1atXa8WKFcrKylL79u0VEBCg//znP/r666/l7++ve++91/Ga8ePHa/bs2XrnnXe0fv16nT59WkuWLLnmPh955BEtWLBAkydP1q5duzRjxgz5+/urUqVKWrx4sSRp9+7dOnbsmF577TVJUnx8vN59911Nnz5dO3bsUP/+/fX3v/9dX331laRfQ6dr167q3LmzkpKS1Lt3b7344otF9bYBJZcFoMSJiYmxoqOjLcuyrJycHGv16tWW3W63Bg4caMXExFgVKlSwMjMzHevPnTvXioyMtHJychzLMjMzLV9fX+vzzz+3LMuyQkNDrYSEBMfzWVlZ1i233OLYj2VZVlRUlNWvXz/Lsixr9+7dliRr9erVV53xyy+/tCRZZ86ccSzLyMiwSpcubX3zzTdO6z722GPWww8/bFmWZQ0ZMsSqU6eO0/ODBw/Osy0AN4ZrIIASasWKFfL391dWVpZycnLUs2dPDR8+XM8++6zq1avndN3D1q1btXfvXgUEBDhtIyMjQ/v27dO5c+d07NgxNW3a1PFcqVKldNttt+X5GCNXUlKSPD09FRUVVeCZ9+7dqwsXLqhdu3ZOyy9duqSGDRtKknbt2uU0hyQ1a9aswPsAUDAEBFBCtWnTRm+88Ya8vb0VFhamUqX+/48DPz8/p3XT0tLUuHFjzZs3L892ypUrd1379/X1NX5NWlqaJGnlypW6+eabnZ6z2+3XNQeA60NAACWUn5+fqlevXqB1GzVqpIULF6p8+fIKDAy86jqhoaH67rvv1KpVK0nS5cuXtXnzZjVq1Oiq69erV085OTn66quv1LZt2zzP554Byc7OdiyrU6eO7Ha7Dh06lO+Zi9q1a2vZsmVOy7799tvfP0gARriIEsDv+tvf/qayZcsqOjpa//nPf3TgwAGtW7dOffv21ZEjRyRJ/fr10yuvvKKlS5fqp59+0jPPPHPN73CIiIhQTEyMHn30US1dutSxzQ8++ECSFB4eLpvNphUrVujkyZNKS0tTQECABg4cqP79+2vOnDnat2+ftmzZoilTpmjOnDmSpKeeekp79uzRoEGDtHv3bs2fP1+zZ88u6rcIKHEICAC/q3Tp0kpMTFTlypXVtWtX1a5dW4899pgyMjIcZyQGDBigf/zjH4qJiVGzZs0UEBCgBx544JrbfeONN9StWzc988wzqlWrlh5//HGlp6dLkm6++WaNGDFCL774oipUqKDnnntOkjRq1Ci99NJLio+PV+3atXXvvfdq5cqVqlKliiSpcuXKWrx4sZYuXar69etr+vTpGjt2bBG+O0DJZLPyu8IJAAAgH5yBAAAAxggIAABgjIAAAADGCAgAAGCMgAAAAMYICAAAYIyAAAAAxggIAABgjIAAAADGCAgAAGCMgAAAAMb+DwQEqoQD2+WqAAAAAElFTkSuQmCC\n"
|
357 |
+
},
|
358 |
+
"metadata": {}
|
359 |
+
}
|
360 |
+
]
|
361 |
+
}
|
362 |
+
]
|
363 |
+
}
|