- Ishan Gala, Pranav Kulkarni

# Training Neural Networks on Tabular Data

Neural Networks have become an extremely popular choice for any sort of data used in Machine Learning in the present, simply due to the versatility offered by the architecture of the networks.

Artificial neural networks (ANNs) and simulated neural networks (SNNs) are a subset of machine learning that is at the heart of deep learning methods. Their name and structure are derived from the human brain, and they resemble the way biological neurons communicate with one another.

A node layer contains an input layer, one or more hidden layers, and an output layer in artificial neural networks (ANNs). Each node, or artificial neuron, is connected to the others and has a weight and threshold linked with it. If a node's output exceeds a certain threshold value, the node is activated, and data is sent to the next tier of the network. If this is not the case, no data is sent on to the next layer of the network.

Training data is used by neural networks to learn and increase their accuracy over time. However, once these learning algorithms have been fine-tuned for accuracy, they become formidable tools in computer science and artificial intelligence, allowing us to quickly classify and cluster data. When compared to manual identification by human experts, tasks in speech recognition or image recognition can take minutes rather than hours. Google's search algorithm is one of the most well-known neural networks.

Using Artificial neural networks(ANNs) is now a great method for tabular data analysis because they require less feature engineering and maintenance than previous methods.

Random Forests, Gradient Boosting Machines, and K Nearest Neighbors are widely regarded as the best performing machine learning techniques for tabular data regression and classification tasks, with older techniques such as Support Vector Machines, which have dimensionality limitations, are generally not used extensively.

**The architecture of an artificial neural network :**

To understand the concept of the architecture of an artificial neural network, we have to understand what a neural network consists of. In order to define a neural network that consists of a large number of artificial neurons, which are termed units arranged in a sequence of layers. Lets us look at various types of layers available in an artificial neural network.

**Artificial Neural Network primarily consists of three layers :**

**Input Layer :**

As the name suggests, it accepts inputs in several different formats provided by the programmer.

**Hidden Layer :**

The hidden layer presents in-between input and output layers. It performs all the calculations to find hidden features and patterns.

**Output Layer :**

The input goes through a series of transformations using the hidden layer, which finally results in output that is conveyed using this layer.

The artificial neural network takes input and computes the weighted sum of the inputs and includes a bias. This computation is represented in the form of a transfer function.

It determines weighted total is passed as an input to an activation function to produce the output. Activation functions choose whether a node should fire or not. Only those who are fired make it to the output layer. There are distinctive activation functions available that can be applied to the sort of task we are performing.

**How do artificial neural networks work ?**

1. Artificial Neural Networks can be best represented as a weighted directed graph, where the artificial neurons form the nodes. The association between the neurons outputs and neuron inputs can be viewed as the directed edges with weights. The Artificial Neural Network receives the input signal from the external source in the form of a pattern and image in the form of a vector. These inputs are then mathematically assigned by the notations x(n) for every n number of inputs.

2. Afterward, each of the inputs is multiplied by its corresponding weights ( these weights are the details utilized by the artificial neural networks to solve a specific problem ). In general terms, these weights normally represent the strength of the interconnection between neurons inside the artificial neural network. All the weighted inputs are summarized inside the computing unit.

3. If the weighted sum is equal to zero, then bias is added to make the output non-zero or something else to scale up to the system's response. Bias has the same input, and weight equals to 1. Here the total of weighted inputs can be in the range of 0 to positive infinity. Here, to keep the response in the limits of the desired value, a certain maximum value is benchmarked, and the total of weighted inputs is passed through the activation function.

4. The activation function refers to the set of transfer functions used to achieve the desired output. There is a different kind of activation function, but primarily either linear or non-linear sets of functions. Some of the commonly used sets of activation functions are the Binary, linear, and Tan hyperbolic sigmoidal activation functions

**Let’s see an implementation of ANN on Wine Dataset :**

Collab Notebook Link:

https://colab.research.google.com/drive/1Gu7M_kldjCKrvcXNWxOj5UNDk3r3jPdn?usp=sharing

##### 1. Start with importing data & required libraries.

##### 2. Exploring the data using the head() function. It shows the first 5 rows of the data.

##### 3. Checking for null values.

##### 4. Visualizing the data

##### 5. Type conversion for red and white wine and prepare a data frame for train test split. Then splitting the data into train and test sets.

##### 6. Building our ANN Model & displaying the structure of our model.

##### 7. Training our ANN model.

##### 8. Evaluating our model.

**Conclusion :**

We have seen what is ANN, its structure, and how it works. We also built our own ANN Model. Now you can build upon this and create your own models and explore more. For more information, you can explore different blogs. Happy learning!!