Artificial Neural Network Case Study:

Predict whether Pima Indians have an onset of diabetes within next five years.

The Original Researchers:

The Johns Hopkins University
Johns Hopkins Road
Laurel, MD 20707
(301) 953-6231

The Features

1. Number of times pregnant 
2. Plasma glucose concentration a 2 hours in an oral glucose tolerance test 
3. Diastolic blood pressure (mm Hg) 
4. Triceps skin fold thickness (mm) 
5. 2-Hour serum insulin (mu U/ml) 
6. Body mass index (weight in kg/(height in m)^2) 
7. Diabetes pedigree function 
8. Age (years) 
9. Class variable (0 or 1) 

The Machine Learning Code

---------------------------------------------------------------------------------------------------------------------------

# Import modules
from keras.models import Sequential
from keras.layers import Dense
import numpy

# fix random seed for reproducibility
seed = 7
numpy.random.seed(seed)

# load pima indians dataset
dataset = numpy.loadtxt("pima-indians-diabetes.csv", delimiter=",")

# split into input (X) and output (Y) variables
X = dataset[:,0:8]
Y = dataset[:,8]

# create model
model = Sequential()
model.add(Dense(12, input_dim=8, activation="relu", kernel_initializer="uniform"))
model.add(Dense(8, activation="relu", kernel_initializer="uniform"))
model.add(Dense(1, activation="sigmoid", kernel_initializer="uniform"))

# Compile model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

# Fit the model
model.fit(X, Y, epochs=150, batch_size=10, verbose=2)

# evaluate the model
scores = model.evaluate(X, Y)
print("\n%s: %.2f%%" % (model.metrics_names[1], scores[1]*100))

# calculate predictions
predictions = model.predict(X)

# round predictions
rounded = [round(x[0]) for x in predictions]
print(rounded)

---------------------------------------------------------------------------------------------------------------------------

The Running Results

Epoch 1/150
0s - loss: 0.6772 - acc: 0.6510
Epoch 2/150
0s - loss: 0.6584 - acc: 0.6510
Epoch 3/150
0s - loss: 0.6473 - acc: 0.6510
Epoch 4/150
0s - loss: 0.6392 - acc: 0.6510
Epoch 5/150
0s - loss: 0.6319 - acc: 0.6510
Epoch 6/150
0s - loss: 0.6182 - acc: 0.6510
Epoch 7/150
0s - loss: 0.6191 - acc: 0.6510
Epoch 8/150
0s - loss: 0.6127 - acc: 0.6510
Epoch 9/150
0s - loss: 0.6085 - acc: 0.6510
Epoch 10/150
0s - loss: 0.6155 - acc: 0.6510
Epoch 11/150
0s - loss: 0.6057 - acc: 0.6510
Epoch 12/150
0s - loss: 0.6032 - acc: 0.6510
Epoch 13/150
0s - loss: 0.6002 - acc: 0.6510
Epoch 14/150
0s - loss: 0.6023 - acc: 0.6510
Epoch 15/150
0s - loss: 0.6003 - acc: 0.6510
Epoch 16/150
0s - loss: 0.6020 - acc: 0.6510
Epoch 17/150
0s - loss: 0.5995 - acc: 0.6510
Epoch 18/150
0s - loss: 0.6019 - acc: 0.6510
Epoch 19/150
0s - loss: 0.5972 - acc: 0.6510
Epoch 20/150
0s - loss: 0.6001 - acc: 0.6510
Epoch 21/150
0s - loss: 0.5951 - acc: 0.6510
Epoch 22/150
0s - loss: 0.5954 - acc: 0.6510
Epoch 23/150
0s - loss: 0.5940 - acc: 0.6510
Epoch 24/150
0s - loss: 0.5986 - acc: 0.6510
Epoch 25/150
0s - loss: 0.5928 - acc: 0.6510
Epoch 26/150
0s - loss: 0.5958 - acc: 0.6510
Epoch 27/150
0s - loss: 0.5957 - acc: 0.6510
Epoch 28/150
0s - loss: 0.5888 - acc: 0.6510
Epoch 29/150
0s - loss: 0.5951 - acc: 0.6510
Epoch 30/150
0s - loss: 0.5907 - acc: 0.6510
Epoch 31/150
0s - loss: 0.5900 - acc: 0.6510
Epoch 32/150
0s - loss: 0.5890 - acc: 0.6510
Epoch 33/150
0s - loss: 0.5848 - acc: 0.6510
Epoch 34/150
0s - loss: 0.5897 - acc: 0.6510
Epoch 35/150
0s - loss: 0.5913 - acc: 0.6510
Epoch 36/150
0s - loss: 0.5836 - acc: 0.6510
Epoch 37/150
0s - loss: 0.5810 - acc: 0.6510
Epoch 38/150
0s - loss: 0.5904 - acc: 0.6510
Epoch 39/150
0s - loss: 0.5836 - acc: 0.6706
Epoch 40/150
0s - loss: 0.5856 - acc: 0.7005
Epoch 41/150
0s - loss: 0.5817 - acc: 0.6953
Epoch 42/150
0s - loss: 0.5820 - acc: 0.7044
Epoch 43/150
0s - loss: 0.5792 - acc: 0.7135
Epoch 44/150
0s - loss: 0.5850 - acc: 0.7057
Epoch 45/150
0s - loss: 0.5797 - acc: 0.7148
Epoch 46/150
0s - loss: 0.5758 - acc: 0.6979
Epoch 47/150
0s - loss: 0.5789 - acc: 0.7201
Epoch 48/150
0s - loss: 0.5769 - acc: 0.6888
Epoch 49/150
0s - loss: 0.5759 - acc: 0.7018
Epoch 50/150
0s - loss: 0.5761 - acc: 0.7070
Epoch 51/150
0s - loss: 0.5748 - acc: 0.7122
Epoch 52/150
0s - loss: 0.5739 - acc: 0.7018
Epoch 53/150
0s - loss: 0.5760 - acc: 0.7083
Epoch 54/150
0s - loss: 0.5734 - acc: 0.7044
Epoch 55/150
0s - loss: 0.5735 - acc: 0.7135
Epoch 56/150
0s - loss: 0.5748 - acc: 0.7070
Epoch 57/150
0s - loss: 0.5724 - acc: 0.7044
Epoch 58/150
0s - loss: 0.5725 - acc: 0.6992
Epoch 59/150
0s - loss: 0.5709 - acc: 0.7044
Epoch 60/150
0s - loss: 0.5727 - acc: 0.7031
Epoch 61/150
0s - loss: 0.5691 - acc: 0.7070
Epoch 62/150
0s - loss: 0.5700 - acc: 0.7240
Epoch 63/150
0s - loss: 0.5715 - acc: 0.6992
Epoch 64/150
0s - loss: 0.5713 - acc: 0.7122
Epoch 65/150
0s - loss: 0.5690 - acc: 0.7083
Epoch 66/150
0s - loss: 0.5642 - acc: 0.7109
Epoch 67/150
0s - loss: 0.5646 - acc: 0.7122
Epoch 68/150
0s - loss: 0.5650 - acc: 0.6979
Epoch 69/150
0s - loss: 0.5624 - acc: 0.7279
Epoch 70/150
0s - loss: 0.5679 - acc: 0.7148
Epoch 71/150
0s - loss: 0.5618 - acc: 0.7083
Epoch 72/150
0s - loss: 0.5579 - acc: 0.7070
Epoch 73/150
0s - loss: 0.5573 - acc: 0.7227
Epoch 74/150
0s - loss: 0.5626 - acc: 0.7018
Epoch 75/150
0s - loss: 0.5594 - acc: 0.7122
Epoch 76/150
0s - loss: 0.5567 - acc: 0.7161
Epoch 77/150
0s - loss: 0.5544 - acc: 0.7227
Epoch 78/150
0s - loss: 0.5522 - acc: 0.7227
Epoch 79/150
0s - loss: 0.5576 - acc: 0.7174
Epoch 80/150
0s - loss: 0.5538 - acc: 0.7227
Epoch 81/150
0s - loss: 0.5494 - acc: 0.7187
Epoch 82/150
0s - loss: 0.5559 - acc: 0.7031
Epoch 83/150
0s - loss: 0.5504 - acc: 0.7201
Epoch 84/150
0s - loss: 0.5478 - acc: 0.7214
Epoch 85/150
0s - loss: 0.5488 - acc: 0.7148
Epoch 86/150
0s - loss: 0.5525 - acc: 0.7161
Epoch 87/150
0s - loss: 0.5459 - acc: 0.7214
Epoch 88/150
0s - loss: 0.5459 - acc: 0.7135
Epoch 89/150
0s - loss: 0.5566 - acc: 0.7292
Epoch 90/150
0s - loss: 0.5470 - acc: 0.7174
Epoch 91/150
0s - loss: 0.5449 - acc: 0.7214
Epoch 92/150
0s - loss: 0.5436 - acc: 0.7135
Epoch 93/150
0s - loss: 0.5419 - acc: 0.7214
Epoch 94/150
0s - loss: 0.5455 - acc: 0.7096
Epoch 95/150
0s - loss: 0.5398 - acc: 0.7253
Epoch 96/150
0s - loss: 0.5449 - acc: 0.7253
Epoch 97/150
0s - loss: 0.5446 - acc: 0.7227
Epoch 98/150
0s - loss: 0.5393 - acc: 0.7214
Epoch 99/150
0s - loss: 0.5362 - acc: 0.7227
Epoch 100/150
0s - loss: 0.5378 - acc: 0.7305
Epoch 101/150
0s - loss: 0.5353 - acc: 0.7227
Epoch 102/150
0s - loss: 0.5350 - acc: 0.7435
Epoch 103/150
0s - loss: 0.5432 - acc: 0.7279
Epoch 104/150
0s - loss: 0.5421 - acc: 0.7396
Epoch 105/150
0s - loss: 0.5376 - acc: 0.7279
Epoch 106/150
0s - loss: 0.5332 - acc: 0.7279
Epoch 107/150
0s - loss: 0.5348 - acc: 0.7435
Epoch 108/150
0s - loss: 0.5318 - acc: 0.7383
Epoch 109/150
0s - loss: 0.5302 - acc: 0.7344
Epoch 110/150
0s - loss: 0.5258 - acc: 0.7409
Epoch 111/150
0s - loss: 0.5299 - acc: 0.7396
Epoch 112/150
0s - loss: 0.5253 - acc: 0.7396
Epoch 113/150
0s - loss: 0.5291 - acc: 0.7279
Epoch 114/150
0s - loss: 0.5262 - acc: 0.7409
Epoch 115/150
0s - loss: 0.5192 - acc: 0.7331
Epoch 116/150
0s - loss: 0.5239 - acc: 0.7370
Epoch 117/150
0s - loss: 0.5211 - acc: 0.7435
Epoch 118/150
0s - loss: 0.5266 - acc: 0.7370
Epoch 119/150
0s - loss: 0.5188 - acc: 0.7370
Epoch 120/150
0s - loss: 0.5144 - acc: 0.7422
Epoch 121/150
0s - loss: 0.5178 - acc: 0.7526
Epoch 122/150
0s - loss: 0.5198 - acc: 0.7435
Epoch 123/150
0s - loss: 0.5110 - acc: 0.7474
Epoch 124/150
0s - loss: 0.5069 - acc: 0.7552
Epoch 125/150
0s - loss: 0.5081 - acc: 0.7500
Epoch 126/150
0s - loss: 0.5088 - acc: 0.7448
Epoch 127/150
0s - loss: 0.5109 - acc: 0.7604
Epoch 128/150
0s - loss: 0.5011 - acc: 0.7604
Epoch 129/150
0s - loss: 0.5162 - acc: 0.7578
Epoch 130/150
0s - loss: 0.5050 - acc: 0.7617
Epoch 131/150
0s - loss: 0.5027 - acc: 0.7526
Epoch 132/150
0s - loss: 0.4938 - acc: 0.7682
Epoch 133/150
0s - loss: 0.5080 - acc: 0.7578
Epoch 134/150
0s - loss: 0.5036 - acc: 0.7630
Epoch 135/150
0s - loss: 0.4953 - acc: 0.7643
Epoch 136/150
0s - loss: 0.4964 - acc: 0.7500
Epoch 137/150
0s - loss: 0.5057 - acc: 0.7643
Epoch 138/150
0s - loss: 0.5004 - acc: 0.7617
Epoch 139/150
0s - loss: 0.4864 - acc: 0.7721
Epoch 140/150
0s - loss: 0.4938 - acc: 0.7617
Epoch 141/150
0s - loss: 0.4882 - acc: 0.7708
Epoch 142/150
0s - loss: 0.4949 - acc: 0.7526
Epoch 143/150
0s - loss: 0.4875 - acc: 0.7630
Epoch 144/150
0s - loss: 0.4925 - acc: 0.7682
Epoch 145/150
0s - loss: 0.4923 - acc: 0.7747
Epoch 146/150
0s - loss: 0.4911 - acc: 0.7669
Epoch 147/150
0s - loss: 0.4843 - acc: 0.7682
Epoch 148/150
0s - loss: 0.4945 - acc: 0.7695
Epoch 149/150
0s - loss: 0.4803 - acc: 0.7747
Epoch 150/150
0s - loss: 0.4778 - acc: 0.7721
[1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.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, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.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, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.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, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.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, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.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, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0]