This project implements various recommender system algorithms, including KNN, SVM, Decision Tree, and Matrix Factorization. The main focus is on Matrix Factorization for providing personalized movie recommendations.
- Introduction
- Dataset
- Algorithms Implemented
- Matrix Factorization
- Evaluation Metrics
- Results
- Installation
- Usage
- Contributing
- License
This project explores different algorithms for building a recommender system. The primary goal is to compare the performance of various methods and highlight the effectiveness of Matrix Factorization.
The project uses the MovieLens dataset for training and evaluating the recommender system.
- K-Nearest Neighbors (KNN)
- Support Vector Machine (SVM)
- Decision Tree
- Matrix Factorization
Matrix Factorization is the main focus of this project. It involves decomposing the user-item interaction matrix into lower-dimensional matrices representing latent factors of users and items.
- Data Preparation: Encoding user and movie IDs, creating the rating matrix.
- Normalization: Centering ratings around the mean for each movie.
- Model Training: Using TensorFlow to optimize the cost function.
- Evaluation: Assessing the model using RMSE, MSE, MAE, R2 score, and relative MAE.
- Root Mean Squared Error (RMSE)
- Mean Squared Error (MSE)
- Mean Absolute Error (MAE)
- R2 Score
- Relative MAE
The results section should include a summary of the performance of each algorithm, with a focus on the Matrix Factorization model. Include plots of training and validation losses, and a comparison of evaluation metrics. Results Table:
To run this project, you need to have Python and the following libraries installed:
- numpy
- pandas
- scikit-learn
- tensorflow
- matplotlib
You can install the required libraries using:
pip install numpy pandas scikit-learn tensorflow matplotlib- Clone the repository:
git clone https://github.com/yourusername/recommender-system-project.git- Navigate to the project directory:
cd recommender-system-project- Run the main script:
python main.pyContributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
This project is licensed under the MIT License. See the LICENSE file for details.
