An open API service indexing awesome lists of open source software.

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.

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