This project demonstrates how to build a movie recommendation system using the MovieLens dataset. The system recommends movies to users based on their past movie ratings and the ratings of similar users. It employs collaborative filtering and K-Nearest Neighbors (KNN) to provide movie recommendations.
- Dataset
- Project Structure
- Installation
- Usage
- Approach
- Results
- Future Improvements
- Contributing
- License
The MovieLens dataset used in this project contains information about movie ratings, user profiles, and movie details. The dataset includes 100,000 ratings from 943 users on 1,682 movies.
- Dataset Link: MovieLens Dataset
The project is organized as follows:
Movie_Recommendation_using_Movielens_dataset.ipynb
: Jupyter Notebook containing the code for building the recommendation system.MovieLens-Dataset
: Directory containing the MovieLens dataset files.README.md
: This README file.
To run this project locally, you'll need Python and the following libraries:
- numpy
- pandas
- matplotlib
- scikit-learn
You can install these libraries using pip:
pip install numpy pandas matplotlib scikit-learn
- Clone this repository to your local machine.
- Download the MovieLens dataset from the provided link and extract it into the
MovieLens-Dataset
directory. - Open the Jupyter Notebook
Movie_Recommendation_using_Movielens_dataset.ipynb
. - Follow the instructions in the notebook to execute the code and generate movie recommendations.
The project follows these major steps:
-
Data Loading and Preprocessing: Load the MovieLens dataset and preprocess it to create user-movie rating matrices.
-
Collaborative Filtering: Implement collaborative filtering using K-Nearest Neighbors (KNN) to find similar users.
-
Recommendation: Recommend movies to a given user based on their similarity to other users and their past ratings.
The project provides movie recommendations for users based on their past ratings and the ratings of similar users. Users can specify the number of similar users to consider and the number of movies to be recommended.
Future improvements for this project may include:
- Implementing more advanced recommendation algorithms, such as matrix factorization techniques.
- Incorporating user feedback and user profiles to enhance recommendations.
- Developing a user-friendly web or mobile application for users to interact with the recommendation system.
This project is maintained by Leni Nikitaa and was created with contributions from several individuals, including Revan Bairav. We welcome and appreciate contributions from the community to make this project even better. If you have ideas for improvements or new features, please feel free to open an issue or submit a pull request.
- Fork the project to your GitHub account.
- Create a new branch with a descriptive name for your contribution.
- Make your changes and improvements within the branch.
- Test your changes thoroughly to ensure they work as expected.
- Submit a pull request, explaining the purpose and details of your contribution.
- Your pull request will be reviewed by the project maintainers, and feedback may be provided.
- Once your contribution is accepted, it will be merged into the project.
By contributing to this project, you are helping to make it more valuable for everyone in the community. Thank you for your support and collaboration!
This project is licensed under the MIT License. See the LICENSE file for details.