Skip to content

A recommender system that provides personalized movies recommendations to users based on their preferences and behavior using Collaborative Filtering.

Notifications You must be signed in to change notification settings

IssamLL/movies-recommender-system-collaborative-filtering

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Collaborative Filtering Recommender System

This project aims to build a recommendation system that provides personalized movies recommendations to users based on their preferences and behavior, leveraging the power of Collaborative Filtering.

Table of Contents

Introduction

In this project, we develop a Recommender System using Collaborative Filtering techniques. Collaborative Filtering is a widely-used approach for building recommendation systems that analyze user-item interactions to make personalized recommendations. We explore various algorithms, evaluate their performance, and optimize hyperparameters to provide the best possible recommendations to users.

Project Overview

Recommendation systems play a crucial role in various applications, from e-commerce platforms to content streaming services. In this project, we focus on the following key aspects:

Features

  • User-Item Matrix: Creating a user-item interaction matrix to represent user behavior.
  • Collaborative Filtering Algorithms: Implementing and comparing various collaborative filtering algorithms, including User-Based and Item-Based Collaborative Filtering.
  • Recommendation Generation: Generating top-N recommendations for users based on their historical interactions.
  • Evaluation Metrics: Evaluating the performance of the recommendation system using metrics such as RMSE and Hit Rate.
  • Hyperparameter Optimization: Fine-tuning model hyperparameters to improve recommendation accuracy.
  • Web Application: Preparing the model for deployment in a web application.

Getting Started

To get started with this project, follow these steps:

  1. Clone this repository to your local machine.
  2. Install the required dependencies by running pip install -r requirements.txt.
  3. Explore the Jupyter notebooks and Python scripts to understand the implementation details.
  4. Experiment with different collaborative filtering algorithms and datasets.
  5. Evaluate the performance of the recommendation system on your own datasets.
  6. Contribute to the project by adding new features, improving algorithms, or optimizing performance.

Modeling

We implement and evaluate different collaborative filtering algorithms, including SVD, NMF, KNNBasic, and SVDpp, to discover patterns in user behavior and make recommendations. We use the Surprise library for building and testing these models.

Evaluation

We evaluate the performance of the recommendation system using traditional metrics such as RMSE and MAE. Additionally, we introduce the concept of Hit Rate as a more direct measure of recommendation relevance.

Hyperparameter Optimization

We perform hyperparameter optimization for the KNNBasic model using the Hyperopt library. This step helps us fine-tune the model for better performance.

Model Export

The final recommendation model is saved for use in a web application. We export the model and necessary data to create a user-friendly application for generating movie recommendations.

Web Application

The recommendation model is deployed in a web application, allowing users to receive personalized movie recommendations based on their preferences.

About

A recommender system that provides personalized movies recommendations to users based on their preferences and behavior using Collaborative Filtering.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published