Book Recommendation System

A book recommendation system using collaborative filtering with a Streamlit frontend.

Features

  • Collaborative filtering for personalized book recommendations.
  • Interactive Streamlit web interface.
  • Utilizes book ratings, book information, and user details for recommendations.

Dataset

  • Books: Includes details like author, title, and publication year.
  • Users: Contains user IDs and locations.
  • Ratings: Ratings provided by users for various books.

Preprocessing

  • Removed unnecessary columns.
  • Renamed columns for ease of use.
  • Filtered to include users with at least 200 ratings and books with at least 50 ratings.

Collaborative Filtering

Collaborative filtering is a method used to make automatic predictions about the interests of a user by collecting preferences or taste information from many users. The underlying assumption of the collaborative filtering approach is that if a person A has the same opinion as a person B on an issue, A is more likely to have B’s opinion on a different issue than that of a randomly chosen person.

In this project, collaborative filtering is used to find similarities between users based on their book ratings. Books are then recommended to a user based on the ratings from similar users. This technique helps in making personalized book recommendations even when the user has not rated many books themselves.

Model Building

  • Created a pivot table with user IDs as columns, book titles as rows, and ratings as values.
  • Converted the pivot table to a sparse matrix.
  • Trained a Nearest Neighbors model using the sparse matrix.

Streamlit Interface

  • Select a book from the dropdown menu.
  • Click the “Show Recommendation” button to view recommended books and their images.

GitHub Repository

Explore the source code and contribute to the project on GitHub: View on GitHub

Above are sample recommendations for the book "1984".

Conclusion

The system effectively recommends books based on user preferences and provides an intuitive interface for obtaining book suggestions.