- Mouad AIT HA
- Mohamed LAKBAKBI
This project aims to develop an advanced recommender system using various machine learning and deep learning techniques. Our focus is on building and deploying models that can accurately recommend books to users based on their preferences. The project involves data collection, preprocessing, model building, and deployment.
The objective of this project is to build an advanced recommender system that leverages both classical and modern machine learning techniques. We utilized data from Amazon books, which includes three datasets: users, books, and ratings. Our system incorporates various models, ranging from baseline algorithms to sophisticated neural networks.
The project utilizes three datasets from Amazon:
- Users Dataset: Contains information about the users.
- Books Dataset: Contains details about the books.
- Ratings Dataset: Contains user ratings for different books.
We have implemented the following models:
- Baseline Model: Provides a simple benchmark for recommendations.
- K-Nearest Neighbors (KNN): Collaborative filtering based on user-user or item-item similarity.
- Singular Value Decomposition (SVD): Matrix factorization technique for collaborative filtering.
- Non-Negative Matrix Factorization (NMF): Another matrix factorization technique.
- Autoencoders: Neural network-based approach for collaborative filtering.
Our project leverages a wide array of technologies and tools, including but not limited to:
-
Programming Languages and Environments:
- Python: Main programming language.
- Jupyter Notebook: For interactive development.
-
Data Manipulation and Analysis:
- Pandas: Data manipulation and analysis.
- Numpy: Numerical computing.
- SQLAlchemy: SQL toolkit and Object-Relational Mapping (ORM) library.
-
Machine Learning and Deep Learning:
- Scikit-Learn: Machine learning library.
- TensorFlow: Deep learning framework.
- Keras: High-level neural networks API.
-
Data Visualization:
- Matplotlib: Plotting library.
- Seaborn: Statistical data visualization.
- Plotly: Interactive graphing library.
-
Natural Language Processing:
- NLTK (Natural Language Toolkit): Text processing.
-
Model Deployment:
- Flask: Web framework for deploying models.
- Docker: Containerization platform.
-
Version Control and Collaboration:
- Git: Version control system.
- GitHub: Repository hosting service.
-
Other Tools and Libraries:
- SciPy: Scientific computing library.
- LightFM: Hybrid recommendation algorithm library.
- Surprise: Library for building and analyzing recommender systems.
- Optuna: Hyperparameter optimization framework.
To get started with this project, follow these steps:
-
Clone the Repository:
git clone https://github.com/yourusername/Advanced_recommender__Amazon_books.git cd Advanced_recommender-PFA
-
Create and Activate a Virtual Environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install Dependencies:
pip install -r requirements.txt
-
Data Preprocessing:
- Navigate to the
data_preprocessing
directory and run the preprocessing scripts to prepare the datasets.
- Navigate to the
-
Model Training:
- Navigate to the
models
directory. - Run the Jupyter notebooks to train the various models.
- Navigate to the
-
Deployment:
- The models are deployed as part of a web application.
- Navigate to the
deployment
directory and follow the instructions to deploy the application.
The results of our models are documented in the results
directory. We provide detailed analyses, including performance metrics and visualizations, to demonstrate the effectiveness of each model.
Future improvements to this project may include:
- Enhancing the neural network models with more complex architectures.
- Incorporating additional data sources to improve recommendation accuracy.
- Implementing real-time recommendation systems.
This project is licensed under the MIT License - see the LICENSE file for details.
We would like to thank our mentors and peers for their guidance and support throughout this project.