Original article was published on Deep Learning on Medium

# Building a Neural Network with a Single Hidden Layer using Numpy

Implement a 2-class classification neural network with a single hidden layer using Numpy

In the previous post, we discussed how to make a simple neural network using NumPy. In this post, we will talk about how to make a deep neural network with a hidden layer.

**Import Libraries**

We will import some basic python libraries like numpy, matplotlib (for plotting graphs), sklearn (for data mining and analysis tool), etc. that we will need.

`import numpy as np`

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

**2. Dataset**

We will use the Banknote Dataset that involves predicting whether a given banknote is authentic given several measures taken from a photograph. It is a binary (2-class) classification problem. There are 1,372 observations with 4 input variables and 1 output variable. For more detail see the link.

`data = np.genfromtxt(‘data_banknote_authentication.txt’, delimiter = ‘,’)`

X = data[:,:4]

y = data[:, 4]

We can visualize the dataset using a scatter plot. We can see two classes (authentic and not authentic) are separable. Our goal is to build a model to fit this data i.e. we want to build a neural network model that defines regions as either authentic or unauthentic.

`plt.scatter(X[:, 0], X[:, 1], alpha=0.2,`

c=y, cmap=’viridis’)

plt.xlabel(‘variance of wavelet’)

plt.ylabel(‘skewness of wavelet’);