├── Netflix Movie Recommendation System └── images │ ├── arrow.jpg │ ├── data_c.jpg │ ├── models.jpg │ ├── netflix-q.jpg │ └── data_sparse_c.jpg ├── LICENSE └── README.md /Netflix Movie Recommendation System/images/arrow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/veeralakrishna/Case-Study-ML-Netflix-Movie-Recommendation-System/HEAD/Netflix Movie Recommendation System/images/arrow.jpg -------------------------------------------------------------------------------- /Netflix Movie Recommendation System/images/data_c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/veeralakrishna/Case-Study-ML-Netflix-Movie-Recommendation-System/HEAD/Netflix Movie Recommendation System/images/data_c.jpg -------------------------------------------------------------------------------- /Netflix Movie Recommendation System/images/models.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/veeralakrishna/Case-Study-ML-Netflix-Movie-Recommendation-System/HEAD/Netflix Movie Recommendation System/images/models.jpg -------------------------------------------------------------------------------- /Netflix Movie Recommendation System/images/netflix-q.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/veeralakrishna/Case-Study-ML-Netflix-Movie-Recommendation-System/HEAD/Netflix Movie Recommendation System/images/netflix-q.jpg -------------------------------------------------------------------------------- /Netflix Movie Recommendation System/images/data_sparse_c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/veeralakrishna/Case-Study-ML-Netflix-Movie-Recommendation-System/HEAD/Netflix Movie Recommendation System/images/data_sparse_c.jpg -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Veerala Hari Krishna 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Case-Study-ML-Netflix-Movie-Recommendation-System 2 | --- 3 | A Machine Learning Case Study for Recommendation System of movies based on collaborative filtering and content based filtering. 4 | 5 | ### Business Problem 6 | Netflix is all about connecting people to the movies they love. To help customers find those movies, they developed world-class movie recommendation system: CinematchSM. Its job is to predict whether someone will enjoy a movie based on how much they liked or disliked other movies. Netflix use those predictions to make personal movie recommendations based on each customer’s unique tastes. And while Cinematch is doing pretty well, it can always be made better. Now there are a lot of interesting alternative approaches to how Cinematch works that netflix haven’t tried. Some are described in the literature, some aren’t. We’re curious whether any of these can beat Cinematch by making better predictions. Because, frankly, if there is a much better approach it could make a big difference to our customers and our business. Credits: https://www.netflixprize.com/rules.html 7 | 8 | ### Problem Statement 9 | Netflix provided a lot of anonymous rating data, and a prediction accuracy bar that is 10% better than what Cinematch can do on the same training data set. (Accuracy is a measurement of how closely predicted ratings of movies match subsequent actual ratings.) 10 | 11 | ### Sources 12 | * https://www.netflixprize.com/rules.html 13 | * https://www.kaggle.com/netflix-inc/netflix-prize-data 14 | * Netflix blog: https://medium.com/netflix-techblog/netflix-recommendations-beyond-the-5-stars-part-1-55838468f429 15 | * surprise library: http://surpriselib.com/ (we use many models from this library) 16 | * surprise library doc: http://surprise.readthedocs.io/en/stable/getting_started.html (we use many models from this library) 17 | * installing surprise: https://github.com/NicolasHug/Surprise#installation 18 | * Research paper: http://courses.ischool.berkeley.edu/i290-dm/s11/SECURE/a1-koren.pdf (most of our work was inspired by this paper) 19 | * SVD Decomposition : https://www.youtube.com/watch?v=P5mlg91as1c 20 | ### Real world/Business Objectives and constraints 21 | #### Objectives: 22 | * Predict the rating that a user would give to a movie that he has not yet rated. 23 | * Minimize the difference between predicted and actual rating (RMSE and MAPE) 24 | #### Constraints: 25 | * Some form of interpretability. 26 | * There is no low latency requirement as the recommended movies can be precomputed earlier. 27 | ### Type of Data: 28 | * There are 17770 unique movie IDs. 29 | * There are 480189 unique user IDs. 30 | * There are ratings. Ratings are on a five star (integral) scale from 1 to 5. 31 | * There is a date on which the movie is watched by the user in the format YYYY-MM-DD. 32 | ### Getting Started 33 | Start by downloading the project and run "NetflixMoviesRecommendation.ipynb" file in ipython-notebook. 34 | 35 | ### Prerequisites 36 | You need to have installed following softwares and libraries in your machine before running this project. 37 | 38 | * Python 3 39 | * Anaconda: It will install ipython notebook and most of the libraries which are needed like sklearn, pandas, seaborn, matplotlib, numpy, scipy. 40 | * XGBoost 41 | * Surprise 42 | #### Installing 43 | * Python 3: https://www.python.org/downloads/ 44 | * Anaconda: https://www.anaconda.com/download/ 45 | * XGBoost: conda install -c conda-forge xgboost 46 | * Surprise: pip install surprise 47 | #### Built With 48 | * ipython-notebook - Python Text Editor 49 | * sklearn - Machine learning library 50 | * seaborn, matplotlib.pyplot, - Visualization libraries 51 | * numpy, scipy- number python library 52 | * pandas - data handling library 53 | * XGBoost - Used for making regression models 54 | * Surprise - used for making recommendation system models 55 | ### Authors 56 | Veerala Hari Krishna - Complete work 57 | ### Acknowledgments 58 | Applied AI Course 59 | --------------------------------------------------------------------------------