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]