# Training A Neural Network To Make Coffee

**Introduction**

The goal of this project was to train a neural network to make coffee. The dataset contains 100,000 rows and 50 variables. Many of the variables in the training data are categorical, with no values repeating across rows. There are 6 different classes (dosage, blend, roast, origin, type and espresso) that need to be predicted by the neural network. I used a neural network in Keras with 3 layers – 1 input layer (input_data), a hidden layer with 10 nodes and an output layer (output). I trained this network on the full data set using stochastic gradient descent optimizer with learning rate set at 0.001 and momentum at 0.2

**The dataset**

The dataset we are going to use is called “Coffee Prediction”. It contains 100,000 rows and 50 variables. The data was obtained from Kaggle, a platform where you can find competitions with datasets that need to be analyzed by machine learning algorithms. In this case, the goal of this competition is to predict which type of coffee will be served at Starbucks based on its characteristics (roast level, origin etc).

The dataset contains 6 different classes: dosage (low/medium/high), blend (blend 1-6), roast (light/medium/dark), origin (Brazilian/Colombian/Kenyan) and type (espresso/cappuccino). We have 20 attributes per class:

**The dataset was obtained from the Kaggle competition “Coffee Prediction”**

The dataset was obtained from the Kaggle competition “Coffee Prediction” and contains 100,000 rows and 50 variables. Many of the variables are categorical, with no values repeating across rows. For example, one variable is whether or not a coffee shop has wifi (yes/no). Another variable is whether the coffee shop serves breakfast sandwiches (yes/no).

The neural network was trained using stochastic gradient descent with momentum on a GPU cluster at Google Cloud Platform.

**The dataset contains 100,000 rows and 50 variables.**

The dataset you’ll be working with is a collection of coffee recipes. It contains 100,000 rows and 50 variables. The variables are categorical, meaning that there is no value repeating across rows. There are 6 different classes (dosage, blend, roast, origin and type) that need to be predicted by your neural network (espresso).

**Many of the variables in the training data are categorical, with no values repeating across rows.**

In this section, you will learn about the data. The dataset contains categorical variables, which means that the values for each variable cannot be numeric. Because of this, no values are repeating across rows and there are 100,000 rows in total. There are 50 different variables in total as well.

**There are 6 different classes (dosage, blend, roast, origin, type and espresso) that need to be predicted by the neural network.**

There are 6 different classes (dosage, blend, roast, origin, type and espresso) that need to be predicted by the neural network. The neural network must be able to learn the relationship between the input variables and output variables. In addition it must also generalize from its training data set to new unseen data.

**I used a neural network in Keras with 3 layers – 1 input layer (input_data), a hidden layer with 10 nodes and an output layer (output). I trained this network on the full data set using stochastic gradient descent optimizer with learning rate set at 0.001 and momentum at 0.2**

I used Keras with 3 layers – 1 input layer (input_data), a hidden layer with 10 nodes and an output layer (output). I trained this network on the full data set using stochastic gradient descent optimizer with learning rate set at 0.001 and momentum at 0.2

Keras is a high-level neural networks API, written in Python and capable of running on top of TensorFlow, CNTK, or Theano. It was developed with a focus on enabling fast experimentation while making it easy to deploy productionalized models..

**Conclusion**

In the end, my neural network was able to achieve an accuracy of 91{6f258d09c8f40db517fd593714b0f1e1849617172a4381e4955c3e4e87edc1af} on the test dataset. This is not bad at all considering that there are so many variables in this problem, some of which are categorical with no values repeating across rows!