A recommendation system built using the Funk SVD model to suggest books based on user ratings.
- Model: Funk SVD
- Dataset: Book Recommendation Dataset from Kaggle
- Key Metrics: RMSE (achieved ~3.455943 in tests)
Ensure you have the following installed:
- Python 3.x
- Streamlit
- Surprise library
- PyYAML
Due to the large size of the dataset and model files:
-
Download the dataset files from the Kaggle link and place them inside a folder named
dataset
in the project directory. -
Before running the Streamlit app, execute the
main.ipynb
notebook. This will generate the necessary model files. Note: You can skip the hyperparameter tuning process in the notebook as it is time-consuming.
- Clone the repository:
bash
git clone https://github.com/haranobuhardo/surprise-svd-book-recommendation-system
- Navigate to the project directory:
bash
cd surprise-svd-book-recommendation-system
- Run the Streamlit app:
bash
streamlit run app.py
This will launch a web application where you can test the recommendation system.
The model can be deployed using Streamlit for real-time book recommendations. Ensure you have Streamlit installed and simply run the provided app.py
to start the server and interact with the model.
For a detailed report on the project, check out the article: Recommendation System: Harnessing Machine Learning for Enhanced Book Recommendations (Medium)