https://github.com/anas436/collaborative-filtering-movie-recommendation-system-with-python
https://github.com/anas436/collaborative-filtering-movie-recommendation-system-with-python
jupyterlab math matplotlib-pyplot numpy pandas python3
Last synced: 8 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/anas436/collaborative-filtering-movie-recommendation-system-with-python
- Owner: Anas436
- Created: 2022-09-10T18:29:01.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-10T18:35:16.000Z (about 3 years ago)
- Last Synced: 2025-02-01T15:30:59.622Z (10 months ago)
- Topics: jupyterlab, math, matplotlib-pyplot, numpy, pandas, python3
- Language: Jupyter Notebook
- Homepage:
- Size: 702 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Collaborative-Filtering-Movie-Recommendation-System-with-Python
## Objectives
After completing this lab you will be able to:
* Create recommendation system based on collaborative filtering
Recommendation systems are a collection of algorithms used to recommend items to users based on information taken from the user. These systems have become ubiquitous and can be commonly seen in online stores, movies databases and job finders. In this notebook, we will explore recommendation systems based on Collaborative Filtering and implement simple version of one using Python and the Pandas library.
Table of contents
Now it's time to start our work on recommendation systems.
The first technique we're going to take a look at is called **Collaborative Filtering**, which is also known as **User-User Filtering**. As hinted by its alternate name, this technique uses other users to recommend items to the input user. It attempts to find users that have similar preferences and opinions as the input and then recommends items that they have liked to the input. There are several methods of finding similar users (Even some making use of Machine Learning), and the one we will be using here is going to be based on the **Pearson Correlation Function**.

The process for creating a User Based recommendation system is as follows:
* Select a user with the movies the user has watched
* Based on his rating of the movies, find the top X neighbours
* Get the watched movie record of the user for each neighbour
* Calculate a similarity score using some formula
* Recommend the items with the highest score
Let's begin by creating an input user to recommend movies to:
Notice: To add more movies, simply increase the amount of elements in the userInput. Feel free to add more in! Just be sure to write it in with capital letters and if a movie starts with a "The", like "The Matrix" then write it in like this: 'Matrix, The' .
### Advantages and Disadvantages of Collaborative Filtering
##### Advantages
* Takes other user's ratings into consideration
* Doesn't need to study or extract information from the recommended item
* Adapts to the user's interests which might change over time
##### Disadvantages
* Approximation function can be slow
* There might be a low amount of users to approximate
* Privacy issues when trying to learn the user's preferences
### Dataset: Dataset acquired from [GroupLens](https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%205/data/moviedataset.zip).