{"id":23031638,"url":"https://github.com/mnitin-reddy/collaborative-filtering-based-recommendation-system","last_synced_at":"2026-04-11T00:02:32.292Z","repository":{"id":259439110,"uuid":"869926384","full_name":"MNitin-Reddy/Collaborative-Filtering-based-Recommendation-System","owner":"MNitin-Reddy","description":"This project is a Book Recommendation System that uses two main approaches: Popularity-Based and Collaborative Filtering. It recommends top books based on their rating frequency and average ratings, and also provides personalized book suggestions by analyzing user interactions.","archived":false,"fork":false,"pushed_at":"2024-12-08T09:54:07.000Z","size":42823,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T21:33:51.724Z","etag":null,"topics":["collaborative-filtering","numpy","pandas","popularity-based-recommendation","python","recommendation-system","scikit-learn"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MNitin-Reddy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-09T06:25:58.000Z","updated_at":"2024-12-08T09:54:10.000Z","dependencies_parsed_at":"2024-12-15T15:50:05.270Z","dependency_job_id":null,"html_url":"https://github.com/MNitin-Reddy/Collaborative-Filtering-based-Recommendation-System","commit_stats":null,"previous_names":["mnitin-reddy/recommendation-system"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MNitin-Reddy/Collaborative-Filtering-based-Recommendation-System","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNitin-Reddy%2FCollaborative-Filtering-based-Recommendation-System","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNitin-Reddy%2FCollaborative-Filtering-based-Recommendation-System/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNitin-Reddy%2FCollaborative-Filtering-based-Recommendation-System/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNitin-Reddy%2FCollaborative-Filtering-based-Recommendation-System/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MNitin-Reddy","download_url":"https://codeload.github.com/MNitin-Reddy/Collaborative-Filtering-based-Recommendation-System/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MNitin-Reddy%2FCollaborative-Filtering-based-Recommendation-System/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264357296,"owners_count":23595576,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["collaborative-filtering","numpy","pandas","popularity-based-recommendation","python","recommendation-system","scikit-learn"],"created_at":"2024-12-15T15:39:57.071Z","updated_at":"2025-12-30T22:14:28.655Z","avatar_url":"https://github.com/MNitin-Reddy.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Collaborative Filtering-Based Book Recommendation System\r\n\r\n📚 **Project Overview**  \r\nThis project implements a **Book Recommendation System** using a combination of:  \r\n- **Popularity-Based Recommendations** for suggesting the top 50 books based on aggregated ratings.  \r\n- **Collaborative Filtering** for personalized book recommendations tailored to individual users.  \r\n\r\nThe system processes datasets containing books, users, and ratings to deliver meaningful recommendations. It is built with Python, employs ``cosine similarity`` for collaborative filtering, and is deployed as a web application using Flask.\r\n\r\n---\r\n\r\n## 💡 **Features**\r\n- **Popularity-Based Recommendations**: Ranks books based on average rating and number of ratings to showcase the top 50 highly-rated books.  \r\n- **Personalized Recommendations**: Uses collaborative filtering to recommend books based on user preferences and similar users.  \r\n- **Efficient Data Processing**: Filters out invalid or sparse data to improve recommendation quality.  \r\n- **Flask Web Application**: Provides a user-friendly interface for browsing and receiving recommendations.  \r\n\r\n---\r\n\r\n## 🔍 **Collaborative Filtering Explained**  \r\nCollaborative filtering is a machine learning technique used for making recommendations by finding similarities between users or items. In this project, we use **item-based collaborative filtering**, which focuses on identifying books similar to a given book based on user ratings.\r\n\r\n### **Steps**\r\n1. **Matrix Creation**: A pivot table (`pt`) is created where rows represent books, columns represent users, and values are ratings.  \r\n2. **Similarity Computation**: Cosine similarity is calculated between books to identify similar items.  \r\n3. **Recommendation Generation**: For a given book, top similar books are ranked and suggested to the user.\r\n\r\n---\r\n\r\n## 📂 **Datasets**\r\nThe system utilizes three datasets:\r\n\r\n1. **Books Dataset (`Books.csv`)**:  \r\n   Contains book information, including title, author, year, publisher, and cover image URLs.  \r\n   - Example Columns: `ISBN`, `Book-Title`, `Book-Author`, `Year-Of-Publication`, `Publisher`  \r\n\r\n2. **Ratings Dataset (`Ratings.csv`)**:  \r\n   Holds user ratings for books.  \r\n   - Example Columns: `User-ID`, `ISBN`, `Book-Rating`  \r\n\r\n3. **Users Dataset (`Users.csv`)**:  \r\n   Stores demographic details of users.  \r\n   - Example Columns: `User-ID`, `Location`, `Age`  \r\n\r\n---\r\n\r\n## 🚀 **Methodology**\r\n\r\n### **1. Popularity-Based Recommendation System**\r\n**Goal**: Recommend the top 50 books based on ratings and popularity.  \r\n\r\n**Steps**:  \r\n- Aggregate the number of ratings and average ratings for each book.  \r\n- Filter books with a significant number of ratings (e.g., \u003e250 ratings).  \r\n- Rank and display the top 50 books with their titles, authors, ratings, and cover images.  \r\n\r\n---\r\n\r\n### **2. Collaborative Filtering-Based System**\r\n**Goal**: Generate personalized book recommendations.  \r\n\r\n**Steps**:  \r\n1. **User Filtering**: Select users with more than 200 ratings to ensure meaningful interactions.  \r\n2. **Book Filtering**: Retain books rated by at least 50 users for quality recommendations.  \r\n3. **Pivot Table**: Create a user-book rating matrix (`pt`).  \r\n4. **Similarity Calculation**: Compute cosine similarity between books.  \r\n5. **Recommendation**: Find and display the most similar books for a selected book.  \r\n\r\n---\r\n\r\n### **3. Deployment**\r\n- The system is deployed as a Flask web app.  \r\n- Recommendations are generated dynamically and displayed with book images, authors, and ratings.  \r\n\r\n---\r\n\r\n## 🔧 **Technologies Used**\r\n\r\n**Programming Languages**\r\n- Python  \r\n\r\n**Libraries**\r\n- **pandas**: Data manipulation  \r\n- **numpy**: Numerical computations  \r\n- **scikit-learn**: Cosine similarity  \r\n\r\n**Web Framework**\r\n- **Flask**  \r\n\r\n**Data Visualization**\r\n- **Bootstrap**: For UI design  \r\n**Serialization**\r\n- **Pickle**: For efficient deployment of models and data\r\n\r\n![Home](pictures/Top%2050%20Recommendations%20page.png)\r\n![Recommend](pictures/Recommendation%20page.png)\r\n![Recommendation](pictures/Recommendation.png)\r\n\r\n\r\n\r\n## 🖥️ How to Use\r\n\r\n1. Clone the repository:\r\n\r\n   ```bash\r\n   git clone \u003crepository-url\u003e\r\n   ```\r\n\r\n2. Navigate to the project directory:\r\n\r\n   ```bash\r\n   cd book-recommender\r\n   ```\r\n\r\n3. Install dependencies:\r\n\r\n   ```bash\r\n   pip install -r requirements.txt\r\n   ```\r\n\r\n4. Run the Flask application:\r\n\r\n   ```bash\r\n   python app.py\r\n   ```\r\n\r\n5. Open your browser and go to `http://127.0.0.1:5000`.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnitin-reddy%2Fcollaborative-filtering-based-recommendation-system","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmnitin-reddy%2Fcollaborative-filtering-based-recommendation-system","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmnitin-reddy%2Fcollaborative-filtering-based-recommendation-system/lists"}