This project aims to develop a book recommendation system using collaborative filtering techniques. The system leverages user ratings to suggest books that a user might like.
The dataset used for this project is sourced from Kaggle: Book Recommendation Dataset.
-
Loading Datasets:
- Books Dataset: Contains book details (ISBN, title, author, year of publication, publisher).
- Users Dataset: Contains user details (user ID, location, age).
- Ratings Dataset: Contains user ratings for books (user ID, ISBN, rating).
-
Data Cleaning and Preparation:
- Renamed columns for better readability.
- Filtered users with more than 200 ratings to focus on active users.
-
Matrix Creation:
- Created a user-item matrix where rows represent users and columns represent books.
-
Collaborative Filtering:
- Used K-Nearest Neighbors (KNN) for collaborative filtering.
- Trained the model to find similarities between books based on user ratings.
-
Model Evaluation:
- Evaluated the model using metrics like RMSE (Root Mean Squared Error) to ensure accuracy.
- Generating Recommendations:
- Provided functions to recommend books based on a given book title.
- Demonstrated examples of book recommendations using the trained model.
- Saving the Model:
- Saved the trained model to a file (
book_recommendation_model.pkl
) for future use.
- Saved the trained model to a file (
- Collaborative filtering is effective for creating personalized book recommendations.
- Filtering out less active users improves the model's performance.
- Successfully developed a book recommendation system.
- The system can suggest books based on user preferences with reasonable accuracy.
Book Recommendation System.ipynb
: Jupyter notebook containing the complete code for the project.proposal.pdf
: Proposal document outlining the project objectives and approach.report.pdf
: Detailed report of the project, including methodology, results, and conclusions.
This project demonstrates the application of collaborative filtering for book recommendations. By leveraging user ratings, the system can provide personalized book suggestions, enhancing the reading experience.