README.md 3.17 KB
Newer Older
Jelena Banjac's avatar
Jelena Banjac committed
1
2
# Movie Recommendation System Simulation

Jelena Banjac's avatar
Jelena Banjac committed
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## Synopsis

The simulation of recommendation system for recommending movies to users, and predicting ratings users could give to movies they have not rated yet.

## Motivation

In this project, we will analyse the data of movies, users and votes taken from this [link](http://www.vukmalbasa.com/poslovna-inteligencija/file/movie%20recommend%20data.zip?attredirects=0&d=1).
to accomplish the movie rating prediction task. The two prevalent approaches to build recommendation systems are Collaborative Filtering and Content-Based recommending approaches. 
Collaborative filtering (social filtering) methods are based on exploiting similarities among profiles of users. 
Content-based methods are determined by features of the movies and the movies meeting the interests of given user.
We will train models with Item-Based and User-Based K nearest neighbours. These models belong to Collaborative filtering methods.
We will discuss positive and negative sides of our implementation. 
Lastly, we will calculate the rating prediction errors of each model in oreder to see if the output is close to the correct value.

## Project Structure
Jelena Banjac's avatar
Jelena Banjac committed
18
Order of scripts:
19
20
1. [Analyze Dataset](http://nbviewer.jupyter.org/urls/gitlab.com/jelena-b94/Movie_Recommendation_System/raw/master/notebooks/Analyzing%20Data-set.ipynb)
2. [Movie Similarity Matrix Exploration](http://nbviewer.jupyter.org/urls/gitlab.com/jelena-b94/Movie_Recommendation_System/raw/master/notebooks/Movies%20Similarity%20Matrix%20Exploration.ipynb)
Jelena Banjac's avatar
Jelena Banjac committed
21
3. [Item-Based Recommendation System](http://nbviewer.jupyter.org/urls/gitlab.com/jelena-b94/Movie_Recommendation_System/raw/master/notebooks/Item-Based%20Recommendation%20System.ipynb)
22
23
4. [User-Based Recommendation System](http://nbviewer.jupyter.org/urls/gitlab.com/jelena-b94/Movie_Recommendation_System/raw/master/notebooks/User-Based%20Recommendation%20System.ipynb)
5. [Degree Distribution](http://nbviewer.jupyter.org/urls/gitlab.com/jelena-b94/Movie_Recommendation_System/raw/master/notebooks/Degree%20Distribution.ipynb)
Jelena Banjac's avatar
Jelena Banjac committed
24
25
26
27
28

Directories:
- `data/*` - movie, user and vote datasets
- `htmls/*` - quick look with equations
- `notebooks/*` - detailed view with possibility of execution
Jelena Banjac's avatar
Jelena Banjac committed
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53

## Installation
In case one is interested to also play with the output, `jupyter notebook` environment should be set up.

Required instalations:
- [Python 3.6.0](https://www.python.org/downloads/release/python-360/)
  
Choose between these two:
- [Anaconda 3](https://www.continuum.io/downloads)
- [Test Drive - Conda](https://conda.io/docs/test-drive.html) for 30-minutes test drive
  
or just `pip install jupyter` in order to run jupyter notebooks.

Later, `imdbpie` python package would be required. Installation is simple using: `pip install imdbpie`.

## API Reference

- [NumPy](http://www.numpy.org/)
- [Pandas](http://pandas.pydata.org/)
- [Matplotlib](https://matplotlib.org/)
- [Scikit-learn](http://scikit-learn.org/)
- [imdbpie](https://pypi.python.org/pypi/imdbpie)

## Author

Jelena Banjac's avatar
Jelena Banjac committed
54
**Jelena Banjac** Student of Software Engineering and Information Technologies, University of Novi Sad, Serbia
Jelena Banjac's avatar
Jelena Banjac committed
55
56
57
58

## Mentor

**Dr. Vuk Malbaša** Professor at Faculty of Technical Sciences, University of Novi Sad, Serbia