Recommendation systems use a class of algorithms that can suggest relevant items to the users. This Movie Recommendation system built using multiple ML models aims to predict users' interests based on their past behavior and preferences.
The application is deployed at - https://movie-recommender-6dk4.onrender.com/
It uses MovieLens data containing two hundred thousand reviews on about 10000 different movies. The n-dimensional linear regression ML model or a single-layer neural network then predicts what movies the user may like using the user profile and the data of movie ratings. This web app has been deployed using the Streamlit framework. The code uses TMDB API, which fetches posters for each movie recommendation using its TMDB id. The project also has a child-safe mode, that filters out adult movies using the API data and also filters out crime and adult genre movies using the dataset. The code also contains three more ML models that use K-nearest neighbors, TF-IDF vectorization, and Cosine and Pearson similarities.
Streamlit - https://streamlit.io/
TMDB API - https://developers.themoviedb.org/3/getting-started/introduction
Create an account in https://www.themoviedb.org/, click on the API link from the left hand sidebar in your account settings and fill all the details to apply for API key. If you are asked for the website URL, just give "NA" if you don't have one. You will see the API key in your API sidebar once your request is approved.
-
Clone this repository in your local system.
-
run pip install -r requirements.txt in the terminal to install the dependencies.(Your need to have python installed in your system).
-
Open the terminal and navigate to the project directory and run streamlit run app.py and the app will run on the local host displayed in the terminal.
-
Copy paste this link into the address bar of a web-browser.
-
Yay! You can now test the code and raise an issue if you find any bugs or suggestions.
-
Collaborative Filtering - Collaborative filtering approaches build a model from the user’s past behaviour as well as similar decisions made by other users. This model is then used to predict items that users may have an interest in.
-
Content based Filtering - Content-based filtering approaches use discrete characteristics of an item in order to recommend additional items with similar properties. They are totally based on a description of the item and a profile of the user’s preferences. It recommends items based on the user’s past preferences.
For complete implementation details and outputs refer to this file.
You can choose to select the movies according to your preferred answer for all the questions, or simply put any movie you like or dislike which will be indicated to the ML model by the rating you enter.