https://github.com/bursasha/flask-react-spearman-recsys
Movie Recommendation System based on the Spearman's rank correlation 🎞️
https://github.com/bursasha/flask-react-spearman-recsys
collaborative-filtering correlation-analysis flask mvc-architecture python reactjs recommendation-system spearman-rank-correlation sqlite3
Last synced: about 2 months ago
JSON representation
Movie Recommendation System based on the Spearman's rank correlation 🎞️
- Host: GitHub
- URL: https://github.com/bursasha/flask-react-spearman-recsys
- Owner: bursasha
- Created: 2024-02-28T20:22:59.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-06-13T17:01:30.000Z (12 months ago)
- Last Synced: 2025-02-09T01:17:29.180Z (4 months ago)
- Topics: collaborative-filtering, correlation-analysis, flask, mvc-architecture, python, reactjs, recommendation-system, spearman-rank-correlation, sqlite3
- Language: Python
- Homepage:
- Size: 1.75 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Movie Recommendation System 🎬
## Project Structure: 📁
- `backend/`: Backend directory housing server-side code written in **Python Flask**. It utilizes the **MVC architecture** and employs **SQLite3** as a testing database. This directory contains the logic for the recommendation system.
- `frontend/`: Frontend directory holding client-side code written in **ReactJS**.
- `README.md`: Markdown file providing an overview of the project.
- `SpearmanRecsysDocumentation.pdf`: PDF document containing documentation related to the Spearman Recommendation System.## Technology Stack: 🔍
- **Backend:**
- **Language:** Python
- **Framework:** Flask
- **Database:** SQLite3 for testing
- **Architecture:** MVC (Model-View-Controller)
- **Frontend:**
- **Language:** JavaScript
- **Library:** ReactJS
- **State Management:** React hooks and context
- **Algorithms:**
- **Collaborative Filtering:** For generating recommendations based on user similarities.
- **Spearman's Rank Correlation:** To measure the strength and direction of association between users' movie ratings.
- **Other Tools:**
- **Testing:** Unit tests for both backend and frontend components.
- **Build Tools:** Webpack and Babel for frontend build processes.## What is it capable of? 🚀
### **Core Features:** ⚙️
- Implements a **Movie Recommendation System** that serves users and their movie recommendations.
- Utilizes **collaborative filtering** and **correlation-based recommendation** algorithms.### **Overview:** 💡
The core of the Movie Recommendation System lies in the application of **collaborative filtering**, which predicts a user's interests by collecting preferences from many users. This method assumes that if two users agree on one issue, they are likely to agree on others as well.In this application, the **collaborative filtering** method is complemented with the use of **Spearman's rank correlation coefficient** for quantifying the statistical relationships between users' movie ratings.
## Concepts 📗
### Collaborative Filtering 🪛
- **Collaborative filtering** algorithms predict a user's interests by collecting preferences from many users.
- This technique assumes that if two users agree on one issue, they are likely to agree on others as well.
- In the context of this movie recommendation system, **collaborative filtering** is used to suggest movies that similar users have liked in the past.### Correlation-Based Recommendation 📊
- In addition to **collaborative filtering**, this project uses a **correlation-based recommendation system**.
- It employs the _Spearman's rank correlation coefficient_, a non-parametric measure of rank correlation.
- This measures the strength and direction of the association between two users' rankings of movies they have both rated.
- The correlation coefficient ranges from -1 to 1, where 1 implies a perfect increasing relationship and -1 implies a perfect decreasing relationship.
- This coefficient is used as a weight when predicting a user's rating for a movie they haven't seen yet, based on the ratings given by users with a high correlation coefficient.