Skip to content

About

This repository contains project doe for Course CAP5771 Intro to Data Science

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

31 Commits

Folders and files

Repository files navigation

🎬 Movie Recommendation System

Welcome to the Movie Recommendation System project! This repository contains the code for a Data Science project focused on building a movie recommendation system using data analysis and visualization techniques.


🚀 Project Overview

The primary objective of this project is to develop a movie recommendation system that suggests relevant movies to users based on their preferred movie input. The system leverages robust and extensive datasets collected from three reliable sources—IMDB, MovieLens, and TMDB—to ensure the recommendations are both accurate and reflective of real-world preferences.

A key strength of this system lies in the trustworthiness and volume of the data, which plays a crucial role in generating meaningful and practical movie suggestions. In addition to recommendation functionality, the project includes an interactive Python-based UI, enabling users to seamlessly explore, filter, and engage with the movie dataset.

To run the project, please review the key files listed below.


Data Licenses

The datasets used in this project are obtained from publicly available and trustworthy sources. Each dataset adheres to its respective licensing agreements, as detailed below:

All datasets are used solely for academic purposes and have not been redistributed or modified beyond the scope of analysis within this project.


📁 Files Overview

  1. .ipynb Notebooks – Contains all backend code including data sourcing, model training, and model evaluation.

  2. Scripts/data_splits/ – Located in the Google Drive link under the Data Files section. This folder stores the data splits used during model training.

  3. Scripts/models/ – Includes all trained models used in the project. Also available in the Google Drive link or can be regenerated using the guide under Running the Project.

  4. Images/ – Contains graphs generated during analysis. Saved for visual reference.

  5. Report/ – Includes milestone reports such as "Milestone 1.pdf", which details the datasets and project scope.

  6. Data/ – Includes the data files used for the project. (Note: Large files are not included in this repository due to size constraints.)

  7. m2_plots/ and figures/ – Contain plots generated during execution of the notebooks.


📦 Data Files

Due to file size limitations, some datasets are hosted externally. You can access them using the following links:


▶️ Running the Project

⚠️ It is recommended to set up a Conda environment and install the required dependencies before starting.

Launch the Jupyter notebooks using Anaconda Navigator or the terminal.

Execution Steps:

  1. Run Milestone1.ipynb
    Loads and preprocesses the data, saving it in normalized format in the /Data/ directory.

  2. Run Milestone2.ipynb
    Trains four models: Linear Regression, Logistic Regression, K-Nearest Neighbors, and XGBoost. Saves models in the models/ folder.

  3. Run Milestone2_v2.ipynb
    Trains three additional models: KMeans, KNN, and HDBScan. These models and their respective features/labels are stored in nested directories inside models/.

  4. Run Milestone3.ipynb
    Tests and evaluates performance of all six distinct models (Linear Regresion was discarded and not tested on test data due to it's high MSE score insights).

  5. Launch the Web UI
    Execute the following command in your terminal:

     streamlit run dashboard.py

    This will open the dashboard in your default web browser.


📚 Prerequisites

Make sure the following Python libraries are installed:

  • pandas

  • numpy

  • matplotlib

  • sqlite

  • seaborn

  • scikit-learn

  • plotly

  • hdbscan

  • streamlit

Install via pip:

pip install pandas numpy matplotlib seaborn scikit-learn plotly hdbscan streamlit

🔍 If additional package errors occur, install the missing packages before rerunning the notebooks or app.


🖼️ UI Screenshots

📈 Insights

Shows some general insights using plots for different features

Insights Page

🔍 Movies Explorer

User can play with entire dataset using this tab

Movies Explorer Page

🕸️ Clusters

Data Scientists can use this tab to view the different cluster groupings

Clusters Page

🎯 Recommendations

User can choose a movie which they like and they will get the recommendation using KNN.

Recommendations Page


⚙️ How to Run

  • Download the dataset using the provided links.

  • Place dataset files in the /Data/ folder.

  • Run the notebooks in milestone order.

  • The analysis will generate and save plots in the /Images/ directory.

About

This repository contains project doe for Course CAP5771 Intro to Data Science

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages