neural network

How to build a neural network recommendation system in less than 30 minutes

The need for neural networks

Quite often, we find ourselves in the need to build a simple and effective recommendation system, with less than half an hour to do so. Here, we will exemplify how to build a recommendation system with simple predictions on recommendations about which clothes to wear based on the outside temperature.

The input parameter for this recommendation system will be the value of temperature in Fahrenheit. The output parameter is a recommended clothing item from a set of predefined values. 

Of course, this example is easy to build yet very valuable if you’d like to extend it for additional input parameters and more complex recommendation algorithms.

The magic of this approach is based on neural networks algorithms. From another point of view, neural algorithms are not simple to create and train, but with the current state of libraries and frameworks available for free, it is now readily accessible to use in production solutions..

Select the right programming language

When creating a neural network, it is crucial to find and select the best tools and languages to get the job done effectively. Selecting the right programming language is crucial, and in this example, the best programming language to start working with neural networks is Python.

Python is a simple and powerful scripting language with outstanding performance. One of the key advantages of Python is its readable, clear, and compact code. Python is available on most computing platforms, such as Platform as a Service (PaaS) cloud services like Heroku and single-board computers like Raspberry Pi.

A decision about which version of Python to use (2.7 or 3.x) is a topic to be discussed separately. For this example, let’s consider installing Python version 3 to support the latest version of libraries.

Tools to install

As previously stated, install Python version 3. Take a look at this nice guide on how to install Python on a Macbook. Additionally, you can search the Internet on how to install Python in your operating system.

Next, you must install Tensorflow as a computation engine for the neural network. Tensorflow is a powerful mathematical framework that supports hardware acceleration such as nVidia CUDA. This helps train bigger neural network systems for complex recommendation systems, as necessary.

sudo python3 -m pip install tensorflow

Next, install the Numpy library to work with numerical data.

pip3 install numpy

Afterward, you must install Keras as the neural network framework. Keras is a top-notch, popular, and free solution.

sudo python3 -m pip install keras

Organize your data

Input data, which can be described as a set of Python values, will include these three types of clothing items for recommendation: parka, jacket, and raincoat.

output_data = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]])

Each of these clothing items will be recommended based on a temperature range, for instance, 40-20 °F, 60-40 °F and 80-60 °F.

temperature = np.array([[40, 20], [60, 40], [80, 60]])

Create the python script

Now, it’s time to build a simple Python script with Keras, as the one depicted below.

from keras.models import Sequential
from keras.layers import Dense
import numpy as np
from keras.optimizers import SGD

# Build dataset
input_data = np.array([[40, 20], [60, 40], [80, 60]])
output_data = np.array([[0, 0, 1], [0, 1, 0], [1, 0, 0]]) # cloth

seed = 7

model = Sequential()
model.add(Dense(8, input_dim=2, activation='sigmoid'))
model.add(Dense(256, input_dim=2, activation='sigmoid'))
model.add(Dense(3, activation='softmax'))

model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=['accuracy'])

# Fit the model, output_data, epochs=1000, batch_size=32, verbose=0)

# evaluate the model
loss, accuracy = model.evaluate(input_data, output_data)

# calculate predictions
predictions = model.predict(input_data)
print (np.round(predictions))

Subsequently, you must include the predicted output that corresponds to each temperature interval:

[[0. 0. 1.]
 [0. 1. 0.]
 [1. 0. 0.]]

The power of neural networks

Simple enough, right? Now, you’ve successfully created a simple neural network as a recommendation system for clothing items, depending on temperature conditions. If you’d like to extend the recommendation system to include more parameters or create a wide range of output results, you can find many online books on the subject, as well as numerous tutorials about Keras, Tensorflow, and Python.

As you deem appropriate, you can use any other programming language such as C++ and C#, as well as any other neural network library, to build your recommendation system.

This simple page of code shows the real power and beauty of neural network programming.

by Kostyantyn Kharchenko
February 25, 2019

Related articles

machine learning
Machine Learning: Basics and Takeaways
by Andriy Okhrimets
February 09, 2017
what is machine learning
What is Machine Learning?
by Svitla Team
November 12, 2018
Data Science vs Machine Learning
Data Science vs Machine Learning
by Svitla Team
December 12, 2018

Let's discuss your project

We look forward to learning more and consulting you about your product idea or helping you find the right solution for an existing project.

Thank you! We will contact very shortly.

Your message is received. Svitla's sales manager of your region will contact you to discuss how we could be helpful.