Skip to content

Commit 029bb1d

Browse files
authored
Add files via upload
1 parent 3ae4a88 commit 029bb1d

File tree

1 file changed

+374
-0
lines changed

1 file changed

+374
-0
lines changed

Artificial Neural Networks.ipynb

Lines changed: 374 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,374 @@
1+
{
2+
"cells": [
3+
{
4+
"cell_type": "code",
5+
"execution_count": 1,
6+
"metadata": {},
7+
"outputs": [
8+
{
9+
"name": "stderr",
10+
"output_type": "stream",
11+
"text": [
12+
"Using TensorFlow backend.\n"
13+
]
14+
}
15+
],
16+
"source": [
17+
"# first neural network with keras tutorial\n",
18+
"from numpy import loadtxt\n",
19+
"import pandas as pd\n",
20+
"from keras.models import Sequential\n",
21+
"from keras.layers import Dense"
22+
]
23+
},
24+
{
25+
"cell_type": "code",
26+
"execution_count": 2,
27+
"metadata": {},
28+
"outputs": [
29+
{
30+
"data": {
31+
"text/html": [
32+
"<div>\n",
33+
"<style scoped>\n",
34+
" .dataframe tbody tr th:only-of-type {\n",
35+
" vertical-align: middle;\n",
36+
" }\n",
37+
"\n",
38+
" .dataframe tbody tr th {\n",
39+
" vertical-align: top;\n",
40+
" }\n",
41+
"\n",
42+
" .dataframe thead th {\n",
43+
" text-align: right;\n",
44+
" }\n",
45+
"</style>\n",
46+
"<table border=\"1\" class=\"dataframe\">\n",
47+
" <thead>\n",
48+
" <tr style=\"text-align: right;\">\n",
49+
" <th></th>\n",
50+
" <th>Pregnancies</th>\n",
51+
" <th>Glucose</th>\n",
52+
" <th>BloodPressure</th>\n",
53+
" <th>SkinThickness</th>\n",
54+
" <th>Insulin</th>\n",
55+
" <th>BMI</th>\n",
56+
" <th>DiabetesPedigreeFunction</th>\n",
57+
" <th>Age</th>\n",
58+
" <th>Outcome</th>\n",
59+
" </tr>\n",
60+
" </thead>\n",
61+
" <tbody>\n",
62+
" <tr>\n",
63+
" <th>0</th>\n",
64+
" <td>6</td>\n",
65+
" <td>148</td>\n",
66+
" <td>72</td>\n",
67+
" <td>35</td>\n",
68+
" <td>0</td>\n",
69+
" <td>33.6</td>\n",
70+
" <td>0.627</td>\n",
71+
" <td>50</td>\n",
72+
" <td>1</td>\n",
73+
" </tr>\n",
74+
" <tr>\n",
75+
" <th>1</th>\n",
76+
" <td>1</td>\n",
77+
" <td>85</td>\n",
78+
" <td>66</td>\n",
79+
" <td>29</td>\n",
80+
" <td>0</td>\n",
81+
" <td>26.6</td>\n",
82+
" <td>0.351</td>\n",
83+
" <td>31</td>\n",
84+
" <td>0</td>\n",
85+
" </tr>\n",
86+
" <tr>\n",
87+
" <th>2</th>\n",
88+
" <td>8</td>\n",
89+
" <td>183</td>\n",
90+
" <td>64</td>\n",
91+
" <td>0</td>\n",
92+
" <td>0</td>\n",
93+
" <td>23.3</td>\n",
94+
" <td>0.672</td>\n",
95+
" <td>32</td>\n",
96+
" <td>1</td>\n",
97+
" </tr>\n",
98+
" <tr>\n",
99+
" <th>3</th>\n",
100+
" <td>1</td>\n",
101+
" <td>89</td>\n",
102+
" <td>66</td>\n",
103+
" <td>23</td>\n",
104+
" <td>94</td>\n",
105+
" <td>28.1</td>\n",
106+
" <td>0.167</td>\n",
107+
" <td>21</td>\n",
108+
" <td>0</td>\n",
109+
" </tr>\n",
110+
" <tr>\n",
111+
" <th>4</th>\n",
112+
" <td>0</td>\n",
113+
" <td>137</td>\n",
114+
" <td>40</td>\n",
115+
" <td>35</td>\n",
116+
" <td>168</td>\n",
117+
" <td>43.1</td>\n",
118+
" <td>2.288</td>\n",
119+
" <td>33</td>\n",
120+
" <td>1</td>\n",
121+
" </tr>\n",
122+
" <tr>\n",
123+
" <th>...</th>\n",
124+
" <td>...</td>\n",
125+
" <td>...</td>\n",
126+
" <td>...</td>\n",
127+
" <td>...</td>\n",
128+
" <td>...</td>\n",
129+
" <td>...</td>\n",
130+
" <td>...</td>\n",
131+
" <td>...</td>\n",
132+
" <td>...</td>\n",
133+
" </tr>\n",
134+
" <tr>\n",
135+
" <th>763</th>\n",
136+
" <td>10</td>\n",
137+
" <td>101</td>\n",
138+
" <td>76</td>\n",
139+
" <td>48</td>\n",
140+
" <td>180</td>\n",
141+
" <td>32.9</td>\n",
142+
" <td>0.171</td>\n",
143+
" <td>63</td>\n",
144+
" <td>0</td>\n",
145+
" </tr>\n",
146+
" <tr>\n",
147+
" <th>764</th>\n",
148+
" <td>2</td>\n",
149+
" <td>122</td>\n",
150+
" <td>70</td>\n",
151+
" <td>27</td>\n",
152+
" <td>0</td>\n",
153+
" <td>36.8</td>\n",
154+
" <td>0.340</td>\n",
155+
" <td>27</td>\n",
156+
" <td>0</td>\n",
157+
" </tr>\n",
158+
" <tr>\n",
159+
" <th>765</th>\n",
160+
" <td>5</td>\n",
161+
" <td>121</td>\n",
162+
" <td>72</td>\n",
163+
" <td>23</td>\n",
164+
" <td>112</td>\n",
165+
" <td>26.2</td>\n",
166+
" <td>0.245</td>\n",
167+
" <td>30</td>\n",
168+
" <td>0</td>\n",
169+
" </tr>\n",
170+
" <tr>\n",
171+
" <th>766</th>\n",
172+
" <td>1</td>\n",
173+
" <td>126</td>\n",
174+
" <td>60</td>\n",
175+
" <td>0</td>\n",
176+
" <td>0</td>\n",
177+
" <td>30.1</td>\n",
178+
" <td>0.349</td>\n",
179+
" <td>47</td>\n",
180+
" <td>1</td>\n",
181+
" </tr>\n",
182+
" <tr>\n",
183+
" <th>767</th>\n",
184+
" <td>1</td>\n",
185+
" <td>93</td>\n",
186+
" <td>70</td>\n",
187+
" <td>31</td>\n",
188+
" <td>0</td>\n",
189+
" <td>30.4</td>\n",
190+
" <td>0.315</td>\n",
191+
" <td>23</td>\n",
192+
" <td>0</td>\n",
193+
" </tr>\n",
194+
" </tbody>\n",
195+
"</table>\n",
196+
"<p>768 rows × 9 columns</p>\n",
197+
"</div>"
198+
],
199+
"text/plain": [
200+
" Pregnancies Glucose BloodPressure SkinThickness Insulin BMI \\\n",
201+
"0 6 148 72 35 0 33.6 \n",
202+
"1 1 85 66 29 0 26.6 \n",
203+
"2 8 183 64 0 0 23.3 \n",
204+
"3 1 89 66 23 94 28.1 \n",
205+
"4 0 137 40 35 168 43.1 \n",
206+
".. ... ... ... ... ... ... \n",
207+
"763 10 101 76 48 180 32.9 \n",
208+
"764 2 122 70 27 0 36.8 \n",
209+
"765 5 121 72 23 112 26.2 \n",
210+
"766 1 126 60 0 0 30.1 \n",
211+
"767 1 93 70 31 0 30.4 \n",
212+
"\n",
213+
" DiabetesPedigreeFunction Age Outcome \n",
214+
"0 0.627 50 1 \n",
215+
"1 0.351 31 0 \n",
216+
"2 0.672 32 1 \n",
217+
"3 0.167 21 0 \n",
218+
"4 2.288 33 1 \n",
219+
".. ... ... ... \n",
220+
"763 0.171 63 0 \n",
221+
"764 0.340 27 0 \n",
222+
"765 0.245 30 0 \n",
223+
"766 0.349 47 1 \n",
224+
"767 0.315 23 0 \n",
225+
"\n",
226+
"[768 rows x 9 columns]"
227+
]
228+
},
229+
"execution_count": 2,
230+
"metadata": {},
231+
"output_type": "execute_result"
232+
}
233+
],
234+
"source": [
235+
"# load the dataset\n",
236+
"dataset = pd.read_csv('~/Downloads/Data Science/data set/Diabetes.csv')\n",
237+
"dataset"
238+
]
239+
},
240+
{
241+
"cell_type": "code",
242+
"execution_count": 3,
243+
"metadata": {},
244+
"outputs": [],
245+
"source": [
246+
"# split into input (X) and output (y) variables\n",
247+
"X = dataset.iloc[:,0:8]\n",
248+
"y = dataset.iloc[:,8]"
249+
]
250+
},
251+
{
252+
"cell_type": "code",
253+
"execution_count": 4,
254+
"metadata": {},
255+
"outputs": [],
256+
"source": [
257+
"# make keras model\n",
258+
"model = Sequential()\n",
259+
"model.add(Dense(12, input_dim=8, activation='relu')) #first hidden layer has 12 nodes and uses the relu activation function\n",
260+
"model.add(Dense(8, activation='relu')) #second hidden layer has 8 nodes and uses the relu activation function\n",
261+
"model.add(Dense(1, activation='sigmoid')) #output layer has one node and uses the sigmoid activation function"
262+
]
263+
},
264+
{
265+
"cell_type": "code",
266+
"execution_count": 5,
267+
"metadata": {},
268+
"outputs": [],
269+
"source": [
270+
"# compile keras model\n",
271+
"#loss argument for cross entropy\n",
272+
"#binary_crossentropy For binary classification problems\n",
273+
"#adam is efficient stochastic gradient descent algorithm because automatically tunes itself for betterresults\n",
274+
"model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])"
275+
]
276+
},
277+
{
278+
"cell_type": "code",
279+
"execution_count": 6,
280+
"metadata": {},
281+
"outputs": [
282+
{
283+
"data": {
284+
"text/plain": [
285+
"<keras.callbacks.callbacks.History at 0x136f6ce10>"
286+
]
287+
},
288+
"execution_count": 6,
289+
"metadata": {},
290+
"output_type": "execute_result"
291+
}
292+
],
293+
"source": [
294+
"# fit model\n",
295+
"#epochs is hyperparameter, set no of times learn entire data.\n",
296+
"#batch_size is hyperparameter, no of sample process before model updated.\n",
297+
"model.fit(X, y, epochs=150, batch_size=10,verbose=0)"
298+
]
299+
},
300+
{
301+
"cell_type": "code",
302+
"execution_count": 7,
303+
"metadata": {},
304+
"outputs": [
305+
{
306+
"name": "stdout",
307+
"output_type": "stream",
308+
"text": [
309+
"Accuracy: 69.27\n"
310+
]
311+
}
312+
],
313+
"source": [
314+
"# evaluate the model\n",
315+
"_, accuracy = model.evaluate(X, y,verbose=0)\n",
316+
"print('Accuracy: %.2f' % (accuracy*100))"
317+
]
318+
},
319+
{
320+
"cell_type": "code",
321+
"execution_count": 8,
322+
"metadata": {},
323+
"outputs": [],
324+
"source": [
325+
"# make class predictions\n",
326+
"predictions = model.predict_classes(X)"
327+
]
328+
},
329+
{
330+
"cell_type": "code",
331+
"execution_count": 9,
332+
"metadata": {},
333+
"outputs": [
334+
{
335+
"name": "stdout",
336+
"output_type": "stream",
337+
"text": [
338+
"[6.0, 148.0, 72.0, 35.0, 0.0, 33.6, 0.627, 50.0] => 0 (expected 1)\n",
339+
"[1.0, 85.0, 66.0, 29.0, 0.0, 26.6, 0.35100000000000003, 31.0] => 0 (expected 0)\n",
340+
"[8.0, 183.0, 64.0, 0.0, 0.0, 23.3, 0.672, 32.0] => 0 (expected 1)\n",
341+
"[1.0, 89.0, 66.0, 23.0, 94.0, 28.1, 0.16699999999999998, 21.0] => 0 (expected 0)\n",
342+
"[0.0, 137.0, 40.0, 35.0, 168.0, 43.1, 2.2880000000000003, 33.0] => 1 (expected 1)\n"
343+
]
344+
}
345+
],
346+
"source": [
347+
"# summary the first 5 cases\n",
348+
"for i in range(5):\n",
349+
" print('%s => %d (expected %d)' % (X.iloc[i].tolist(), predictions[i], y.iloc[i]))"
350+
]
351+
}
352+
],
353+
"metadata": {
354+
"kernelspec": {
355+
"display_name": "Python 3",
356+
"language": "python",
357+
"name": "python3"
358+
},
359+
"language_info": {
360+
"codemirror_mode": {
361+
"name": "ipython",
362+
"version": 3
363+
},
364+
"file_extension": ".py",
365+
"mimetype": "text/x-python",
366+
"name": "python",
367+
"nbconvert_exporter": "python",
368+
"pygments_lexer": "ipython3",
369+
"version": "3.7.7"
370+
}
371+
},
372+
"nbformat": 4,
373+
"nbformat_minor": 4
374+
}

0 commit comments

Comments
 (0)