- Collaborative filtering movie recommendation system with GUI developed by Tkinter
This repository contains a movie recommendation system built using the MovieLens dataset. The project explores user–movie interactions and generates personalized movie recommendations based on rating data. It was developed as a final project with an emphasis on data analysis, machine learning concepts, and practical implementation in Python.
The goal of this project is to build a recommendation engine that suggests movies to users based on historical rating behavior. The system leverages collaborative filtering techniques to uncover patterns in user preferences and predict unseen ratings.
Key components of the project include:
- Data preprocessing and exploratory analysis
- Construction of a user–item rating matrix
- Recommendation logic based on similarity and ratings
- Visualization and qualitative evaluation of recommendations
Machine-Learning-Movie-Recommendation-System/
│
├── Movie_Recommendation.ipynb # Main notebook: data analysis & recommendation logic
├── dataset/ # MovieLens dataset files
│ ├── movies.csv
│ ├── ratings.csv
│ ├── tags.csv
│ └── links.csv
│
├── downloads/ # Downloaded movie posters / related media
├── Christmas.mp4 # Demo or visualization video
├── test.mp4 # Additional demo file
└── README.mdThis project uses the MovieLens Latest Small Dataset, which contains:
- 100,000 ratings
- 600+ users
- 9,000+ movies
Each rating consists of:
- userId
- movieId
- rating
- timestamp Dataset source: MovieLens
- Python
- Pandas & NumPy – data processing
- Scikit-learn – similarity computation
- Matplotlib / Seaborn – visualization
- Tkinter - User Interface
- Jupyter Notebook – experimentation and presentation
- Clone this repository:
git clone https://github.com/your-username/your-repo-name.git
- Navigate to the project directory:
cd Fangjun_final_project - Open the notebook:
jupyter notebook Movie_Recommendation.ipynb
- Run the cells sequentially to reproduce the analysis and recommendations.
- Exploratory data analysis of movie ratings
- User-based or item-based collaborative filtering
- Movie similarity computation
- Personalized movie recommendations
- Optional media visualization (posters/videos)
The system successfully identifies meaningful similarities between movies and users, producing reasonable and interpretable recommendations. Sample outputs include top-N movie recommendations for selected users based on predicted preferences.
Fangjun (Chloé) Zhu & Xinyan Yang
If you have questions or suggestions, feel free to open an issue or reach out.