https://github.com/taljindergill78/book-recommender-system
A personalized book recommender system that suggests books to users based on their reading preferences and past ratings, using collaborative filtering techniques on the Book Crossing dataset.
https://github.com/taljindergill78/book-recommender-system
big-data collaborative-filtering data-science jupyter-notebook kaggle-dataset machine-learning python recommendation-system
Last synced: about 2 months ago
JSON representation
A personalized book recommender system that suggests books to users based on their reading preferences and past ratings, using collaborative filtering techniques on the Book Crossing dataset.
- Host: GitHub
- URL: https://github.com/taljindergill78/book-recommender-system
- Owner: taljindergill78
- Created: 2025-06-06T04:51:01.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-06T05:11:28.000Z (about 1 year ago)
- Last Synced: 2025-07-11T06:21:09.986Z (about 1 year ago)
- Topics: big-data, collaborative-filtering, data-science, jupyter-notebook, kaggle-dataset, machine-learning, python, recommendation-system
- Language: Jupyter Notebook
- Homepage:
- Size: 21.5 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Book Recommender System
A personalized book recommender system that suggests books to users based on their reading preferences and past ratings, using collaborative filtering techniques on the Book Crossing dataset.
---
## ๐ Project Structure
```book-recommender-system/
โ
โโโ Data/
โ โโโ Books.csv
โ โโโ Ratings.csv
โ โโโ Users.csv
โ
โโโ Notebooks/
โ โโโ 01_data_preparation.ipynb
โ โโโ 02_book_recommendation_engine.ipynb
โ
โโโ Outputs/
โ โโโ user_book_ratings.libsvm
โ โโโ Top5_Book_Recommendations.csv
โ
โโโ Reports/
โ โโโ Book_Recommender_Report.docx
โ
โโโ .gitignore
โโโ README.md
```
---
## ๐ Dataset Description
This project uses the [Book Crossing Dataset](https://www.kaggle.com/datasets/somnambwl/bookcrossing-dataset?resource=download) which includes:
- **Books.csv** โ Metadata such as title, author, and ISBN
- **Users.csv** โ User IDs and demographics
- **Ratings.csv** โ User ratings of books on a 0โ10 scale
Total:
๐ 270,000+ books
๐ฅ 270,000+ users
โญ 1 million+ ratings
---
## ๐ Objective
To build a recommender system that:
- Understands user preferences from prior ratings
- Computes similarity between users using collaborative filtering
- Recommends top 5 books that a user hasnโt read yet but is likely to enjoy
---
## โ๏ธ Methodology
1. **Data Cleaning & LIBSVM Preparation**
[`01_data_preparation.ipynb`](Notebooks/01_data_preparation.ipynb)
- Removes invalid entries
- Filters non-positive ratings
- Converts to sparse matrix and LIBSVM format
2. **Collaborative Filtering Engine**
[`02_book_recommendation_engine.ipynb`](Notebooks/02_book_recommendation_engine.ipynb)
- Builds user-user similarity matrix (Cosine similarity)
- Finds top 10 nearest neighbors per user
- Generates 5 book recommendations per user
- Outputs results to CSV
---
## ๐ Outputs
- `user_book_ratings.libsvm`: Sparse matrix in LIBSVM format
- `Top5_Book_Recommendations.csv`: Final output with recommended books and scores
---
## ๐งพ Report
A clean summary of project objectives, methodology, and outcomes is available here:
[`Book_Recommender_Report.docx`](Reports/Book_Recommender_Report.docx)
---
## ๐งโ๐ป Technologies Used
- Python (Pandas, NumPy, Scikit-learn, SciPy)
- Jupyter Notebooks
- Cosine Similarity (Collaborative Filtering)
- LIBSVM Format
---
## ๐จโ๐ Course
This academic project was developed under the course **IFT 511: Analyzing Big Data (Spring 2025)** at **Arizona State University**.
---
## ๐ Authors
Taljinder Singh