Programming Assignment: Neural NetworkMachine Learning
Total points: 150
Note: This assignment is for each individual student to complete on his or her
own.
In this assignment, you will implement neural network by using backpropagation
algorithm. To get started, you will need to download the starter code and unzip its
contents to the directory where you wish to complete the assignment.
The problem considered in this assignment is to predict whether a person has
diabetes or not by using the dataset downloaded from
http://networkrepository.com/pima-indians-diabetes.php
You are required to use all eight input features (first eight columns) to build a
neural network model with a single hidden layer.
You are required the complete the following steps:
1. Split the dataset into two, one for training (70%) and another one for testing
(30%).
2. Normalize input features so that the mean value of each feature is 0 and the
standard deviation is 1.
3. Run backpropagation to learn the neural network model using the training data
4. Evaluate the performance of the model on the testing data
To get started, first open the main script assignmentNN.m. You are required to
modify this script as well as the following six scripts:
• loadData.m – Function to load and split the dataset into training and
testing sets
• featureNormalize.m – Function to normalize features
• trainNN.m – Function to run neural network model
• evaluateAccuracy.m – Function to evaluate the performance of the
neural network model
• predict.m – Function to predict the output
• sigmoid.m – Function to compute sigmoid
What to submit?
A zip file that includes the following items:
1) All codes (120 points)
2) A report that includes:
a. (10 points) All results displayed by the plot function (convergence
graph and accuracy). Specify the values of the hyperparameters
you used.
b. (10 points) A graph that shows the change of the accuracy as the
number of hidden units increases e.g., from 1 to 5. Make sure the
algorithm has converged when calculating the accuracy.
c. (10 points) Describe how your current implementation can be
potentially improved to achieve better performance.