[
  {
    "path": "Images/.gitkeep",
    "content": "\n"
  },
  {
    "path": "Item_based_Collaborative_Recommender_System_using_KNN.ipynb",
    "content": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Item-based-Collaborative-Recommender-System-using-KNN.ipynb\",\n      \"provenance\": [],\n      \"collapsed_sections\": [\n        \"jVJu1rsTx0F3\"\n      ],\n      \"authorship_tag\": \"ABX9TyM1K937XEBtUiFWogHB4DtZ\",\n      \"include_colab_link\": true\n    },\n    \"kernelspec\": {\n      \"name\": \"python3\",\n      \"display_name\": \"Python 3\"\n    }\n  },\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"view-in-github\",\n        \"colab_type\": \"text\"\n      },\n      \"source\": [\n        \"<a href=\\\"https://colab.research.google.com/github/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Item_based_Collaborative_Recommender_System_using_KNN.ipynb\\\" target=\\\"_parent\\\"><img src=\\\"https://colab.research.google.com/assets/colab-badge.svg\\\" alt=\\\"Open In Colab\\\"/></a>\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"bwSPLalV6Rca\"\n      },\n      \"source\": [\n        \"import os\\n\",\n        \"import numpy as np\\n\",\n        \"import pandas as pd\\n\",\n        \"import matplotlib.pyplot as plt\\n\",\n        \"from scipy.sparse import csr_matrix\\n\",\n        \"from sklearn.neighbors import NearestNeighbors\"\n      ],\n      \"execution_count\": 113,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"HKw5H628aSY9\"\n      },\n      \"source\": [\n        \"DATASET_LINK='http://files.grouplens.org/datasets/movielens/ml-100k.zip'\"\n      ],\n      \"execution_count\": 114,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"gavevc8waXW_\",\n        \"outputId\": \"138b5e41-3605-4838-f1f7-9eac9315c9c6\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 67\n        }\n      },\n      \"source\": [\n        \"!wget -nc http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n        \"!unzip -n ml-100k.zip\"\n      ],\n      \"execution_count\": 115,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"File ‘ml-100k.zip’ already there; not retrieving.\\n\",\n            \"\\n\",\n            \"Archive:  ml-100k.zip\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"d4WNkFXcauZ3\"\n      },\n      \"source\": [\n        \"## Loading MovieLens dataset\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3jZ7lU8RafYz\"\n      },\n      \"source\": [\n        \"Loading u.info     -- The number of users, items, and ratings in the u data set.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"dEj5ZJQzaX-7\",\n        \"outputId\": \"b73df5ec-cf04-491f-ad79-e2b9a8c26b16\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"overall_stats = pd.read_csv('ml-100k/u.info', header=None)\\n\",\n        \"print(\\\"Details of users, items and ratings involved in the loaded movielens dataset: \\\",list(overall_stats[0]))\"\n      ],\n      \"execution_count\": 116,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Details of users, items and ratings involved in the loaded movielens dataset:  ['943 users', '1682 items', '100000 ratings']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"aFzpbJ_Hap8V\"\n      },\n      \"source\": [\n        \"Loading u.data     -- The full u data set, 100000 ratings by 943 users on 1682 items.\\n\",\n        \"\\n\",\n        \"---\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"              Each user has rated at least 20 movies.  Users and items are\\n\",\n        \"              numbered consecutively from 1.  The data is randomly ordered. This is a tab separated list of \\n\",\n        \"\\t         user id | item id | rating | timestamp. \\n\",\n        \"              The time stamps are unix seconds since 1/1/1970 UTC \"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"NXg9Sj7ralr4\",\n        \"outputId\": \"0c8ac301-e92f-4682-df49-9c21c137dcd0\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"## same item id is same as movie id, item id column is renamed as movie id\\n\",\n        \"column_names1 = ['user id','movie id','rating','timestamp']\\n\",\n        \"dataset = pd.read_csv('ml-100k/u.data', sep='\\\\t',header=None,names=column_names1)\\n\",\n        \"dataset.head() \"\n      ],\n      \"execution_count\": 117,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>186</td>\\n\",\n              \"      <td>302</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>891717742</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>22</td>\\n\",\n              \"      <td>377</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>878887116</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>244</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>880606923</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>166</td>\\n\",\n              \"      <td>346</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>886397596</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp\\n\",\n              \"0      196       242       3  881250949\\n\",\n              \"1      186       302       3  891717742\\n\",\n              \"2       22       377       1  878887116\\n\",\n              \"3      244        51       2  880606923\\n\",\n              \"4      166       346       1  886397596\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 117\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"M2lYi6toa9tA\",\n        \"outputId\": \"01b6797c-12cf-479f-fc6e-1889e088e8af\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"len(dataset), max(dataset['movie id']),min(dataset['movie id'])\"\n      ],\n      \"execution_count\": 118,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(100000, 1682, 1)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 118\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"9C9qVRfcbE0k\"\n      },\n      \"source\": [\n        \"Loading u.item     -- Information about the items (movies); this is a tab separated\\n\",\n        \"\\n\",\n        \"              list of\\n\",\n        \"              movie id | movie title | release date | video release date |\\n\",\n        \"              IMDb URL | unknown | Action | Adventure | Animation |\\n\",\n        \"              Children's | Comedy | Crime | Documentary | Drama | Fantasy |\\n\",\n        \"              Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |\\n\",\n        \"              Thriller | War | Western |\\n\",\n        \"              The last 19 fields are the genres, a 1 indicates the movie\\n\",\n        \"              is of that genre, a 0 indicates it is not; movies can be in\\n\",\n        \"              several genres at once.\\n\",\n        \"              The movie ids are the ones used in the u.data data set.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ZaMNuf9fbA0V\",\n        \"outputId\": \"d0d0ced1-9bfb-404a-d0d4-e168cddc6ea0\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 420\n        }\n      },\n      \"source\": [\n        \"d = 'movie id | movie title | release date | video release date | IMDb URL | unknown | Action | Adventure | Animation | Children | Comedy | Crime | Documentary | Drama | Fantasy | Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi | Thriller | War | Western'\\n\",\n        \"column_names2 = d.split(' | ')\\n\",\n        \"column_names2\"\n      ],\n      \"execution_count\": 119,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"['movie id',\\n\",\n              \" 'movie title',\\n\",\n              \" 'release date',\\n\",\n              \" 'video release date',\\n\",\n              \" 'IMDb URL',\\n\",\n              \" 'unknown',\\n\",\n              \" 'Action',\\n\",\n              \" 'Adventure',\\n\",\n              \" 'Animation',\\n\",\n              \" 'Children',\\n\",\n              \" 'Comedy',\\n\",\n              \" 'Crime',\\n\",\n              \" 'Documentary',\\n\",\n              \" 'Drama',\\n\",\n              \" 'Fantasy',\\n\",\n              \" 'Film-Noir',\\n\",\n              \" 'Horror',\\n\",\n              \" 'Musical',\\n\",\n              \" 'Mystery',\\n\",\n              \" 'Romance',\\n\",\n              \" 'Sci-Fi',\\n\",\n              \" 'Thriller',\\n\",\n              \" 'War',\\n\",\n              \" 'Western']\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 119\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Cv_sboAHbMp7\",\n        \"outputId\": \"db4cb56c-afa3-4ad4-bef6-fd6937eaddf1\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 758\n        }\n      },\n      \"source\": [\n        \"items_dataset = pd.read_csv('ml-100k/u.item', sep='|',header=None,names=column_names2,encoding='latin-1')\\n\",\n        \"items_dataset\"\n      ],\n      \"execution_count\": 120,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>release date</th>\\n\",\n              \"      <th>video release date</th>\\n\",\n              \"      <th>IMDb URL</th>\\n\",\n              \"      <th>unknown</th>\\n\",\n              \"      <th>Action</th>\\n\",\n              \"      <th>Adventure</th>\\n\",\n              \"      <th>Animation</th>\\n\",\n              \"      <th>Children</th>\\n\",\n              \"      <th>Comedy</th>\\n\",\n              \"      <th>Crime</th>\\n\",\n              \"      <th>Documentary</th>\\n\",\n              \"      <th>Drama</th>\\n\",\n              \"      <th>Fantasy</th>\\n\",\n              \"      <th>Film-Noir</th>\\n\",\n              \"      <th>Horror</th>\\n\",\n              \"      <th>Musical</th>\\n\",\n              \"      <th>Mystery</th>\\n\",\n              \"      <th>Romance</th>\\n\",\n              \"      <th>Sci-Fi</th>\\n\",\n              \"      <th>Thriller</th>\\n\",\n              \"      <th>War</th>\\n\",\n              \"      <th>Western</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Toy%20Story%2...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?GoldenEye%20(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Four%20Rooms%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Get%20Shorty%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Copycat%20(1995)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>...</th>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1677</th>\\n\",\n              \"      <td>1678</td>\\n\",\n              \"      <td>Mat' i syn (1997)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Mat%27+i+syn+...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1678</th>\\n\",\n              \"      <td>1679</td>\\n\",\n              \"      <td>B. Monkey (1998)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?B%2E+Monkey+(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1679</th>\\n\",\n              \"      <td>1680</td>\\n\",\n              \"      <td>Sliding Doors (1998)</td>\\n\",\n              \"      <td>01-Jan-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/Title?Sliding+Doors+(1998)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1680</th>\\n\",\n              \"      <td>1681</td>\\n\",\n              \"      <td>You So Crazy (1994)</td>\\n\",\n              \"      <td>01-Jan-1994</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?You%20So%20Cr...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1681</th>\\n\",\n              \"      <td>1682</td>\\n\",\n              \"      <td>Scream of Stone (Schrei aus Stein) (1991)</td>\\n\",\n              \"      <td>08-Mar-1996</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Schrei%20aus%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"<p>1682 rows × 24 columns</p>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"      movie id                                movie title  ... War  Western\\n\",\n              \"0            1                           Toy Story (1995)  ...   0        0\\n\",\n              \"1            2                           GoldenEye (1995)  ...   0        0\\n\",\n              \"2            3                          Four Rooms (1995)  ...   0        0\\n\",\n              \"3            4                          Get Shorty (1995)  ...   0        0\\n\",\n              \"4            5                             Copycat (1995)  ...   0        0\\n\",\n              \"...        ...                                        ...  ...  ..      ...\\n\",\n              \"1677      1678                          Mat' i syn (1997)  ...   0        0\\n\",\n              \"1678      1679                           B. Monkey (1998)  ...   0        0\\n\",\n              \"1679      1680                       Sliding Doors (1998)  ...   0        0\\n\",\n              \"1680      1681                        You So Crazy (1994)  ...   0        0\\n\",\n              \"1681      1682  Scream of Stone (Schrei aus Stein) (1991)  ...   0        0\\n\",\n              \"\\n\",\n              \"[1682 rows x 24 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 120\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"VFhUx9zsbQpD\",\n        \"outputId\": \"d6bf0a5a-4dd8-4923-9b91-c50a04bef417\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"movie_dataset = items_dataset[['movie id','movie title']]\\n\",\n        \"movie_dataset.head()\"\n      ],\n      \"execution_count\": 121,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   movie id        movie title\\n\",\n              \"0         1   Toy Story (1995)\\n\",\n              \"1         2   GoldenEye (1995)\\n\",\n              \"2         3  Four Rooms (1995)\\n\",\n              \"3         4  Get Shorty (1995)\\n\",\n              \"4         5     Copycat (1995)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 121\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Wr2cmp5impC7\"\n      },\n      \"source\": [\n        \"Looking at length of original items_dataset and length of unique combination of rows in items_dataset after removing movie id column\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"iIwj68LWGeQX\",\n        \"outputId\": \"1df25549-276e-49fc-950f-139f79f493e2\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"## looking at length of original items_dataset and length of unique combination of rows in items_dataset after removing movie id column\\n\",\n        \"len(items_dataset.groupby(by=column_names2[1:])),len(items_dataset)\"\n      ],\n      \"execution_count\": 122,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(1664, 1682)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 122\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"AfBNIWO7mqjc\"\n      },\n      \"source\": [\n        \"We can see there are 18 extra movie id's for already mapped movie title and the same duplicate movie id is assigned to the user in the user-item dataset.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"nwdvxUdkbiPK\"\n      },\n      \"source\": [\n        \"## Merging required datasets\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"-fKazhqFbcAq\",\n        \"outputId\": \"636990d0-c78b-4b1e-f269-dec12c317de3\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"merged_dataset = pd.merge(dataset, movie_dataset, how='inner', on='movie id')\\n\",\n        \"merged_dataset.head()\"\n      ],\n      \"execution_count\": 123,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>63</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>875747190</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>226</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>883888671</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>154</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879138235</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>306</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>876503793</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp   movie title\\n\",\n              \"0      196       242       3  881250949  Kolya (1996)\\n\",\n              \"1       63       242       3  875747190  Kolya (1996)\\n\",\n              \"2      226       242       5  883888671  Kolya (1996)\\n\",\n              \"3      154       242       3  879138235  Kolya (1996)\\n\",\n              \"4      306       242       5  876503793  Kolya (1996)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 123\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ELmLkEQBnxv1\"\n      },\n      \"source\": [\n        \"A dataset is created from the existing merged dataset by grouping the unique user id and movie title combination and the ratings by a user to the same movie in different instances (timestamps) are averaged and stored in the new dataset.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"zd2jR0cFouee\"\n      },\n      \"source\": [\n        \"Example of a multiple rating scenario by an user to a specific movie:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"HQ6owSOikYMq\",\n        \"outputId\": \"496ac596-719b-4ad3-bf8f-79cae6e0e88d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 106\n        }\n      },\n      \"source\": [\n        \"merged_dataset[(merged_dataset['movie title'] == 'Chasing Amy (1997)') & (merged_dataset['user id'] == 894)]\"\n      ],\n      \"execution_count\": 124,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4800</th>\\n\",\n              \"      <td>894</td>\\n\",\n              \"      <td>246</td>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>882404137</td>\\n\",\n              \"      <td>Chasing Amy (1997)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>22340</th>\\n\",\n              \"      <td>894</td>\\n\",\n              \"      <td>268</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879896041</td>\\n\",\n              \"      <td>Chasing Amy (1997)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"       user id  movie id  rating  timestamp         movie title\\n\",\n              \"4800       894       246       4  882404137  Chasing Amy (1997)\\n\",\n              \"22340      894       268       3  879896041  Chasing Amy (1997)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 124\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"p5XS_3dPhCVb\",\n        \"outputId\": \"f122409a-556b-4dd7-eeb0-1c98b280c81d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"refined_dataset = merged_dataset.groupby(by=['user id','movie title'], as_index=False).agg({\\\"rating\\\":\\\"mean\\\"})\\n\",\n        \"\\n\",\n        \"refined_dataset.head()\"\n      ],\n      \"execution_count\": 125,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>101 Dalmatians (1996)</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>12 Angry Men (1957)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>20,000 Leagues Under the Sea (1954)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>2001: A Space Odyssey (1968)</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Abyss, The (1989)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id                          movie title  rating\\n\",\n              \"0        1                101 Dalmatians (1996)     2.0\\n\",\n              \"1        1                  12 Angry Men (1957)     5.0\\n\",\n              \"2        1  20,000 Leagues Under the Sea (1954)     3.0\\n\",\n              \"3        1         2001: A Space Odyssey (1968)     4.0\\n\",\n              \"4        1                    Abyss, The (1989)     3.0\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 125\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"W_HNZ2j9dP5O\"\n      },\n      \"source\": [\n        \"## Exploratory data analysis\\n\",\n        \"\\n\",\n        \"*   Plot the counts of each rating\\n\",\n        \"*   Plot rating frequency of each movie\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"i_cInoHOrk4o\"\n      },\n      \"source\": [\n        \"**Plot the counts of each rating**\\n\",\n        \"\\n\",\n        \"we first need to get the counts of each rating from ratings data\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"qkoNLoyabl42\",\n        \"outputId\": \"e71b61e0-1106-4cc1-f4af-b4cbce4d6400\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"# num_users = len(refined_dataset.rating.unique())\\n\",\n        \"# num_items = len(refined_dataset.movieId.unique())\\n\",\n        \"num_users = len(refined_dataset['user id'].value_counts())\\n\",\n        \"num_items = len(refined_dataset['movie title'].value_counts())\\n\",\n        \"print('Unique number of users in the dataset: {}'.format(num_users))\\n\",\n        \"print('Unique number of movies in the dataset: {}'.format(num_items))\\n\"\n      ],\n      \"execution_count\": 126,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Unique number of users in the dataset: 943\\n\",\n            \"Unique number of movies in the dataset: 1664\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Ea3fORd-r24Z\",\n        \"outputId\": \"1aed76ea-4851-436e-943a-1eb45473905b\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 343\n        }\n      },\n      \"source\": [\n        \"rating_count_df = pd.DataFrame(refined_dataset.groupby(['rating']).size(), columns=['count'])\\n\",\n        \"rating_count_df\"\n      ],\n      \"execution_count\": 127,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>count</th>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th></th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1.0</th>\\n\",\n              \"      <td>6083</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1.5</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2.0</th>\\n\",\n              \"      <td>11334</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2.5</th>\\n\",\n              \"      <td>6</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3.0</th>\\n\",\n              \"      <td>27060</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3.5</th>\\n\",\n              \"      <td>19</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4.0</th>\\n\",\n              \"      <td>34042</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4.5</th>\\n\",\n              \"      <td>16</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5.0</th>\\n\",\n              \"      <td>21130</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"        count\\n\",\n              \"rating       \\n\",\n              \"1.0      6083\\n\",\n              \"1.5         3\\n\",\n              \"2.0     11334\\n\",\n              \"2.5         6\\n\",\n              \"3.0     27060\\n\",\n              \"3.5        19\\n\",\n              \"4.0     34042\\n\",\n              \"4.5        16\\n\",\n              \"5.0     21130\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 127\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"BbcBMiiC0GIl\",\n        \"outputId\": \"b777075a-17f1-44a5-d239-808d729274a4\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 539\n        }\n      },\n      \"source\": [\n        \"ax = rating_count_df.reset_index().rename(columns={'index': 'rating score'}).plot('rating','count', 'bar',\\n\",\n        \"    figsize=(12, 8),\\n\",\n        \"    title='Count for Each Rating Score',\\n\",\n        \"    fontsize=12)\\n\",\n        \"\\n\",\n        \"ax.set_xlabel(\\\"movie rating score\\\")\\n\",\n        \"ax.set_ylabel(\\\"number of ratings\\\")\"\n      ],\n      \"execution_count\": 128,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"Text(0, 0.5, 'number of ratings')\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 128\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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jq/rNOA0gIULF9amHZ0kSZIGMffNF2/R/V333mdt0f1tilNOOYWXvvSl3O9+99vsfU317RJnMvEc87FQvF1VraQ35WVBX/sCYGm3vLS/LcmO3T6XDtBXkiRJ08zZZ5/NAQccwIIFC3jZy17Gddddx9Oe9jQOOOAADj30UH7yk58AcMwxx/Cv//qv9/SbPbs3GePyyy/nqU99Ki984QuZN28eRx11FFXFqaeeyg033MAhhxzCIYccstl1Di2YJ3lAkiOSzE4yI8kzgJcAX0xyUJJHJNkuyW7AqcDlVTU2BeVs4IQku3QXdR4LnNm1XQg8OsnhSWYBbweWVNW1A/SVJEnSNLJ06VJOOukkvvSlL7F48WL+7u/+jje84Q0cffTRLFmyhKOOOorjjz9+0v18+9vf5pRTTuG73/0uP/rRj7jyyis5/vjjedCDHsRll13GZZddttm1DnPEvIDXANcDK4EPAH9SVRcBDwUuoTfF5L/ozTt/SV/fd9C7oHMZ8GXg5LHbHVbVcuBw4N3dfg8CjhikryRJkqaXL33pS7zoRS9i9913B2DXXXfl61//OkceeSQAL3vZy7jiiism3c/jH/949t57b7bbbjsOPPBArrvuui1e69DmmHcB+inraTsXOHcDfdcBr+heE7VfCsxbT9sG+0qSJEkTmTlzJnfffTcAd999N7fffvs9bTvssMM9yzNmzODOOyd6FM/mmeo55pIkSdKUedrTnsb555/PihW951v+4he/4IlPfCL/8i//AsA555zDwQcfDMDcuXO56qqrALjooou44447Jt3/nDlzWL16wvuMbLQpuSuLJEmSNArz58/nrW99K095ylOYMWMGv/3bv83f//3f8/KXv5yTTz6ZPfbYg49//OMAHHvssTzvec9jwYIFHHbYYey4446T7v+4447jsMMOu2eu+eZIlXcJhN7tEhctWjT5hpIkSRrINddcwyMf+chRlzEyEx1/kquqauFE2zuVRZIkSWqAwVySJElqgMFckiRJaoAXf0qSpM2ypR+zviW08Kh29VQVSUZdxpTblOs4HTGXJEnSUMyaNYsVK1ZsUkjdmlUVK1asYNasWRvVzxFzSZIkDcXee+/N9ddfz/Lly0ddypSbNWsWe++990b1MZhLkiRpKLbffnse8pCHjLqMrYZTWSRJkqQGGMwlSZKkBhjMJUmSpAYY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\\n\",\n            \"text/plain\": [\n              \"<Figure size 864x576 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"zM7NoOXG1vYU\"\n      },\n      \"source\": [\n        \"We can see that number of 1.5, 2.5, 3.5, 4.5 ratings by the users are comparitively negligible.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"cXYlt0OFxP1z\"\n      },\n      \"source\": [\n        \"Ratings for the movies not seen by a user is by default considered as 0. Lets calculate and add it to the existing dataframe.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"lgyPInMAwQAv\",\n        \"outputId\": \"10191306-986d-469f-dd46-5be593208c7f\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"total_count = num_items * num_users\\n\",\n        \"zero_count = total_count-refined_dataset.shape[0]\\n\",\n        \"zero_count\"\n      ],\n      \"execution_count\": 129,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"1469459\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 129\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"avyj8_8ewjA_\",\n        \"outputId\": \"8e6b1763-1ea6-45ed-e86c-8ec1216e1fe4\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 343\n        }\n      },\n      \"source\": [\n        \"# append counts of zero rating to df_ratings_cnt\\n\",\n        \"rating_count_df = rating_count_df.append(\\n\",\n        \"    pd.DataFrame({'count': zero_count}, index=[0.0]),\\n\",\n        \"    verify_integrity=True,\\n\",\n        \").sort_index()\\n\",\n        \"rating_count_df\"\n      ],\n      \"execution_count\": 130,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>count</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0.0</th>\\n\",\n              \"      <td>1469459</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1.0</th>\\n\",\n              \"      <td>6083</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1.5</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2.0</th>\\n\",\n              \"      <td>11334</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2.5</th>\\n\",\n              \"      <td>6</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3.0</th>\\n\",\n              \"      <td>27060</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3.5</th>\\n\",\n              \"      <td>19</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4.0</th>\\n\",\n              \"      <td>34042</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4.5</th>\\n\",\n              \"      <td>16</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5.0</th>\\n\",\n              \"      <td>21130</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"       count\\n\",\n              \"0.0  1469459\\n\",\n              \"1.0     6083\\n\",\n              \"1.5        3\\n\",\n              \"2.0    11334\\n\",\n              \"2.5        6\\n\",\n              \"3.0    27060\\n\",\n              \"3.5       19\\n\",\n              \"4.0    34042\\n\",\n              \"4.5       16\\n\",\n              \"5.0    21130\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 130\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Ofd8LQcVxvYA\"\n      },\n      \"source\": [\n        \"Number of times no rating was given (forged as 0 in this case) is a lot more than other ratings.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"f7ngnrerysBV\"\n      },\n      \"source\": [\n        \"So let's take log transform for count values and then we can plot them to compare\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ACZx4jhKxtGH\",\n        \"outputId\": \"43772624-dd68-4665-dab7-776df6fb0200\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 343\n        }\n      },\n      \"source\": [\n        \"# add log count\\n\",\n        \"rating_count_df['log_count'] = np.log(rating_count_df['count'])\\n\",\n        \"rating_count_df\"\n      ],\n      \"execution_count\": 131,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>count</th>\\n\",\n              \"      <th>log_count</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0.0</th>\\n\",\n              \"      <td>1469459</td>\\n\",\n              \"      <td>14.200405</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1.0</th>\\n\",\n              \"      <td>6083</td>\\n\",\n              \"      <td>8.713253</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1.5</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>1.098612</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2.0</th>\\n\",\n              \"      <td>11334</td>\\n\",\n              \"      <td>9.335562</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2.5</th>\\n\",\n              \"      <td>6</td>\\n\",\n              \"      <td>1.791759</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3.0</th>\\n\",\n              \"      <td>27060</td>\\n\",\n              \"      <td>10.205812</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3.5</th>\\n\",\n              \"      <td>19</td>\\n\",\n              \"      <td>2.944439</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4.0</th>\\n\",\n              \"      <td>34042</td>\\n\",\n              \"      <td>10.435350</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4.5</th>\\n\",\n              \"      <td>16</td>\\n\",\n              \"      <td>2.772589</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5.0</th>\\n\",\n              \"      <td>21130</td>\\n\",\n              \"      <td>9.958449</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"       count  log_count\\n\",\n              \"0.0  1469459  14.200405\\n\",\n              \"1.0     6083   8.713253\\n\",\n              \"1.5        3   1.098612\\n\",\n              \"2.0    11334   9.335562\\n\",\n              \"2.5        6   1.791759\\n\",\n              \"3.0    27060  10.205812\\n\",\n              \"3.5       19   2.944439\\n\",\n              \"4.0    34042  10.435350\\n\",\n              \"4.5       16   2.772589\\n\",\n              \"5.0    21130   9.958449\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 131\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"J2LE9usIy1Mz\",\n        \"outputId\": \"b0bd7926-7d36-4e9d-ec5b-f9f090ef228d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 343\n        }\n      },\n      \"source\": [\n        \"rating_count_df = rating_count_df.reset_index().rename(columns={'index': 'rating score'})\\n\",\n        \"rating_count_df\"\n      ],\n      \"execution_count\": 132,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>rating score</th>\\n\",\n              \"      <th>count</th>\\n\",\n              \"      <th>log_count</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>1469459</td>\\n\",\n              \"      <td>14.200405</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1.0</td>\\n\",\n              \"      <td>6083</td>\\n\",\n              \"      <td>8.713253</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1.5</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>1.098612</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>11334</td>\\n\",\n              \"      <td>9.335562</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>2.5</td>\\n\",\n              \"      <td>6</td>\\n\",\n              \"      <td>1.791759</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>27060</td>\\n\",\n              \"      <td>10.205812</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>3.5</td>\\n\",\n              \"      <td>19</td>\\n\",\n              \"      <td>2.944439</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>34042</td>\\n\",\n              \"      <td>10.435350</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>4.5</td>\\n\",\n              \"      <td>16</td>\\n\",\n              \"      <td>2.772589</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>21130</td>\\n\",\n              \"      <td>9.958449</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   rating score    count  log_count\\n\",\n              \"0           0.0  1469459  14.200405\\n\",\n              \"1           1.0     6083   8.713253\\n\",\n              \"2           1.5        3   1.098612\\n\",\n              \"3           2.0    11334   9.335562\\n\",\n              \"4           2.5        6   1.791759\\n\",\n              \"5           3.0    27060  10.205812\\n\",\n              \"6           3.5       19   2.944439\\n\",\n              \"7           4.0    34042  10.435350\\n\",\n              \"8           4.5       16   2.772589\\n\",\n              \"9           5.0    21130   9.958449\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 132\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"vb5wAmR4zg7s\",\n        \"outputId\": \"8b822e7a-4e99-460e-e78f-2e4fa97bf9af\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 539\n        }\n      },\n      \"source\": [\n        \"ax = rating_count_df.plot('rating score', 'log_count', 'bar', figsize=(12, 8),\\n\",\n        \"    title='Count for Each Rating Score (in Log Scale)',\\n\",\n        \"    logy=True,\\n\",\n        \"    fontsize=12,)\\n\",\n        \"\\n\",\n        \"ax.set_xlabel(\\\"movie rating score\\\")\\n\",\n        \"ax.set_ylabel(\\\"number of ratings\\\")\"\n      ],\n      \"execution_count\": 133,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"Text(0, 0.5, 'number of ratings')\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 133\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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XWTZWrs+yRP79/zvdJ/3cRv4vrNqrV2c5Mx04enf0100eWm6YQk3ZfUhBx/r/7u8qjZmOrcXpBvnuzzdz/Gk9MNRZnFdut77H6QbTvCOJEe01lb9nF+UblzvN5NclW6Melp3MeqbkvxLuuB4/3QXts6qtXZ+klekuwj0p+kuvHvJOj7DcUlesEbP8e3xvCQ/H3l8d13nWn++/Va6oTvX9vt9Mmtvx58leWe68+aadOOvn9Va+14/ZOTQdL3KP0hyebqpGZPuQuB90/3l4vQkJ6/jM7w73YW0/1FV16e7iHL0H38vSBfAgTlSqw8VA2Ahqu6mMN9srf3JpGvZEFX1z+kuODxlvTvPg6r6UpL3tdb+cdK1rKmq7p5u6sKHttbWNU4duB2Ea4AFqKr2T/KTJJcleVK6v1D8emvtaxMtbMpU1WPSzWhyTWZ6he/XD5cBFiCzhQAsTPdIN7zgLumGIBwhWG+UB6Ubl33HJN9L8mzBGhY2PdcAADAQFzQCAMBAhGsAABjIZjPm+q53vWtbunTppMsAAGAz95WvfOWa1trdZtu22YTrpUuX5vzzz590GQAAbOaqaq03YjIsBAAABiJcAwDAQIRrAAAYyGYz5hoAYKH75S9/mcsvvzw33eQO90NYvHhxdt5552y11VZjv0a4BgDYTFx++eXZfvvts3Tp0lTVpMuZaq21LF++PJdffnl23XXXsV9nWAgAwGbipptuyl3uchfBegBVlbvc5S4b/FcA4RoAYDMiWA9nY9pSuAYAgIEYcw0AsJlaevTpgx5v2bFPXe8+2223XW644YZB33cunXLKKXngAx+YPffcc5Dj6bkGAGDBOuWUU/L1r399sOMJ1wAADK61lqOOOiq/9mu/lr322isnnXRSkmTlypU58sgjs/vuu+eJT3xinvKUp+TjH//4Wo9z3nnn5ZGPfGT23nvvHHDAAbn++utz00035aUvfWn22muvPPShD83nPve5JMnxxx+fV7/61be99pBDDsnnP//5JF2P+hvf+MbsvffeecQjHpErr7wy55xzTk499dQcddRR2WefffLd7373dn9uw0IAABjcySefnAsuuCAXXnhhrrnmmuy///559KMfnbPPPjvLli3L17/+9Vx11VXZY4898rKXvWzWY9x888057LDDctJJJ2X//ffPddddl2233Tbvfve7U1W5+OKL881vfjNPetKTcumll66znhtvvDGPeMQj8ra3vS1/+Id/mPe///055phj8rSnPS2HHHJInv3sZw/yufVcAwAwuLPOOivPe97zsuWWW2annXbKYx7zmJx33nk566yz8pznPCdbbLFF7nGPe+Rxj3vcWo/xrW99K/e85z2z//77J0l22GGHLFq0KGeddVZe+MIXJkl233333Pe+911vuN56661zyCGHJEke9rCHZdmyZcN80DUI1wAAbBYWLVqUlStX3rY8Okf1VlttddvUeltuuWVuueWWOalBuAYAYHAHHXRQTjrppNx66625+uqrc+aZZ+aAAw7IgQcemH/5l3/JypUrc+WVV942Jno2D3rQg3LFFVfkvPPOS5Jcf/31ueWWW3LQQQflhBNOSJJceuml+cEPfpAHPehBWbp0aS644IKsXLkyP/zhD/PlL395vXVuv/32uf766wf5zIkx1wAAm61xps6bK8985jNz7rnnZu+9905V5R3veEfucY975FnPelY++9nPZs8998x97nOf7LvvvlmyZMmsx9h6661z0kkn5TWveU1+/vOfZ9ttt80ZZ5yRI488MkcccUT22muvLFq0KMcff3y22WabHHjggdl1112z5557Zo899si+++673jqf+9zn5hWveEXe85735OMf/3juf//7367PXa2123WATcV+++3Xzj///EmXAQAwMd/4xjeyxx57TLqM9brhhhuy3XbbZfny5TnggANy9tln5x73uMeky5rVbG1aVV9pre032/56rgEAmFeHHHJIrr322tx8881505vetMkG640hXI8Y+i5GG2OSf74BAJgPs42zfuYzn5nLLrtstXVvf/vbc/DBB89TVcMQrgEAmLhPfOITky5hEGYLAQDYjGwu19NtCjamLYVrAIDNxOLFi7N8+XIBewCttSxfvjyLFy/eoNcZFgIAsJnYeeedc/nll+fqq6+edCmbhcWLF2fnnXfeoNcI1wAAm4mtttoqu+6666TLWNAMCwEAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEsmnQBAMDmZ+nRp0+6hCw79qmTLoEFaJPsua6qJVX15aq6oap+bdL1AADAODbJcJ3kZ0memuTjky4EAADGtUmG69baL1trV0+6DgAA2BBzOua6ql6d5CVJ9kpyYmvtJSPbdkzygSRPSnJNkv/VWvvnuawHgOEZWwswY64vaPxxkrcmOTjJtmtse2+Sm5PslGSfJKdX1YWttUvmuCYAAJgTczospLV2cmvtlCTLR9dX1R2TPCvJm1prN7TWzkpyapIXzWU9AAAwlyY15vqBSW5prV06su7CJA9etVBVn0o3ZOT9VfWS2Q5SVYdX1flVdf7VVxuiDQDAZE1qnuvtkly3xroVSbZftdBae8r6DtJaOy7JcUmy3377tSELBABgWAvhGo1J9VzfkGSHNdbtkOT6CdQCAACDmFS4vjTJoqp6wMi6vZO4mBEAgKk1p+G6qhZV1eIkWybZsqoWV9Wi1tqNSU5O8paqumNVHZjk6Uk+Mpf1AADAXJrrnutjkvw8ydFJXtg/P6bfdmS66fmuSnJikiNMwwcAwDSb0wsaW2tvTvLmtWz7SZJnzOX7AwDAfNokb38OAADTSLgGAICBCNcAADAQ4RoAAAYyqTs0AlNoIdxZCwBuDz3XAAAwEOEaAAAGIlwDAMBAhGsAABjI1Ifrqjq0qo5bsWLFpEsBAGCBm/pw3Vo7rbV2+JIlSyZdCgAAC9zUh2sAANhUCNcAADAQ4RoAAAbiDo3Myp34AAA2nJ5rAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxk6sN1VR1aVcetWLFi0qUAALDATX24bq2d1lo7fMmSJZMuBQCABW7qwzUAAGwqhGsAABiIcA0AAAMRrgEAYCDCNQAADES4BgCAgQjXAAAwEOEaAAAGIlwDAMBAhGsAABiIcA0AAAMRrgEAYCDCNQAADES4BgCAgQjXAAAwEOEaAAAGIlwDAMBAhGsAABiIcA0AAAOZ+nBdVYdW1XErVqyYdCkAACxwUx+uW2untdYOX7JkyaRLAQBggZv6cA0AAJsK4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIFMfrqvq0Ko6bsWKFZMuBQCABW7qw3Vr7bTW2uFLliyZdCkAACxwUx+uAQBgUyFcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYyAaF66q6c1U9ZK6KAQCAabbecF1Vn6+qHapqxyRfTfL+qvqruS8NAACmyzg910taa9cl+a0kH26tPTzJE+a2LAAAmD7jhOtFVXXPJL+d5JNzXA8AAEytccL1W5L8e5LvtNbOq6r7Jfn23JYFAADTZ9H6dmitfSzJx0aWv5fkWXNZFAAATKP1huuqes8sq1ckOb+19q/DlwQAANNpnGEhi5Psk24oyLeTPCTJzkleXlXvmsPaxlJVh1bVcStWrJh0KQAALHDr7blOF6YPbK3dmiRV9XdJvpDkUUkunsPaxtJaOy3Jafvtt98rJl0LAAAL2zg913dOst3I8h2T7NiH7V/MSVUAADCFxum5fkeSC6rq80kqyaOT/FlV3THJGXNYGwAATJVxZgv5QFV9KskB/ao3tNZ+3D8/as4qAwCAKTPOsJBV+12d5KdJdquqR89dSQAAMJ3GmYrv7UkOS3JJkpX96pbkzDmsCwAAps44Y66fkeRBrTUXLwIAwDqMMyzke0m2mutCAABg2o3Tc/2zdLOFfDYjU++11l47Z1UBAMAUGidcn9o/AACAdRhnKr4PzUchAAAw7dYarqvqo621366qi9PNDrKa1tpD5rQyAACYMuvquf69/r+HzEchAAAw7dY6W0hr7Yr+6ZGtte+PPpIcOT/lAQDA9BhnKr4nzrLuyUMXAgAA025dY66PSNdDfb+qumhk0/ZJzp7rwgAAYNqsa8z1Pyf5tyR/nuTokfXXt9Z+MqdVAQDAFFpruG6trUiyIsnzkqSq7p5kcZLtqmq71toP5qdEAACYDusdc11Vh1bVt5NcluS/kixL16MNAACMGOeCxrcmeUSSS1truyZ5fJIvzmlVAAAwhcYJ179srS1PskVVbdFa+1yS/ea4LgAAmDrrvf15kmurarskZyY5oaquSnLj3JYFAADTZ5ye66cn+VmSP0jy6STfTXLoXBYFAADTaJ0911W1ZZJPttYel2Rlkg/NS1UAADCF1tlz3Vq7NcnKqloyT/UAAMDUGmfM9Q1JLq6qz2RkrHVr7bVzVhUAAEyhccL1yf0DAABYh/WG69aacdYAADCGcWYLAQAAxiBcAwDAQNYarqvqI/1/f2/+ygEAgOm1rp7rh1XVvZK8rKruXFU7jj7mq0AAAJgW67qg8X1JPpvkfkm+kqRGtrV+PQAA0Ftrz3Vr7T2ttT2SfLC1dr/W2q4jD8EaAADWMM5UfEdU1d5JDupXndlau2huyxpfVR2a5NDddttt0qUAALDArXe2kKp6bZITkty9f5xQVa+Z68LG1Vo7rbV2+JIl7tAOAMBkjXOHxt9N8vDW2o1JUlVvT3Jukv8zl4UBAMC0GWee60py68jyrVn94kYAACDj9Vz/Y5IvVdUn+uVnJPnA3JUEAADTaZwLGv+qqj6f5FH9qpe21r42p1UBAMAUGqfnOq21ryb56hzXAgAAU22cMdcAAMAYhGsAABjIOsN1VW1ZVZ+br2IAAGCarTNct9ZuTbKyqtyhBQAA1mOcCxpvSHJxVX0myY2rVrbWXjtnVQEAwBQaJ1yf3D8AAIB1GGee6w9V1bZJdmmtfWseagIAgKm03tlCqurQJBck+XS/vE9VnTrXhQEAwLQZZyq+Nyc5IMm1SdJauyDJ/eawJgAAmErjhOtfttZWrLFu5VwUAwAA02ycCxovqarnJ9myqh6Q5LVJzpnbsgAAYPqM03P9miQPTvKLJCcmuS7J789lUQAAMI3GmS3kZ0neWFVv7xbb9XNfFgAATJ9xZgvZv6ouTnJRupvJXFhVD5v70gAAYLqMM+b6A0mObK19IUmq6lFJ/jHJQ+ayMAAAmDbjjLm+dVWwTpLW2llJbpm7kgAAYDqttee6qvbtn/5XVf19uosZW5LDknx+7ksDAIDpsq5hIe9cY/lPRp63OagFAACm2lrDdWvtcfNZCAAATLv1XtBYVXdK8jtJlo7u31p77dyVBQAA02ec2UI+leSLSS6O254DAMBajROuF7fWXjfnlQAAwJQbZyq+j1TVK6rqnlW146rHnFcGAABTZpye65uT/EWSN2ZmlpCW5H5zVRQAAEyjccL1/0yyW2vtmrkuBgAAptk4w0K+k+Rnc10IAABMu3F6rm9MckFVfS7JL1atNBUfAACsbpxwfUr/AAAA1mG94bq19qH5KAQAAKbdOHdovCwzs4TcprVmthAAABgxzrCQ/UaeL07ynCTmuQYAgDWsd7aQ1trykcePWmvvSvLUeagNAACmyjjDQvYdWdwiXU/2OD3eAACwoIwTkt858vyWJMuS/PacVAMAAFNsnNlCHjcfhQAAwLQbZ1jINkmelWTp6P6ttbfMXVkAADB9xhkW8q9JViT5Skbu0AgAAKxunHC9c2vtN+e8ko1UVYcmOXS33XabdCkAACxw652KL8k5VbXXnFeykVprp7XWDl+yZMmkSwEAYIEbp+f6UUle0t+p8RdJKklrrT1kTisDAIApM064fvKcVwEAm4GlR58+6RKy7Fj3eYNJGmcqvu/PRyEAADDtxhlzDQAAjEG4BgCAgQjXAAAwEOEaAAAGIlwDAMBAhGsAABiIcA0AAAMZ5yYyAABsJDcXWlj0XAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGMjUh+uqOrSqjluxYsWkSwEAYIGb+nDdWjuttXb4kiVLJl0KAAAL3NSHawAA2FQI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxEuAYAgIEI1wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgiyZdAMA0Wnr06ZMuIcuOfeqkSwBgDXquAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGALwJDxkAAA5+SURBVICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMRLgGAICBCNcAADAQ4RoAAAYiXAMAwECEawAAGIhwDQAAAxGuAQBgIMI1AAAMZNGkC4BN3dKjT590CVl27FMnXQIAMAY91wAAMBDhGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAxkkw3XVfX2qvpCVX2kqraadD0AALA+m2S4rqq9k9y7tXZQkm8mefaESwIAgPXaJMN1kkcm+Y/++aeTHDjBWgAAYCxzGq6r6tVVdX5V/aKqjl9j245V9YmqurGqvl9Vzx/ZfOck1/XPVyTZcS7rBACAISya4+P/OMlbkxycZNs1tr03yc1JdkqyT5LTq+rC1tolSa5NskO/35IkP5njOgEA4Hab057r1trJrbVTkiwfXV9Vd0zyrCRvaq3d0Fo7K8mpSV7U73JOkif0zw9OcvZc1gkAAEOY1JjrBya5pbV26ci6C5M8OElaaxckubKqvtCv+5f5LxEAADbMXA8LWZvtMjOmepUVSbZftdBaO2p9B6mqw5McniS77LLLkPUBAMAGm1TP9Q2ZGVO9yg5Jrt+Qg7TWjmut7dda2+9ud7vbYMUBAMDGmFS4vjTJoqp6wMi6vZNcMqF6AADgdpvrqfgWVdXiJFsm2bKqFlfVotbajUlOTvKWqrpjVR2Y5OlJPjKX9QAAwFya657rY5L8PMnRSV7YPz+m33Zkuun5rkpyYpIj+mn4AABgKlVrbdI1DKKqrk7y/UnXkeSuSa6ZdBGbCG0xQ1vM0BYztMUMbTFDW3S0wwxtMWNTaYv7ttZmveBvswnXm4qqOr+1tt+k69gUaIsZ2mKGtpihLWZoixnaoqMdZmiLGdPQFpO6oBEAADY7wjUAAAxEuB7ecZMuYBOiLWZoixnaYoa2mKEtZmiLjnaYoS1mbPJtYcw1AAAMRM81AAAMRLgGAICBCNcAADCQRZMuANj8VdWdk2yf5PrW2k8nXQ+bBucFsDnSc307VNXhVXVOVa2oqlv7/55TVa+YdG2TVFV3rqpd+i9OFqiq2qqq/qyqrkh3N61lSa6pqh9X1duqaqvJVjh/qurRI8+3qKo/qqrzqur8qjqmqracZH3zyXkxw3mxOt+pSVUtXWP5sKr6WFV9vKpeOJmqJmsazwvheiNV1bFJfi/JPyT5jSQPSvK4fvn3qurPJ1jevPOF2fFluZq/S/LrSV6Q5O5Jtk5ytyQvTPKIfvtC8cmR529I8jtJ/jLJXyQ5LMkxkyhqQpwXM5wXPd+pt7lo1ZOqemWSv05yfpIvJzm2ql41qcImYVrPC1PxbaSqujrJQ1prV8yy7V5JLmqt3XX+K5uMqvqHJPdP8r+TXJhkRZIdkuyT5I1JLmut/e7kKpwfVXVda22H/vkxSZ6X5C395mOSfLy19qeTqm8+VdW1Se7bWlsxy7Y7JVnWWrvT/Fc2/6rq+tba9v3zbyZ5Vmvtkn559ySfbK3tNska54vzYobzYobv1M4a58TFSQ5vrZ3bLx+Q5PjW2p6TrHE+Tet5Ycz1xqvbuX1z8+z86hfmT5L8Z1V9NV1P9mYfrrP6z/2FWf3L8sJ0PVULIlwn+XmSe6b7h9aa7pnkpvktZ6JGezF2XHVOJElr7ZtVtdMEapoU58UM58UM36md0XPinkm+eNuG1r5cVTvPf0kTNZXnhXC98T6QLji+M6v31O6d5HVJ3j/B2ibBF2bHl+WMdyT5XFV9IL/6O/LyJMdOsLb5doeqOrN/vm1V3be19v0kqaq7J7lxcqXNO+fFDOfFDN+pncVV9eH++ZZJdkry38ltf9m5eVKFTchUnhfC9UZqrf1RVX0vyUuTPDjJdkluSHJJkve01v5+kvVNgC/Mji/LXmvtr6vq6+nGkR6S1X9HXtpa+/dJ1jfPXr7G8mhvy75JPjKPtUyU82I1zoue79TbvG3k+buS3Cl9uE7y6CT/Me8VTdC0nhfGXDOYqjo43Rfmmr8AH14oX5hV9eI1Vv1Xa21Zv+03kzy+tXbUvBcGAMwL4RqYiKraubV2+aTr2BRoixnaYoa2gOlkKr45UlXXTbqGTckCvAhjVtphNV+fdAGbkG9MuoBNiPNihrbo+U7taIfVbartIVzPnadMuoBNjPDQ0Q4zHjzpAjYhC2ZqrTE4L2Zoixm+UzvaYXWbZHsYFnI7VNUeSV6U7n+A2ye5Pt0Y44+01oSoEVV1n9baDyddx6QttHaoql2SPCzJJa21S9fY9rzW2omTqWz+aYsZVfXQdPPifyrJL5Ic0S+f0Vo7fZK1zTdtsW5VdX6SJ7XWfjLpWiZJO3Sqatd0gbqSfLq19p0JlzQr4XojVdXz0t1J7NT86uwYT0vyytbaSZOrcNPR35Xwja21t6x3583YQmuH/gLOjya5LMkDkhyf5DWttVv77bfdcGdzpy1mVNXLk7w13bSVP05ycpL7pJu96rlJfq+19sHJVTh/tMWMkenn1vTsdPcHuKm19jvzWNJEaIfVVdU3Wmt79M8fk+S0JGen+505KMnTW2v/OcESZyVcb6SquizJC1trZ8+y7cAkJ7TWls57YZugqtomyc9aawvp1t+/YqG1Q3/zoDe11k7v5/f+p3Q9c7/VWrt59E5kmzttMaO/E+HT0vU8fSPJo1pr5/TbDk7yjtba3hMscd5oixlV9fN0t/j+bFafkvD1Sd6X5IaFcHdb7bC6Ne5Y+YUk72+tfbhffkGSV7XWHjnJGmcjXG+kqrohyd1aaz+fZdsdklzVWttu/iubjKpaV+/KoiQvWAihUjvMqKoVrbUlI8uL0oXKu6YLFFcuoECpLXqjbVFVNybZrvVfRFW1RZKfLKDbn2uLXlU9IMnfJPlpkte11n7cr78iyd6ttasmWd980Q6rG/2rXlVdleTerbVf9stbJrm6tbbjJGucjQsaN95nknywqu4/urJffn+/fSF5frq7NP5olsdCmkpKO8z4aVXdZ9VCa+2WJM9L8oMkZ6S7+9hCoS1m3FhVW/XPj2+r9/Bsm2TlBGqaFG3Ra619u7V2cJJT0t2Q7PX9P0IXVA+gdvgVW1XVS6vqZenaYOuRbYuyif6/0x0aN97Lkvxtkq9X1S+TXJduzPWidOPmXjbB2ibh4iT/3lo7dc0NVbU4ydHzX9JEaIcZZ6S7q9ZtY8z78PCyqnpfkkdMqrAJ0BYzPptktyTfaK29ao1thyS5aP5LmhhtsYbW2v+tqk+l+125IN1kAQuOdrjNl9LdnC7ppqbcM8l5/fJjknxrEkWtj2Eht1M/BOSBmbkj4aWttZ9Ntqr5V1WvSvKj1tops2zbMskxC2GcmHaYUVVbJ1m0tt+HqtqltfaDeS5rIrTFeKrqbun+3XHNpGuZNG2RVNU+6QLU37fWbpp0PZOiHWZXVUuSbLUp/o4I1wAAMBBjrgEAYCDCNQAADES4BthEVdUrq2rwG0ZU1dKqev7I8n5V9Z6h3wdgITLmGmAzVFWL+in/Ztv22CSvb60dMr9Vbbiq2nLVnSwBpoGea4Dbqe8J/mZVHV9Vl1bVCVX1hKo6u6q+XVUH9PvtWFWnVNVFVfXFqnpIVW1RVcuq6k4jx/t2Ve1UVW+uqtf36+5fVZ+uqq9U1ReqavdZ6nhzVX2kqs5O8pG+ri9U1Vf7x6o7mR2b5KCquqCq/qCqHltVnxw5xger6vNV9b2qeu3I8d9UVd+qqrOq6sRVta1Rw3Oq6v9V1YVVdWa/bsuq+st+/UVV9Zp+/eOr6mtVdXH/ntv065dV1duru7Plc6rqSVV1bv8ZPlZVC+YGXcD0Ea4BhrFbkncm2b1/PD/Jo9LdtvgN/T5/muRrrbWH9Os+3FpbmeRfkzwzSarq4Um+31q7co3jH5fkNa21h/XH/Nu11LFnkie01p6X5KokT2yt7ZvksCSrhn4cneQLrbV9Wmt/Pcsxdk9ycJIDkvxJVW1VVfsneVaSvZM8Ocl+a3n/P05ycH/b7qf16w5PsjTJPv1nP6Gf9/34JIe11vZKd4+AI0aOs7yv+4wkx/Sfad8k5yd53VreG2Di3EQGYBiXtdYuTpKquiTJZ1trraouThcsky5sPytJWmv/WVV3qaodkpyULpT+Y5Ln9su36XtqH5nkY1W1avU2a6nj1Nbaz/vnWyX5m36e3FvTzck/jtNba79I8ov+lsM7JTkwyb/28+zeVFWnreW1Zyc5vqo+mu6GWknyhCTvWzVMpbX2k6raO12bXdrv86Ekr0ryrn55VRs8It0/GM7uP/vWSc4d83MAzDvhGmAYvxh5vnJkeWXW///ac5Ps1t845BlJ3rrG9i2SXNta22eMOm4cef4HSa5M19u8RZJxb0Ax+lluzQZ8V7TWXtn3vj81yVeq6mHjvnYNqz5HJflM3xMPsMkzLARg/nwhyQuS2y4qvKa1dl1/K/RPJPmrdLfCXj76otbadUkuq6rn9K+tvud3fZYkuaIfevKiJFv266/Pht9O+ewkh1bV4r4nfdaLIavq/q21L7XW/jjJ1Unuk+QzSf5HVS3q99kx3W2Ll1bVbv1LX5Tkv2Y55BeTHLhqv6q6Y1WN2wMPMO+Ea4D58+YkD6uqi9JdVPjikW0nJXlh1hgSMuIFSV5eVRcmuSTJ08d4v79N8uL+Nbtnpjf4oiS39hcd/sE4hbfWzktyav/af0tycZIVs+z6F/0Fiv8vyTlJLkzyD0l+kOSivpbn98NLXppuqMvF6Xr43zfL+16d5CVJTuzb7dz+swBskkzFB8BYqmq71toNVXWHJGcmOby19tVJ1wWwKTHmGoBxHVdVeyZZnORDgjXAr9JzDQAAAzHmGgAABiJcAwDAQIRrAAAYiHANAAADEa4BAGAgwjUAAAzk/wMTBMoPutQUjwAAAABJRU5ErkJggg==\\n\",\n            \"text/plain\": [\n              \"<Figure size 864x576 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"J5oRl9LZ2KiW\"\n      },\n      \"source\": [\n        \"We have already observed from the before bar plot that ratings 3 and 4 are given in more numbers by the users. Even the above graph suggests the same.\\n\",\n        \"\\n\",\n        \" Take away from this plot is by the number of missing ratings, we can estimate the level of sparsity in the matrix we are going to form. \"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ezYrpsCM2LC7\"\n      },\n      \"source\": [\n        \"**Plot rating frequency of all movies**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"YqfWKYCEz782\",\n        \"outputId\": \"93b3ac8c-a39f-44e5-9c2f-39ce2d9b6b55\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"refined_dataset.head()\"\n      ],\n      \"execution_count\": 134,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>101 Dalmatians (1996)</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>12 Angry Men (1957)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>20,000 Leagues Under the Sea (1954)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>2001: A Space Odyssey (1968)</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Abyss, The (1989)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id                          movie title  rating\\n\",\n              \"0        1                101 Dalmatians (1996)     2.0\\n\",\n              \"1        1                  12 Angry Men (1957)     5.0\\n\",\n              \"2        1  20,000 Leagues Under the Sea (1954)     3.0\\n\",\n              \"3        1         2001: A Space Odyssey (1968)     4.0\\n\",\n              \"4        1                    Abyss, The (1989)     3.0\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 134\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"oTe-A4D156Ry\",\n        \"outputId\": \"f64f656a-b218-4ab1-95a3-e01641fbe434\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 225\n        }\n      },\n      \"source\": [\n        \"# get rating frequency\\n\",\n        \"movies_count_df = pd.DataFrame(refined_dataset.groupby('movie title').size(), columns=['count'])\\n\",\n        \"movies_count_df.head()\"\n      ],\n      \"execution_count\": 135,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>count</th>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th></th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>'Til There Was You (1997)</th>\\n\",\n              \"      <td>9</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1-900 (1994)</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>101 Dalmatians (1996)</th>\\n\",\n              \"      <td>109</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>12 Angry Men (1957)</th>\\n\",\n              \"      <td>125</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>187 (1997)</th>\\n\",\n              \"      <td>41</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                           count\\n\",\n              \"movie title                     \\n\",\n              \"'Til There Was You (1997)      9\\n\",\n              \"1-900 (1994)                   5\\n\",\n              \"101 Dalmatians (1996)        109\\n\",\n              \"12 Angry Men (1957)          125\\n\",\n              \"187 (1997)                    41\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 135\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"2PZxHmrq6MTz\",\n        \"outputId\": \"e2b555d2-c2f9-44db-de48-8e57efe3e4c5\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 533\n        }\n      },\n      \"source\": [\n        \"# plot rating frequency of all movies\\n\",\n        \"ax = movies_count_df \\\\\\n\",\n        \"    .sort_values('count', ascending=False) \\\\\\n\",\n        \"    .reset_index(drop=True) \\\\\\n\",\n        \"    .plot(\\n\",\n        \"        figsize=(12, 8),\\n\",\n        \"        title='Rating Frequency of All Movies',\\n\",\n        \"        fontsize=12\\n\",\n        \"    )\\n\",\n        \"ax.set_xlabel(\\\"movie Id\\\")\\n\",\n        \"ax.set_ylabel(\\\"number of ratings\\\")\"\n      ],\n      \"execution_count\": 136,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"Text(0, 0.5, 'number of ratings')\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 136\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 864x576 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"PyCcV_0j6yUw\"\n      },\n      \"source\": [\n        \"**As the size of MovieLens dataset picked for this project is small. There is no need of removing rarely rated movies or users who has given rating for fewer movies.**\\n\",\n        \"\\n\",\n        \"**Also because the dataset considered is small, we do not see the long-tail property which will be the scenario with the distribution of ratings.**\\n\",\n        \"\\n\",\n        \"*If the dataset is larger, then* (this can be referred when we do similar kind of tasks with a larger dataset, just for future reference)\\n\",\n        \"\\n\",\n        \"The distribution of ratings among movies often satisfies a property in real-world settings, which is referred to as the long-tail property. According to this property, only a small fraction of the items are rated frequently. Such items are referred to as popular items. The vast majority of items are rated rarely. This results in a highly skewed distribution of the underlying ratings.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"PZD27ZLM8IN7\"\n      },\n      \"source\": [\n        \"# Training KNN model to build item-based collaborative Recommender System.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"5omV7GyNTITK\"\n      },\n      \"source\": [\n        \"**Reshaping the dataframe**\\n\",\n        \"\\n\",\n        \"We need to transform (reshape in this case) the data in such a way that each row of the dataframe represents a movie and each column represents a different user. So we want the data to be [movies, users] array if movie is the subject where similar movies must be found and [users, movies] array for reverse.\\n\",\n        \"\\n\",\n        \"To reshape the dataframe, we will pivot the dataframe to the wide format with movies as rows and users as columns. As we know that not all users watch all the movies, we can expect a lot of missing values. We will have to fill those missing observations with 0s since we are going to perform linear algebra operations (calculating distances between vectors). \\n\",\n        \"\\n\",\n        \"Finally, we transform the values of the dataframe into a scipy sparse matrix for most efficient calculations.\\n\",\n        \"\\n\",\n        \"This dataframe is then fed into a KNN model.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"IyvX84Lm6ToE\"\n      },\n      \"source\": [\n        \"## Movie Recommendation using KNN with Input as **User id**, Number of similar users should the model pick and Number of movies you want to get recommended:\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3qJCE3l3f2mY\"\n      },\n      \"source\": [\n        \"1. Reshaping model in such a way that each user has n-dimensional rating space where n is total number of movies\\n\",\n        \"\\n\",\n        \" We will train the KNN model inorder to find the closely matching similar users to the user we give as input and we recommend the top movies which would interest the input user.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"pVjDfpRvWVhw\",\n        \"outputId\": \"d4e854fb-2020-4c7e-88c4-57b2e5d638cb\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 391\n        }\n      },\n      \"source\": [\n        \"# pivot and create movie-user matrix\\n\",\n        \"user_to_movie_df = refined_dataset.pivot(\\n\",\n        \"    index='user id',\\n\",\n        \"     columns='movie title',\\n\",\n        \"      values='rating').fillna(0)\\n\",\n        \"\\n\",\n        \"user_to_movie_df.head()\"\n      ],\n      \"execution_count\": 138,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>'Til There Was You (1997)</th>\\n\",\n              \"      <th>1-900 (1994)</th>\\n\",\n              \"      <th>101 Dalmatians (1996)</th>\\n\",\n              \"      <th>12 Angry Men (1957)</th>\\n\",\n              \"      <th>187 (1997)</th>\\n\",\n              \"      <th>2 Days in the Valley (1996)</th>\\n\",\n              \"      <th>20,000 Leagues Under the Sea (1954)</th>\\n\",\n              \"      <th>2001: A Space Odyssey (1968)</th>\\n\",\n              \"      <th>3 Ninjas: High Noon At Mega Mountain (1998)</th>\\n\",\n              \"      <th>39 Steps, The (1935)</th>\\n\",\n              \"      <th>8 1/2 (1963)</th>\\n\",\n              \"      <th>8 Heads in a Duffel Bag (1997)</th>\\n\",\n              \"      <th>8 Seconds (1994)</th>\\n\",\n              \"      <th>A Chef in Love (1996)</th>\\n\",\n              \"      <th>Above the Rim (1994)</th>\\n\",\n              \"      <th>Absolute Power (1997)</th>\\n\",\n              \"      <th>Abyss, The (1989)</th>\\n\",\n              \"      <th>Ace Ventura: Pet Detective (1994)</th>\\n\",\n              \"      <th>Ace Ventura: When Nature Calls (1995)</th>\\n\",\n              \"      <th>Across the Sea of Time (1995)</th>\\n\",\n              \"      <th>Addams Family Values (1993)</th>\\n\",\n              \"      <th>Addicted to Love (1997)</th>\\n\",\n              \"      <th>Addiction, The (1995)</th>\\n\",\n              \"      <th>Adventures of Pinocchio, The (1996)</th>\\n\",\n              \"      <th>Adventures of Priscilla, Queen of the Desert, The (1994)</th>\\n\",\n              \"      <th>Adventures of Robin Hood, The (1938)</th>\\n\",\n              \"      <th>Affair to Remember, An (1957)</th>\\n\",\n              \"      <th>African Queen, The (1951)</th>\\n\",\n              \"      <th>Afterglow (1997)</th>\\n\",\n              \"      <th>Age of Innocence, The (1993)</th>\\n\",\n              \"      <th>Aiqing wansui (1994)</th>\\n\",\n              \"      <th>Air Bud (1997)</th>\\n\",\n              \"      <th>Air Force One (1997)</th>\\n\",\n              \"      <th>Air Up There, The (1994)</th>\\n\",\n              \"      <th>Airheads (1994)</th>\\n\",\n              \"      <th>Akira (1988)</th>\\n\",\n              \"      <th>Aladdin (1992)</th>\\n\",\n              \"      <th>Aladdin and the King of Thieves (1996)</th>\\n\",\n              \"      <th>Alaska (1996)</th>\\n\",\n              \"      <th>Albino Alligator (1996)</th>\\n\",\n              \"      <th>...</th>\\n\",\n              \"      <th>Whole Wide World, The (1996)</th>\\n\",\n              \"      <th>Widows' Peak (1994)</th>\\n\",\n              \"      <th>Wife, The (1995)</th>\\n\",\n              \"      <th>Wild America (1997)</th>\\n\",\n              \"      <th>Wild Bill (1995)</th>\\n\",\n              \"      <th>Wild Bunch, The (1969)</th>\\n\",\n              \"      <th>Wild Reeds (1994)</th>\\n\",\n              \"      <th>Wild Things (1998)</th>\\n\",\n              \"      <th>William Shakespeare's Romeo and Juliet (1996)</th>\\n\",\n              \"      <th>Willy Wonka and the Chocolate Factory (1971)</th>\\n\",\n              \"      <th>Window to Paris (1994)</th>\\n\",\n              \"      <th>Wings of Courage (1995)</th>\\n\",\n              \"      <th>Wings of Desire (1987)</th>\\n\",\n              \"      <th>Wings of the Dove, The (1997)</th>\\n\",\n              \"      <th>Winnie the Pooh and the Blustery Day (1968)</th>\\n\",\n              \"      <th>Winter Guest, The (1997)</th>\\n\",\n              \"      <th>Wishmaster (1997)</th>\\n\",\n              \"      <th>With Honors (1994)</th>\\n\",\n              \"      <th>Withnail and I (1987)</th>\\n\",\n              \"      <th>Witness (1985)</th>\\n\",\n              \"      <th>Wizard of Oz, The (1939)</th>\\n\",\n              \"      <th>Wolf (1994)</th>\\n\",\n              \"      <th>Woman in Question, The (1950)</th>\\n\",\n              \"      <th>Women, The (1939)</th>\\n\",\n              \"      <th>Wonderful, Horrible Life of Leni Riefenstahl, The (1993)</th>\\n\",\n              \"      <th>Wonderland (1997)</th>\\n\",\n              \"      <th>Wooden Man's Bride, The (Wu Kui) (1994)</th>\\n\",\n              \"      <th>World of Apu, The (Apur Sansar) (1959)</th>\\n\",\n              \"      <th>Wrong Trousers, The (1993)</th>\\n\",\n              \"      <th>Wyatt Earp (1994)</th>\\n\",\n              \"      <th>Yankee Zulu (1994)</th>\\n\",\n              \"      <th>Year of the Horse (1997)</th>\\n\",\n              \"      <th>You So Crazy (1994)</th>\\n\",\n              \"      <th>Young Frankenstein (1974)</th>\\n\",\n              \"      <th>Young Guns (1988)</th>\\n\",\n              \"      <th>Young Guns II (1990)</th>\\n\",\n              \"      <th>Young Poisoner's Handbook, The (1995)</th>\\n\",\n              \"      <th>Zeus and Roxanne (1997)</th>\\n\",\n              \"      <th>unknown</th>\\n\",\n              \"      <th>Á köldum klaka (Cold Fever) (1994)</th>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>1.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>1.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>1.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>1.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"<p>5 rows × 1664 columns</p>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"movie title  'Til There Was You (1997)  ...  Á köldum klaka (Cold Fever) (1994)\\n\",\n              \"user id                                 ...                                    \\n\",\n              \"1                                  0.0  ...                                 0.0\\n\",\n              \"2                                  0.0  ...                                 0.0\\n\",\n              \"3                                  0.0  ...                                 0.0\\n\",\n              \"4                                  0.0  ...                                 0.0\\n\",\n              \"5                                  0.0  ...                                 0.0\\n\",\n              \"\\n\",\n              \"[5 rows x 1664 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 138\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"NzGiLk_P6ZPU\",\n        \"outputId\": \"ce7e1849-a29d-456b-9eb7-a17190231787\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"# transform matrix to scipy sparse matrix\\n\",\n        \"user_to_movie_sparse_df = csr_matrix(user_to_movie_df.values)\\n\",\n        \"user_to_movie_sparse_df\"\n      ],\n      \"execution_count\": 139,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"<943x1664 sparse matrix of type '<class 'numpy.float64'>'\\n\",\n              \"\\twith 99693 stored elements in Compressed Sparse Row format>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 139\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_lmFFozScX9B\"\n      },\n      \"source\": [\n        \"**Fitting K-Nearest Neighbours model to the scipy sparse matrix:**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"T-C_KVvkglZZ\",\n        \"outputId\": \"fa672186-a2c4-478a-9e26-5a8d9eaa8334\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 67\n        }\n      },\n      \"source\": [\n        \"knn_model = NearestNeighbors(metric='cosine', algorithm='brute')\\n\",\n        \"knn_model.fit(user_to_movie_sparse_df)\"\n      ],\n      \"execution_count\": 140,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"NearestNeighbors(algorithm='brute', leaf_size=30, metric='cosine',\\n\",\n              \"                 metric_params=None, n_jobs=None, n_neighbors=5, p=2,\\n\",\n              \"                 radius=1.0)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 140\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"GznTZhlIcPCI\"\n      },\n      \"source\": [\n        \"## function to find top n similar users of the given input user \\n\",\n        \"def get_similar_users(user, n = 5):\\n\",\n        \"  ## input to this function is the user and number of top similar users you want.\\n\",\n        \"\\n\",\n        \"  knn_input = np.asarray([user_to_movie_df.values[user-1]])  #.reshape(1,-1)\\n\",\n        \"  # knn_input = user_to_movie_df.iloc[0,:].values.reshape(1,-1)\\n\",\n        \"  distances, indices = knn_model.kneighbors(knn_input, n_neighbors=n+1)\\n\",\n        \"  \\n\",\n        \"  print(\\\"Top\\\",n,\\\"users who are very much similar to the User-\\\",user, \\\"are: \\\")\\n\",\n        \"  print(\\\" \\\")\\n\",\n        \"  for i in range(1,len(distances[0])):\\n\",\n        \"    print(i,\\\". User:\\\", indices[0][i]+1, \\\"separated by distance of\\\",distances[0][i])\\n\",\n        \"  return indices.flatten()[1:] + 1, distances.flatten()[1:]\\n\"\n      ],\n      \"execution_count\": 141,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"UzD2cOe361JX\"\n      },\n      \"source\": [\n        \"**Specify User id and Number of similar users we want to consider here**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ZAc5xnl2mZp3\",\n        \"outputId\": \"9f9a1dd7-2877-4cdc-fd5f-e6282ac42a3e\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 319\n        }\n      },\n      \"source\": [\n        \"from pprint import pprint\\n\",\n        \"user_id = 778\\n\",\n        \"print(\\\" Few of movies seen by the User:\\\")\\n\",\n        \"pprint(list(refined_dataset[refined_dataset['user id'] == user_id]['movie title'])[:10])\\n\",\n        \"similar_user_list, distance_list = get_similar_users(user_id,5)\"\n      ],\n      \"execution_count\": 142,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \" Few of movies seen by the User:\\n\",\n            \"['Amityville Horror, The (1979)',\\n\",\n            \" 'Angels in the Outfield (1994)',\\n\",\n            \" 'Apocalypse Now (1979)',\\n\",\n            \" 'Apollo 13 (1995)',\\n\",\n            \" 'Austin Powers: International Man of Mystery (1997)',\\n\",\n            \" 'Babe (1995)',\\n\",\n            \" 'Back to the Future (1985)',\\n\",\n            \" 'Blues Brothers, The (1980)',\\n\",\n            \" 'Chasing Amy (1997)',\\n\",\n            \" 'Clerks (1994)']\\n\",\n            \"Top 5 users who are very much similar to the User- 778 are: \\n\",\n            \" \\n\",\n            \"1 . User: 124 separated by distance of 0.4586649429539592\\n\",\n            \"2 . User: 933 separated by distance of 0.5581959868865324\\n\",\n            \"3 . User: 56 separated by distance of 0.5858413112292744\\n\",\n            \"4 . User: 738 separated by distance of 0.5916272517988691\\n\",\n            \"5 . User: 653 separated by distance of 0.5991479757406326\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"LDtU_DkCqLl6\"\n      },\n      \"source\": [\n        \"**With the help of the KNN model built, we could get desired number of top similar users.**\\n\",\n        \"\\n\",\n        \"**Now we will have to pick the top movies to recommend.**\\n\",\n        \"\\n\",\n        \"**One way would be by taking the average of the existing ratings given by the similar users and picking the top 10 or 15 movies to recommend to our current user.**\\n\",\n        \"\\n\",\n        \"**But I feel recommendation would be more effective if we define weights to ratings by each similar user based on the thier distance from the input user. Defining these weights would give us the accurate recommendations by eliminating the chance of decision manipulation by the users who are relatively very far from the input user.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"3JNvsjkzhXj4\",\n        \"outputId\": \"d8f1e6b9-9d26-4415-8ad9-f5b4b5049aec\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"similar_user_list, distance_list\"\n      ],\n      \"execution_count\": 143,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(array([124, 933,  56, 738, 653]),\\n\",\n              \" array([0.45866494, 0.55819599, 0.58584131, 0.59162725, 0.59914798]))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 143\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"7de9PUuitY5p\",\n        \"outputId\": \"360455f1-412d-4b07-ed51-c704da2d788c\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"weightage_list = distance_list/np.sum(distance_list)\\n\",\n        \"weightage_list\"\n      ],\n      \"execution_count\": 144,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([0.16419139, 0.19982119, 0.20971757, 0.2117888 , 0.21448105])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 144\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"lCX18TkDtnz8\"\n      },\n      \"source\": [\n        \"Getting ratings of all movies by derived similar users\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"VEh6O0oAtv_F\",\n        \"outputId\": \"140cf5f4-a9fb-47a7-8365-6fab2d732462\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 101\n        }\n      },\n      \"source\": [\n        \"mov_rtngs_sim_users = user_to_movie_df.values[similar_user_list]\\n\",\n        \"mov_rtngs_sim_users\"\n      ],\n      \"execution_count\": 145,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[0., 0., 0., ..., 0., 0., 0.],\\n\",\n              \"       [0., 0., 2., ..., 0., 0., 0.],\\n\",\n              \"       [0., 0., 3., ..., 0., 0., 0.],\\n\",\n              \"       [0., 0., 0., ..., 0., 0., 0.],\\n\",\n              \"       [0., 0., 0., ..., 0., 0., 0.]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 145\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"nhty6LqMur17\",\n        \"outputId\": \"d49cf83a-3e2c-4092-c477-77f81b285735\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 202\n        }\n      },\n      \"source\": [\n        \"movies_list = user_to_movie_df.columns\\n\",\n        \"movies_list\"\n      ],\n      \"execution_count\": 146,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"Index([''Til There Was You (1997)', '1-900 (1994)', '101 Dalmatians (1996)',\\n\",\n              \"       '12 Angry Men (1957)', '187 (1997)', '2 Days in the Valley (1996)',\\n\",\n              \"       '20,000 Leagues Under the Sea (1954)', '2001: A Space Odyssey (1968)',\\n\",\n              \"       '3 Ninjas: High Noon At Mega Mountain (1998)', '39 Steps, The (1935)',\\n\",\n              \"       ...\\n\",\n              \"       'Yankee Zulu (1994)', 'Year of the Horse (1997)', 'You So Crazy (1994)',\\n\",\n              \"       'Young Frankenstein (1974)', 'Young Guns (1988)',\\n\",\n              \"       'Young Guns II (1990)', 'Young Poisoner's Handbook, The (1995)',\\n\",\n              \"       'Zeus and Roxanne (1997)', 'unknown',\\n\",\n              \"       'Á köldum klaka (Cold Fever) (1994)'],\\n\",\n              \"      dtype='object', name='movie title', length=1664)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 146\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"c_nwkKwhvQ7Y\",\n        \"outputId\": \"bed4129d-df39-4742-8906-b24469f36cbf\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 67\n        }\n      },\n      \"source\": [\n        \"print(\\\"Weightage list shape:\\\", len(weightage_list))\\n\",\n        \"print(\\\"mov_rtngs_sim_users shape:\\\", mov_rtngs_sim_users.shape)\\n\",\n        \"print(\\\"Number of movies:\\\", len(movies_list))\"\n      ],\n      \"execution_count\": 147,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Weightage list shape: 5\\n\",\n            \"mov_rtngs_sim_users shape: (5, 1664)\\n\",\n            \"Number of movies: 1664\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"oMgSULlTx71x\"\n      },\n      \"source\": [\n        \"**Broadcasting weightage matrix to similar user rating matrix. so that it gets compatible for matrix operations**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"0WF66O37x7WH\",\n        \"outputId\": \"8f6b8c87-d797-4485-8468-48b6802439d1\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"weightage_list = weightage_list[:,np.newaxis] + np.zeros(len(movies_list))\\n\",\n        \"weightage_list.shape\"\n      ],\n      \"execution_count\": 148,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(5, 1664)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 148\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"RI6iizTIx7SO\",\n        \"outputId\": \"e31a105c-d826-4928-ec93-15cf58e2cd42\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"new_rating_matrix = weightage_list*mov_rtngs_sim_users\\n\",\n        \"mean_rating_list = new_rating_matrix.sum(axis =0)\\n\",\n        \"mean_rating_list\"\n      ],\n      \"execution_count\": 149,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([0.        , 0.        , 1.02879509, ..., 0.        , 0.        ,\\n\",\n              \"       0.        ])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 149\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"jasA8xEWu3Sj\"\n      },\n      \"source\": [\n        \"from pprint import pprint\\n\",\n        \"def recommend_movies(n):\\n\",\n        \"  n = min(len(mean_rating_list),n)\\n\",\n        \"  # print(np.argsort(mean_rating_list)[::-1][:n])\\n\",\n        \"  pprint(list(movies_list[np.argsort(mean_rating_list)[::-1][:n]]))\\n\",\n        \"\\n\"\n      ],\n      \"execution_count\": 150,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"4ix_nK1I33WS\",\n        \"outputId\": \"64cfee5b-3f39-4616-81f3-d7a044706504\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 202\n        }\n      },\n      \"source\": [\n        \"print(\\\"Movies recommended based on similar users are: \\\")\\n\",\n        \"recommend_movies(10)\"\n      ],\n      \"execution_count\": 151,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Movies recommended based on similar users are: \\n\",\n            \"['Star Wars (1977)',\\n\",\n            \" 'Terminator, The (1984)',\\n\",\n            \" \\\"Schindler's List (1993)\\\",\\n\",\n            \" 'Fugitive, The (1993)',\\n\",\n            \" 'Forrest Gump (1994)',\\n\",\n            \" 'Princess Bride, The (1987)',\\n\",\n            \" 'Empire Strikes Back, The (1980)',\\n\",\n            \" 'Pulp Fiction (1994)',\\n\",\n            \" 'Die Hard (1988)',\\n\",\n            \" 'Monty Python and the Holy Grail (1974)']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"MZh3ID7NgwD7\"\n      },\n      \"source\": [\n        \"It had been observed that, this recommendation system built can be made more efficient as it has few drawbacks.\\n\",\n        \"\\n\",\n        \"**Drawbacks:**\\n\",\n        \"\\n\",\n        \"**1.** But this recommendation system has a drawback, it also **recommends movies which are already seen by the given input User.**\\n\",\n        \"\\n\",\n        \"**2.** And also there is a possibility of recommending the **movies which are not at all seen by any of the similar users.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"cMOC4pKzkKiQ\"\n      },\n      \"source\": [\n        \"**Above drawbacks are addressed and a new recommender system with modification is built**\\n\",\n        \"\\n\",\n        \"Below function is defined to remove the movies which are already seen the current user and not at all seen by any of the similar users.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"cC5fgG3-iXei\"\n      },\n      \"source\": [\n        \"\\n\",\n        \"def filtered_movie_recommendations(n):\\n\",\n        \"  \\n\",\n        \"  first_zero_index = np.where(mean_rating_list == 0)[0][-1]\\n\",\n        \"  sortd_index = np.argsort(mean_rating_list)[::-1]\\n\",\n        \"  sortd_index = sortd_index[:list(sortd_index).index(first_zero_index)]\\n\",\n        \"  n = min(len(sortd_index),n)\\n\",\n        \"  movies_watched = list(refined_dataset[refined_dataset['user id'] == user_id]['movie title'])\\n\",\n        \"  filtered_movie_list = list(movies_list[sortd_index])\\n\",\n        \"  count = 0\\n\",\n        \"  final_movie_list = []\\n\",\n        \"  for i in filtered_movie_list:\\n\",\n        \"    if i not in movies_watched:\\n\",\n        \"      count+=1\\n\",\n        \"      final_movie_list.append(i)\\n\",\n        \"    if count == n:\\n\",\n        \"      break\\n\",\n        \"  if count == 0:\\n\",\n        \"    print(\\\"There are no movies left which are not seen by the input users and seen by similar users. May be increasing the number of similar users who are to be considered may give a chance of suggesting an unseen good movie.\\\")\\n\",\n        \"  else:\\n\",\n        \"    pprint(final_movie_list)\\n\"\n      ],\n      \"execution_count\": 152,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"hhk_3V2QyeNz\",\n        \"outputId\": \"d47981dd-3691-4255-a783-7b8fb2ce5d03\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 185\n        }\n      },\n      \"source\": [\n        \"filtered_movie_recommendations(10)\"\n      ],\n      \"execution_count\": 153,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"['Star Wars (1977)',\\n\",\n            \" \\\"Schindler's List (1993)\\\",\\n\",\n            \" 'Princess Bride, The (1987)',\\n\",\n            \" 'Empire Strikes Back, The (1980)',\\n\",\n            \" 'Return of the Jedi (1983)',\\n\",\n            \" 'Fargo (1996)',\\n\",\n            \" 'Dances with Wolves (1990)',\\n\",\n            \" 'Toy Story (1995)',\\n\",\n            \" 'Braveheart (1995)',\\n\",\n            \" 'Star Trek: First Contact (1996)']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"MI7T25n6ZOEf\"\n      },\n      \"source\": [\n        \"Coding up all of the above individual cells into a function.\\n\",\n        \"\\n\",\n        \"Giving Input as **User id, Number of similar Users to be considered, Number of top movie we want to recommend**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"GQ4UfrTM33hF\"\n      },\n      \"source\": [\n        \"from pprint import pprint\\n\",\n        \"\\n\",\n        \"def recommender_system(user_id, n_similar_users, n_movies): #, user_to_movie_df, knn_model):\\n\",\n        \"  \\n\",\n        \"  print(\\\"Movie seen by the User:\\\")\\n\",\n        \"  pprint(list(refined_dataset[refined_dataset['user id'] == user_id]['movie title']))\\n\",\n        \"  print(\\\"\\\")\\n\",\n        \"\\n\",\n        \"  # def get_similar_users(user, user_to_movie_df, knn_model, n = 5):\\n\",\n        \"  def get_similar_users(user, n = 5):\\n\",\n        \"    \\n\",\n        \"    knn_input = np.asarray([user_to_movie_df.values[user-1]])\\n\",\n        \"    \\n\",\n        \"    distances, indices = knn_model.kneighbors(knn_input, n_neighbors=n+1)\\n\",\n        \"    \\n\",\n        \"    print(\\\"Top\\\",n,\\\"users who are very much similar to the User-\\\",user, \\\"are: \\\")\\n\",\n        \"    print(\\\" \\\")\\n\",\n        \"\\n\",\n        \"    for i in range(1,len(distances[0])):\\n\",\n        \"      print(i,\\\". User:\\\", indices[0][i]+1, \\\"separated by distance of\\\",distances[0][i])\\n\",\n        \"    print(\\\"\\\")\\n\",\n        \"    return indices.flatten()[1:] + 1, distances.flatten()[1:]\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"  def filtered_movie_recommendations(n = 10):\\n\",\n        \"  \\n\",\n        \"    first_zero_index = np.where(mean_rating_list == 0)[0][-1]\\n\",\n        \"    sortd_index = np.argsort(mean_rating_list)[::-1]\\n\",\n        \"    sortd_index = sortd_index[:list(sortd_index).index(first_zero_index)]\\n\",\n        \"    n = min(len(sortd_index),n)\\n\",\n        \"    movies_watched = list(refined_dataset[refined_dataset['user id'] == user_id]['movie title'])\\n\",\n        \"    filtered_movie_list = list(movies_list[sortd_index])\\n\",\n        \"    count = 0\\n\",\n        \"    final_movie_list = []\\n\",\n        \"    for i in filtered_movie_list:\\n\",\n        \"      if i not in movies_watched:\\n\",\n        \"        count+=1\\n\",\n        \"        final_movie_list.append(i)\\n\",\n        \"      if count == n:\\n\",\n        \"        break\\n\",\n        \"    if count == 0:\\n\",\n        \"      print(\\\"There are no movies left which are not seen by the input users and seen by similar users. May be increasing the number of similar users who are to be considered may give a chance of suggesting an unseen good movie.\\\")\\n\",\n        \"    else:\\n\",\n        \"      pprint(final_movie_list)\\n\",\n        \"\\n\",\n        \"  similar_user_list, distance_list = get_similar_users(user_id,n_similar_users)\\n\",\n        \"  weightage_list = distance_list/np.sum(distance_list)\\n\",\n        \"  mov_rtngs_sim_users = user_to_movie_df.values[similar_user_list]\\n\",\n        \"  movies_list = user_to_movie_df.columns\\n\",\n        \"  weightage_list = weightage_list[:,np.newaxis] + np.zeros(len(movies_list))\\n\",\n        \"  new_rating_matrix = weightage_list*mov_rtngs_sim_users\\n\",\n        \"  mean_rating_list = new_rating_matrix.sum(axis =0)\\n\",\n        \"  print(\\\"\\\")\\n\",\n        \"  print(\\\"Movies recommended based on similar users are: \\\")\\n\",\n        \"  print(\\\"\\\")\\n\",\n        \"  filtered_movie_recommendations(n_movies)\"\n      ],\n      \"execution_count\": 233,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ZhQI_qBL33dj\",\n        \"outputId\": \"fae03002-e4c8-46d9-b4ef-e5f0bcdb1781\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 1000\n        }\n      },\n      \"source\": [\n        \"print(\\\"Enter user id\\\")\\n\",\n        \"user_id= int(input())\\n\",\n        \"print(\\\"number of similar users to be considered\\\")\\n\",\n        \"sim_users = int(input())\\n\",\n        \"print(\\\"Enter number of movies to be recommended:\\\")\\n\",\n        \"n_movies = int(input())\\n\",\n        \"recommender_system(user_id,sim_users,n_movies)\\n\",\n        \"# recommender_system(300, 15,15)\"\n      ],\n      \"execution_count\": 234,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Enter user id\\n\",\n            \"307\\n\",\n            \"number of similar users to be considered\\n\",\n            \"15\\n\",\n            \"Enter number of movies to be recommended:\\n\",\n            \"15\\n\",\n            \"Movie seen by the User:\\n\",\n            \"['12 Angry Men (1957)',\\n\",\n            \" '2001: A Space Odyssey (1968)',\\n\",\n            \" 'Abyss, The (1989)',\\n\",\n            \" 'Alien (1979)',\\n\",\n            \" 'Apollo 13 (1995)',\\n\",\n            \" 'Back to the Future (1985)',\\n\",\n            \" 'Barbarella (1968)',\\n\",\n            \" 'Batman (1989)',\\n\",\n            \" 'Beauty and the Beast (1991)',\\n\",\n            \" 'Blade Runner (1982)',\\n\",\n            \" 'Blues Brothers, The (1980)',\\n\",\n            \" 'Boot, Das (1981)',\\n\",\n            \" 'Brady Bunch Movie, The (1995)',\\n\",\n            \" 'Braveheart (1995)',\\n\",\n            \" 'Brazil (1985)',\\n\",\n            \" 'Casablanca (1942)',\\n\",\n            \" 'Close Shave, A (1995)',\\n\",\n            \" 'Contact (1997)',\\n\",\n            \" 'Crying Game, The (1992)',\\n\",\n            \" 'Dead Poets Society (1989)',\\n\",\n            \" 'Dial M for Murder (1954)',\\n\",\n            \" 'Dr. Strangelove or: How I Learned to Stop Worrying and Love the Bomb (1963)',\\n\",\n            \" 'Dragonheart (1996)',\\n\",\n            \" 'E.T. the Extra-Terrestrial (1982)',\\n\",\n            \" 'Empire Strikes Back, The (1980)',\\n\",\n            \" 'English Patient, The (1996)',\\n\",\n            \" 'Englishman Who Went Up a Hill, But Came Down a Mountain, The (1995)',\\n\",\n            \" 'Escape from L.A. (1996)',\\n\",\n            \" 'Fargo (1996)',\\n\",\n            \" 'Fast, Cheap & Out of Control (1997)',\\n\",\n            \" 'Field of Dreams (1989)',\\n\",\n            \" 'Fish Called Wanda, A (1988)',\\n\",\n            \" 'Four Weddings and a Funeral (1994)',\\n\",\n            \" 'Fried Green Tomatoes (1991)',\\n\",\n            \" 'Full Monty, The (1997)',\\n\",\n            \" 'Gandhi (1982)',\\n\",\n            \" 'Ghost (1990)',\\n\",\n            \" 'Graduate, The (1967)',\\n\",\n            \" 'Grand Day Out, A (1992)',\\n\",\n            \" 'Grumpier Old Men (1995)',\\n\",\n            \" 'Harold and Maude (1971)',\\n\",\n            \" 'Heathers (1989)',\\n\",\n            \" 'Heavy Metal (1981)',\\n\",\n            \" 'Highlander (1986)',\\n\",\n            \" 'Home Alone (1990)',\\n\",\n            \" 'How to Make an American Quilt (1995)',\\n\",\n            \" 'Hudsucker Proxy, The (1994)',\\n\",\n            \" 'Hunt for Red October, The (1990)',\\n\",\n            \" 'Independence Day (ID4) (1996)',\\n\",\n            \" 'Indiana Jones and the Last Crusade (1989)',\\n\",\n            \" 'Jurassic Park (1993)',\\n\",\n            \" 'Koyaanisqatsi (1983)',\\n\",\n            \" 'Lawnmower Man, The (1992)',\\n\",\n            \" 'Lawrence of Arabia (1962)',\\n\",\n            \" 'Like Water For Chocolate (Como agua para chocolate) (1992)',\\n\",\n            \" 'Lion King, The (1994)',\\n\",\n            \" 'Mary Poppins (1964)',\\n\",\n            \" 'Mask, The (1994)',\\n\",\n            \" \\\"McHale's Navy (1997)\\\",\\n\",\n            \" 'Men in Black (1997)',\\n\",\n            \" \\\"Microcosmos: Le peuple de l'herbe (1996)\\\",\\n\",\n            \" 'Monty Python and the Holy Grail (1974)',\\n\",\n            \" \\\"Monty Python's Life of Brian (1979)\\\",\\n\",\n            \" 'Mrs. Doubtfire (1993)',\\n\",\n            \" 'Much Ado About Nothing (1993)',\\n\",\n            \" 'Muppet Treasure Island (1996)',\\n\",\n            \" 'My Left Foot (1989)',\\n\",\n            \" 'My Life as a Dog (Mitt liv som hund) (1985)',\\n\",\n            \" 'Mystery Science Theater 3000: The Movie (1996)',\\n\",\n            \" 'Nightmare Before Christmas, The (1993)',\\n\",\n            \" 'Pink Floyd - The Wall (1982)',\\n\",\n            \" 'Pretty Woman (1990)',\\n\",\n            \" 'Princess Bride, The (1987)',\\n\",\n            \" 'Psycho (1960)',\\n\",\n            \" 'Pulp Fiction (1994)',\\n\",\n            \" 'Raiders of the Lost Ark (1981)',\\n\",\n            \" 'Real Genius (1985)',\\n\",\n            \" 'Return of the Jedi (1983)',\\n\",\n            \" 'Return of the Pink Panther, The (1974)',\\n\",\n            \" 'Right Stuff, The (1983)',\\n\",\n            \" 'Road to Wellville, The (1994)',\\n\",\n            \" 'Robin Hood: Men in Tights (1993)',\\n\",\n            \" 'Rumble in the Bronx (1995)',\\n\",\n            \" 'Secret of Roan Inish, The (1994)',\\n\",\n            \" 'Sex, Lies, and Videotape (1989)',\\n\",\n            \" 'Shadowlands (1993)',\\n\",\n            \" 'Shawshank Redemption, The (1994)',\\n\",\n            \" 'Shining, The (1980)',\\n\",\n            \" 'Sneakers (1992)',\\n\",\n            \" 'Snow White and the Seven Dwarfs (1937)',\\n\",\n            \" 'Sound of Music, The (1965)',\\n\",\n            \" 'Stand by Me (1986)',\\n\",\n            \" 'Star Trek III: The Search for Spock (1984)',\\n\",\n            \" 'Star Trek IV: The Voyage Home (1986)',\\n\",\n            \" 'Star Trek V: The Final Frontier (1989)',\\n\",\n            \" 'Star Trek VI: The Undiscovered Country (1991)',\\n\",\n            \" 'Star Trek: First Contact (1996)',\\n\",\n            \" 'Star Trek: Generations (1994)',\\n\",\n            \" 'Star Trek: The Motion Picture (1979)',\\n\",\n            \" 'Star Trek: The Wrath of Khan (1982)',\\n\",\n            \" 'Star Wars (1977)',\\n\",\n            \" 'Stargate (1994)',\\n\",\n            \" 'Tank Girl (1995)',\\n\",\n            \" 'Terminator, The (1984)',\\n\",\n            \" 'This Is Spinal Tap (1984)',\\n\",\n            \" 'Titanic (1997)',\\n\",\n            \" 'To Kill a Mockingbird (1962)',\\n\",\n            \" 'Top Gun (1986)',\\n\",\n            \" 'Toy Story (1995)',\\n\",\n            \" 'Wallace & Gromit: The Best of Aardman Animation (1996)',\\n\",\n            \" 'Wizard of Oz, The (1939)',\\n\",\n            \" 'Wrong Trousers, The (1993)']\\n\",\n            \"\\n\",\n            \"Top 15 users who are very much similar to the User- 307 are: \\n\",\n            \" \\n\",\n            \"1 . User: 70 separated by distance of 0.4560883724650484\\n\",\n            \"2 . User: 738 separated by distance of 0.4846662001127756\\n\",\n            \"3 . User: 922 separated by distance of 0.503221313979523\\n\",\n            \"4 . User: 407 separated by distance of 0.5038250337403114\\n\",\n            \"5 . User: 514 separated by distance of 0.5060750098353226\\n\",\n            \"6 . User: 44 separated by distance of 0.5160506271876224\\n\",\n            \"7 . User: 660 separated by distance of 0.5165826487301209\\n\",\n            \"8 . User: 5 separated by distance of 0.5211146313938015\\n\",\n            \"9 . User: 457 separated by distance of 0.5309167131718452\\n\",\n            \"10 . User: 23 separated by distance of 0.5316197783536492\\n\",\n            \"11 . User: 843 separated by distance of 0.5324703658288387\\n\",\n            \"12 . User: 64 separated by distance of 0.53318921205275\\n\",\n            \"13 . User: 198 separated by distance of 0.535682894616484\\n\",\n            \"14 . User: 815 separated by distance of 0.5416036160331636\\n\",\n            \"15 . User: 95 separated by distance of 0.5468066886836396\\n\",\n            \"\\n\",\n            \"\\n\",\n            \"Movies recommended based on similar users are: \\n\",\n            \"\\n\",\n            \"[\\\"Schindler's List (1993)\\\",\\n\",\n            \" 'Liar Liar (1997)',\\n\",\n            \" 'When Harry Met Sally... (1989)',\\n\",\n            \" 'Leaving Las Vegas (1995)',\\n\",\n            \" 'Silence of the Lambs, The (1991)',\\n\",\n            \" 'Dead Man Walking (1995)',\\n\",\n            \" 'Trainspotting (1996)',\\n\",\n            \" 'Forrest Gump (1994)',\\n\",\n            \" 'Scream (1996)',\\n\",\n            \" 'Twelve Monkeys (1995)',\\n\",\n            \" 'Jerry Maguire (1996)',\\n\",\n            \" 'Raising Arizona (1987)',\\n\",\n            \" 'Godfather, The (1972)',\\n\",\n            \" 'Rock, The (1996)',\\n\",\n            \" 'Fugitive, The (1993)']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"9i5m2wO4iQUW\"\n      },\n      \"source\": [\n        \"## Movie Recommendation using KNN with Input as **Movie Name** and Number of movies you want to get recommended:\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"XaQLSI1ni_qS\"\n      },\n      \"source\": [\n        \"2. Reshaping model in such a way that each movie has n-dimensional rating space where n is total number of users who could rate.\\n\",\n        \"\\n\",\n        \" We will train the KNN model inorder to find the closely matching similar movies to the movie we give as input and we recommend the top movies which would more closely align to the movie we have given.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"pKgkHLCN33ZT\",\n        \"outputId\": \"9b3ac3a7-2436-47ef-f6a6-fb39fc62c515\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 391\n        }\n      },\n      \"source\": [\n        \"# pivot and create movie-user matrix\\n\",\n        \"movie_to_user_df = refined_dataset.pivot(\\n\",\n        \"     index='movie title',\\n\",\n        \"   columns='user id',\\n\",\n        \"      values='rating').fillna(0)\\n\",\n        \"\\n\",\n        \"movie_to_user_df.head()\"\n      ],\n      \"execution_count\": 157,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <th>10</th>\\n\",\n              \"      <th>11</th>\\n\",\n              \"      <th>12</th>\\n\",\n              \"      <th>13</th>\\n\",\n              \"      <th>14</th>\\n\",\n              \"      <th>15</th>\\n\",\n              \"      <th>16</th>\\n\",\n              \"      <th>17</th>\\n\",\n              \"      <th>18</th>\\n\",\n              \"      <th>19</th>\\n\",\n              \"      <th>20</th>\\n\",\n              \"      <th>21</th>\\n\",\n              \"      <th>22</th>\\n\",\n              \"      <th>23</th>\\n\",\n              \"      <th>24</th>\\n\",\n              \"      <th>25</th>\\n\",\n              \"      <th>26</th>\\n\",\n              \"      <th>27</th>\\n\",\n              \"      <th>28</th>\\n\",\n              \"      <th>29</th>\\n\",\n              \"      <th>30</th>\\n\",\n              \"      <th>31</th>\\n\",\n              \"      <th>32</th>\\n\",\n              \"      <th>33</th>\\n\",\n              \"      <th>34</th>\\n\",\n              \"      <th>35</th>\\n\",\n              \"      <th>36</th>\\n\",\n              \"      <th>37</th>\\n\",\n              \"      <th>38</th>\\n\",\n              \"      <th>39</th>\\n\",\n              \"      <th>40</th>\\n\",\n              \"      <th>...</th>\\n\",\n              \"      <th>904</th>\\n\",\n              \"      <th>905</th>\\n\",\n              \"      <th>906</th>\\n\",\n              \"      <th>907</th>\\n\",\n              \"      <th>908</th>\\n\",\n              \"      <th>909</th>\\n\",\n              \"      <th>910</th>\\n\",\n              \"      <th>911</th>\\n\",\n              \"      <th>912</th>\\n\",\n              \"      <th>913</th>\\n\",\n              \"      <th>914</th>\\n\",\n              \"      <th>915</th>\\n\",\n              \"      <th>916</th>\\n\",\n              \"      <th>917</th>\\n\",\n              \"      <th>918</th>\\n\",\n              \"      <th>919</th>\\n\",\n              \"      <th>920</th>\\n\",\n              \"      <th>921</th>\\n\",\n              \"      <th>922</th>\\n\",\n              \"      <th>923</th>\\n\",\n              \"      <th>924</th>\\n\",\n              \"      <th>925</th>\\n\",\n              \"      <th>926</th>\\n\",\n              \"      <th>927</th>\\n\",\n              \"      <th>928</th>\\n\",\n              \"      <th>929</th>\\n\",\n              \"      <th>930</th>\\n\",\n              \"      <th>931</th>\\n\",\n              \"      <th>932</th>\\n\",\n              \"      <th>933</th>\\n\",\n              \"      <th>934</th>\\n\",\n              \"      <th>935</th>\\n\",\n              \"      <th>936</th>\\n\",\n              \"      <th>937</th>\\n\",\n              \"      <th>938</th>\\n\",\n              \"      <th>939</th>\\n\",\n              \"      <th>940</th>\\n\",\n              \"      <th>941</th>\\n\",\n              \"      <th>942</th>\\n\",\n              \"      <th>943</th>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"      <th></th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>'Til There Was You (1997)</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1-900 (1994)</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>101 Dalmatians (1996)</th>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>12 Angry Men (1957)</th>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>187 (1997)</th>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"      <td>0.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"<p>5 rows × 943 columns</p>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"user id                    1    2    3    4    5    ...  939  940  941  942  943\\n\",\n              \"movie title                                         ...                         \\n\",\n              \"'Til There Was You (1997)  0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0  0.0  0.0  0.0\\n\",\n              \"1-900 (1994)               0.0  0.0  0.0  0.0  0.0  ...  0.0  0.0  0.0  0.0  0.0\\n\",\n              \"101 Dalmatians (1996)      2.0  0.0  0.0  0.0  2.0  ...  0.0  0.0  0.0  0.0  0.0\\n\",\n              \"12 Angry Men (1957)        5.0  0.0  0.0  0.0  0.0  ...  0.0  0.0  0.0  0.0  0.0\\n\",\n              \"187 (1997)                 0.0  0.0  2.0  0.0  0.0  ...  0.0  0.0  0.0  0.0  0.0\\n\",\n              \"\\n\",\n              \"[5 rows x 943 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 157\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Y_ZM14b_33S1\",\n        \"outputId\": \"d915467f-0982-453d-d90c-bb6f52f163be\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"# transform matrix to scipy sparse matrix\\n\",\n        \"movie_to_user_sparse_df = csr_matrix(movie_to_user_df.values)\\n\",\n        \"movie_to_user_sparse_df\"\n      ],\n      \"execution_count\": 158,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"<1664x943 sparse matrix of type '<class 'numpy.float64'>'\\n\",\n              \"\\twith 99693 stored elements in Compressed Sparse Row format>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 158\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"WrE3OE3xAstv\"\n      },\n      \"source\": [\n        \"Extracting movie names into a list:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"C3fjBBBs9tNw\",\n        \"outputId\": \"b2b9a713-d213-483f-84ce-9af538b806de\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 185\n        }\n      },\n      \"source\": [\n        \"movies_list = list(movie_to_user_df.index)\\n\",\n        \"movies_list[:10]\"\n      ],\n      \"execution_count\": 184,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"[\\\"'Til There Was You (1997)\\\",\\n\",\n              \" '1-900 (1994)',\\n\",\n              \" '101 Dalmatians (1996)',\\n\",\n              \" '12 Angry Men (1957)',\\n\",\n              \" '187 (1997)',\\n\",\n              \" '2 Days in the Valley (1996)',\\n\",\n              \" '20,000 Leagues Under the Sea (1954)',\\n\",\n              \" '2001: A Space Odyssey (1968)',\\n\",\n              \" '3 Ninjas: High Noon At Mega Mountain (1998)',\\n\",\n              \" '39 Steps, The (1935)']\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 184\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"-t97ADCYAxXy\"\n      },\n      \"source\": [\n        \"Creating a dictionary with movie name as key and its index from the list as value:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"5ewuTcPCAdw2\",\n        \"outputId\": \"b6d31f07-b3e6-4dcb-9e7b-560d48239246\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 54\n        }\n      },\n      \"source\": [\n        \"movie_dict = {movie : index for index, movie in enumerate(movies_list)}\\n\",\n        \"print(movie_dict)\"\n      ],\n      \"execution_count\": 186,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"{\\\"'Til There Was You (1997)\\\": 0, '1-900 (1994)': 1, '101 Dalmatians (1996)': 2, '12 Angry Men (1957)': 3, '187 (1997)': 4, '2 Days in the Valley (1996)': 5, '20,000 Leagues Under the Sea (1954)': 6, '2001: A Space Odyssey (1968)': 7, '3 Ninjas: High Noon At Mega Mountain (1998)': 8, '39 Steps, The (1935)': 9, '8 1/2 (1963)': 10, '8 Heads in a Duffel Bag (1997)': 11, '8 Seconds (1994)': 12, 'A Chef in Love (1996)': 13, 'Above the Rim (1994)': 14, 'Absolute Power (1997)': 15, 'Abyss, The (1989)': 16, 'Ace Ventura: Pet Detective (1994)': 17,.............., 'You So Crazy (1994)': 1656, 'Young Frankenstein (1974)': 1657, 'Young Guns (1988)': 1658, 'Young Guns II (1990)': 1659, \\\"Young Poisoner's Handbook, The (1995)\\\": 1660, 'Zeus and Roxanne (1997)': 1661, 'unknown': 1662, 'Á köldum klaka (Cold Fever) (1994)': 1663}\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"d3o8f5RPLqkY\"\n      },\n      \"source\": [\n        \"case_insensitive_movies_list = [i.lower() for i in movies_list]\"\n      ],\n      \"execution_count\": 211,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"TzI5h6UapJLS\"\n      },\n      \"source\": [\n        \"Fitting a KNN model:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"HH5XdKjBpIsQ\",\n        \"outputId\": \"937c7c7b-adea-4472-9ea9-d27e09688caf\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 67\n        }\n      },\n      \"source\": [\n        \"knn_movie_model = NearestNeighbors(metric='cosine', algorithm='brute')\\n\",\n        \"knn_movie_model.fit(movie_to_user_sparse_df)\\n\"\n      ],\n      \"execution_count\": 159,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"NearestNeighbors(algorithm='brute', leaf_size=30, metric='cosine',\\n\",\n              \"                 metric_params=None, n_jobs=None, n_neighbors=5, p=2,\\n\",\n              \"                 radius=1.0)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 159\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"yE70fQ9bqGiH\"\n      },\n      \"source\": [\n        \"## function to find top n similar users of the given input user \\n\",\n        \"def get_similar_movies(movie, n = 10):\\n\",\n        \"  ## input to this function is the movie and number of top similar movies you want.\\n\",\n        \"  index = movie_dict[movie]\\n\",\n        \"  knn_input = np.asarray([movie_to_user_df.values[index]])\\n\",\n        \"  n = min(len(movies_list)-1,n)\\n\",\n        \"  distances, indices = knn_movie_model.kneighbors(knn_input, n_neighbors=n+1)\\n\",\n        \"  \\n\",\n        \"  print(\\\"Top\\\",n,\\\"movies which are very much similar to the Movie-\\\",movie, \\\"are: \\\")\\n\",\n        \"  print(\\\" \\\")\\n\",\n        \"  for i in range(1,len(distances[0])):\\n\",\n        \"    print(movies_list[indices[0][i]])\\n\",\n        \"  \\n\"\n      ],\n      \"execution_count\": 198,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"2swG-7i8VcDh\"\n      },\n      \"source\": [\n        \"Testing the recommender system with basic input with the movie names\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"KTElQKhe33Rg\",\n        \"outputId\": \"44bc712a-096d-4ca2-d099-035cc2c5c7fc\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 302\n        }\n      },\n      \"source\": [\n        \"from pprint import pprint\\n\",\n        \"movie_name = '101 Dalmatians (1996)'\\n\",\n        \"\\n\",\n        \"get_similar_movies(movie_name,15)\"\n      ],\n      \"execution_count\": 199,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Top 15 movies which are very much similar to the Movie- 101 Dalmatians (1996) are: \\n\",\n            \" \\n\",\n            \"Jack (1996)\\n\",\n            \"Twister (1996)\\n\",\n            \"Willy Wonka and the Chocolate Factory (1971)\\n\",\n            \"Independence Day (ID4) (1996)\\n\",\n            \"Toy Story (1995)\\n\",\n            \"Father of the Bride Part II (1995)\\n\",\n            \"Hunchback of Notre Dame, The (1996)\\n\",\n            \"Lion King, The (1994)\\n\",\n            \"Mrs. Doubtfire (1993)\\n\",\n            \"Jungle Book, The (1994)\\n\",\n            \"Grumpier Old Men (1995)\\n\",\n            \"Mission: Impossible (1996)\\n\",\n            \"Mr. Holland's Opus (1995)\\n\",\n            \"Homeward Bound II: Lost in San Francisco (1996)\\n\",\n            \"Dragonheart (1996)\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"LIGky82kuQxF\"\n      },\n      \"source\": [\n        \"**Dynamically suggesting** movie name from the existing movie corpus we have, based on the user input using try and except architecture.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"eJus19K5VpkG\"\n      },\n      \"source\": [\n        \"Defining a function which outputs movie names as suggestion when the user mis spells the movie name. **User might have intended to type any of these movie names.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"AXKHWqLVI1w5\"\n      },\n      \"source\": [\n        \"# function which takes input and returns suggestions for the user\\n\",\n        \"\\n\",\n        \"def get_possible_movies(movie):\\n\",\n        \"\\n\",\n        \"    temp = ''\\n\",\n        \"    possible_movies = case_insensitive_movies_list.copy()\\n\",\n        \"    for i in movie :\\n\",\n        \"      out = []\\n\",\n        \"      temp += i\\n\",\n        \"      for j in possible_movies:\\n\",\n        \"        if temp in j:\\n\",\n        \"          out.append(j)\\n\",\n        \"      if len(out) == 0:\\n\",\n        \"          return possible_movies\\n\",\n        \"      out.sort()\\n\",\n        \"      possible_movies = out.copy()\\n\",\n        \"\\n\",\n        \"    return possible_movies\"\n      ],\n      \"execution_count\": 220,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"UM1yfFMNW-T7\"\n      },\n      \"source\": [\n        \"This function provides user with **movie name suggestions if movie name is mis-spelled** or **Recommends similar movies to the input movie** if the movie name is valid.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"TW1wNb-tuOWL\"\n      },\n      \"source\": [\n        \"class invalid(Exception):\\n\",\n        \"    pass\\n\",\n        \"\\n\",\n        \"def spell_correction():\\n\",\n        \"    \\n\",\n        \"    try:\\n\",\n        \"\\n\",\n        \"      movie_name = input(\\\"Enter the Movie name: \\\")\\n\",\n        \"      movie_name_lower = movie_name.lower()\\n\",\n        \"      if movie_name_lower not in case_insensitive_movies_list :\\n\",\n        \"        raise invalid\\n\",\n        \"      else :\\n\",\n        \"        # movies_list[case_insensitive_country_names.index(movie_name_lower)]\\n\",\n        \"        num_recom = int(input(\\\"Enter Number of movie recommendations needed: \\\"))\\n\",\n        \"        get_similar_movies(movies_list[case_insensitive_movies_list.index(movie_name_lower)],num_recom)\\n\",\n        \"\\n\",\n        \"    except invalid:\\n\",\n        \"\\n\",\n        \"      possible_movies = get_possible_movies(movie_name_lower)\\n\",\n        \"\\n\",\n        \"      if len(possible_movies) == len(movies_list) :\\n\",\n        \"        print(\\\"Movie name entered is does not exist in the list \\\")\\n\",\n        \"      else :\\n\",\n        \"        indices = [case_insensitive_movies_list.index(i) for i in possible_movies]\\n\",\n        \"        print(\\\"Entered Movie name is not matching with any movie from the dataset . Please check the below suggestions :\\\\n\\\",[movies_list[i] for i in indices])\\n\",\n        \"        spell_correction()\\n\"\n      ],\n      \"execution_count\": 223,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"0_J8X0l_33PE\",\n        \"outputId\": \"0d2f0aaa-fa93-4fd3-a249-8815e5b089b1\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 406\n        }\n      },\n      \"source\": [\n        \"spell_correction()\"\n      ],\n      \"execution_count\": 236,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Enter the Movie name: back\\n\",\n            \"Entered Movie name is not matching with any movie from the dataset . Please check the below suggestions :\\n\",\n            \" ['Back to the Future (1985)', 'Backbeat (1993)', 'Best of the Best 3: No Turning Back (1995)', 'Empire Strikes Back, The (1980)', 'Hunchback of Notre Dame, The (1996)', 'Switchback (1997)']\\n\",\n            \"Enter the Movie name: Empire Strikes Back, The (1980)\\n\",\n            \"Enter Number of movie recommendations needed: 15\\n\",\n            \"Top 15 movies which are very much similar to the Movie- Empire Strikes Back, The (1980) are: \\n\",\n            \" \\n\",\n            \"Raiders of the Lost Ark (1981)\\n\",\n            \"Indiana Jones and the Last Crusade (1989)\\n\",\n            \"Back to the Future (1985)\\n\",\n            \"Star Wars (1977)\\n\",\n            \"Terminator, The (1984)\\n\",\n            \"Return of the Jedi (1983)\\n\",\n            \"Terminator 2: Judgment Day (1991)\\n\",\n            \"Princess Bride, The (1987)\\n\",\n            \"Jurassic Park (1993)\\n\",\n            \"Fugitive, The (1993)\\n\",\n            \"Silence of the Lambs, The (1991)\\n\",\n            \"E.T. the Extra-Terrestrial (1982)\\n\",\n            \"Star Trek: The Wrath of Khan (1982)\\n\",\n            \"Alien (1979)\\n\",\n            \"Blade Runner (1982)\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"nRarT70-aRTg\"\n      },\n      \"source\": [\n        \"Observation on above built KNN Recommender System:\\n\",\n        \"\\n\",\n        \"An interesting observation would be that the above KNN model for movies recommends movies that are produced in very similar years of the input movie. However, the cosine distance of all those recommendations are observed to be actually quite small. This might be because there are too many zero values in our movie-user matrix. With too many zero values in our data, the data sparsity becomes a real issue for KNN model and the distance in KNN model starts to fall apart. So I'd like to dig deeper and look closer inside our data.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"fi1AOjkPaWAp\"\n      },\n      \"source\": [\n        \"\\n\",\n        \"Let's now look at how sparse the movie-user matrix is by calculating percentage of zero values in the data.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"MK0JWPnQ33My\",\n        \"outputId\": \"484bff9d-cc8f-4b7a-a227-a33967d12bbe\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"# calcuate total number of entries in the movie-user matrix\\n\",\n        \"num_entries = movie_to_user_df.shape[0] * movie_to_user_df.shape[1]\\n\",\n        \"# calculate total number of entries with zero values\\n\",\n        \"num_zeros = (movie_to_user_df==0).sum(axis=1).sum()\\n\",\n        \"# calculate ratio of number of zeros to number of entries\\n\",\n        \"ratio_zeros = num_zeros / num_entries\\n\",\n        \"print('There is about {:.2%} of ratings in our data is missing'.format(ratio_zeros))\"\n      ],\n      \"execution_count\": 228,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"There is about 93.65% of ratings in our data is missing\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_xe7IF4LiWLv\"\n      },\n      \"source\": [\n        \"This result confirms the above hypothesis. The vast majority of entries in our data is zero. This explains why the distance between similar items or opposite items are both pretty large.\\n\",\n        \"\\n\",\n        \"So, lets try out deep learning models and Natural Language Processing techniques in the next segment of this project.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"cpybAavhiz41\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"jVJu1rsTx0F3\"\n      },\n      \"source\": [\n        \"# Rough Work\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ZZXpqM8lhzoe\",\n        \"outputId\": \"c5310c5c-4d59-4d7a-ceb0-e7ac5ca19709\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"d = np.asarray([2,4,4,8,2])\\n\",\n        \"d = d/np.sum(d)\\n\",\n        \"d\"\n      ],\n      \"execution_count\": 119,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([0.1, 0.2, 0.2, 0.4, 0.1])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 119\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ayT0tFP1iSvt\",\n        \"outputId\": \"a5f9bb70-506f-4e88-e0e2-02debadc1ac1\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 101\n        }\n      },\n      \"source\": [\n        \"e = np.asarray([[10,20,30],[30,40,20],[50,30,10],[40,30,10],[30,20,50]])\\n\",\n        \"e\"\n      ],\n      \"execution_count\": 120,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[10, 20, 30],\\n\",\n              \"       [30, 40, 20],\\n\",\n              \"       [50, 30, 10],\\n\",\n              \"       [40, 30, 10],\\n\",\n              \"       [30, 20, 50]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 120\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"8F95Ey9HtclY\",\n        \"outputId\": \"aff99e60-ab97-4b6e-8c06-9da136c2a103\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 84\n        }\n      },\n      \"source\": [\n        \"x = np.arange(4)\\n\",\n        \"xx = x.reshape(4,1)\\n\",\n        \"y = np.ones(5)\\n\",\n        \"xx+y, y.shape, xx.shape\"\n      ],\n      \"execution_count\": 116,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(array([[1., 1., 1., 1., 1.],\\n\",\n              \"        [2., 2., 2., 2., 2.],\\n\",\n              \"        [3., 3., 3., 3., 3.],\\n\",\n              \"        [4., 4., 4., 4., 4.]]), (5,), (4, 1))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 116\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"xLyZGIO3wmjM\",\n        \"outputId\": \"6f8b3e74-7a85-4cc2-e9ea-a42547a4906d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 101\n        }\n      },\n      \"source\": [\n        \"d = d[:,np.newaxis] + np.zeros(3)\\n\",\n        \"d\"\n      ],\n      \"execution_count\": 121,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[0.1, 0.1, 0.1],\\n\",\n              \"       [0.2, 0.2, 0.2],\\n\",\n              \"       [0.2, 0.2, 0.2],\\n\",\n              \"       [0.4, 0.4, 0.4],\\n\",\n              \"       [0.1, 0.1, 0.1]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 121\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"5SSmgMawwwUf\",\n        \"outputId\": \"6f77c167-f3a5-4f9d-efd4-d2b479e5df8a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 101\n        }\n      },\n      \"source\": [\n        \"f = d * e\\n\",\n        \"f\"\n      ],\n      \"execution_count\": 127,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[ 1.,  2.,  3.],\\n\",\n              \"       [ 6.,  8.,  4.],\\n\",\n              \"       [10.,  6.,  2.],\\n\",\n              \"       [16., 12.,  4.],\\n\",\n              \"       [ 3.,  2.,  5.]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 127\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"3WvWb8R1xe1B\",\n        \"outputId\": \"1fe7e6d7-8069-4873-a4fc-c76882084749\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"f.sum(axis=0)\"\n      ],\n      \"execution_count\": 131,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([36., 30., 18.])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 131\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"wV0Enmh_zEb9\",\n        \"outputId\": \"02b143b2-d213-451d-bdd1-eaec4d85376a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"q = e.mean(axis=0)\\n\",\n        \"q\"\n      ],\n      \"execution_count\": 135,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([32., 28., 24.])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 135\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"qmFVYlEuzNt8\",\n        \"outputId\": \"20061a5d-209f-4349-fd77-7a79ecfbe38a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"l = np.asarray([3,7,1,2,8,9,3])\\n\",\n        \"np.argsort(l)[::-1][:4]\"\n      ],\n      \"execution_count\": 157,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([5, 4, 1, 6])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 157\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"8AsMXObq3V_w\",\n        \"outputId\": \"7535e81d-ad16-4537-e6e6-268ab0c7b091\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"p = np.asarray([3,6,2,8,1,0,6,2,6,0,7,9,5,0])\\n\",\n        \"np.argsort(p)[::-1], np.sort(p)[::-1]\"\n      ],\n      \"execution_count\": 97,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(array([11,  3, 10,  8,  6,  1, 12,  0,  7,  2,  4, 13,  9,  5]),\\n\",\n              \" array([9, 8, 7, 6, 6, 6, 5, 3, 2, 2, 1, 0, 0, 0]))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 97\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"mOR0d1_Llq5m\",\n        \"outputId\": \"d0200f5e-a76f-4f36-f4e4-f5079ca7cdfa\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"# list(p)[::-1].index(0)\\n\",\n        \"j = np.where(p == 0)[0][-1]\\n\",\n        \"j\"\n      ],\n      \"execution_count\": 98,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"13\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 98\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ZopTiksUnhPl\",\n        \"outputId\": \"e7b8a57b-5cab-49a7-cd61-8e0377fac752\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"j = np.where(p == 0)[0][-1]\\n\",\n        \"h = np.argsort(p)[::-1]\\n\",\n        \"h[:list(h).index(j)]\"\n      ],\n      \"execution_count\": 99,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([11,  3, 10,  8,  6,  1, 12,  0,  7,  2,  4])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 99\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"vgMQdXL-u43G\",\n        \"outputId\": \"123edaf0-d199-4ed2-c1ce-c19acc0cfe1d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 118\n        }\n      },\n      \"source\": [\n        \"f = 'rohith kumar 346'\\n\",\n        \"i = ['hit','ro','rohi','34',' ','itho','ohit']\\n\",\n        \"\\n\",\n        \"for j in i:\\n\",\n        \"  if j in f:\\n\",\n        \"    print(j)\"\n      ],\n      \"execution_count\": 204,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"hit\\n\",\n            \"ro\\n\",\n            \"rohi\\n\",\n            \"34\\n\",\n            \" \\n\",\n            \"ohit\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"T_3krmlmMSjl\",\n        \"outputId\": \"917c6eed-3f31-4901-a084-9598bd0169e8\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"d = [2,3,76,4,7,1]\\n\",\n        \"e = [3,1,7,2]\\n\",\n        \"[d.index(i) for i in e]\"\n      ],\n      \"execution_count\": 208,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"[1, 5, 4, 0]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 208\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"_DgLG9Y0Tt6A\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    }\n  ]\n}\n"
  },
  {
    "path": "Knowledge_based_Recommender_System.ipynb",
    "content": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Knowledge-based-Recommender-System.ipynb\",\n      \"provenance\": [],\n      \"collapsed_sections\": [\n        \"IhY_79CI31QH\"\n      ],\n      \"authorship_tag\": \"ABX9TyP39AGjke3UKtl3Djg2eY1v\",\n      \"include_colab_link\": true\n    },\n    \"kernelspec\": {\n      \"name\": \"python3\",\n      \"display_name\": \"Python 3\"\n    }\n  },\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"view-in-github\",\n        \"colab_type\": \"text\"\n      },\n      \"source\": [\n        \"<a href=\\\"https://colab.research.google.com/github/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Knowledge_based_Recommender_System.ipynb\\\" target=\\\"_parent\\\"><img src=\\\"https://colab.research.google.com/assets/colab-badge.svg\\\" alt=\\\"Open In Colab\\\"/></a>\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"I6QppVIb871O\"\n      },\n      \"source\": [\n        \"import os\\n\",\n        \"import numpy as np\\n\",\n        \"import pandas as pd\\n\",\n        \"import matplotlib.pyplot as plt\\n\",\n        \"#from scipy.sparse import csr_matrix\\n\",\n        \"#from sklearn.neighbors import NearestNeighbors\\n\",\n        \"#from sklearn.model_selection import train_test_split\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"e2b-97_pD3_X\"\n      },\n      \"source\": [\n        \"## Loading MovieLens rating dataset of size 100k\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"QBxz0KI-D3Xa\"\n      },\n      \"source\": [\n        \"DATASET_LINK='http://files.grouplens.org/datasets/movielens/ml-100k.zip'\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"OIUrxfX2EXKP\"\n      },\n      \"source\": [\n        \"## if done in jupyter notebook on a local machine\\n\",\n        \"\\n\",\n        \"# !conda install -c anaconda wget --yes\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"IhxnKWueEfCT\",\n        \"outputId\": \"308fba5a-fcb5-4cf0-c529-8eb8c3677730\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 629\n        }\n      },\n      \"source\": [\n        \"!wget -nc http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n        \"!unzip -n ml-100k.zip\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"--2020-10-16 01:11:02--  http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n            \"Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\\n\",\n            \"Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:80... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 4924029 (4.7M) [application/zip]\\n\",\n            \"Saving to: ‘ml-100k.zip’\\n\",\n            \"\\n\",\n            \"ml-100k.zip         100%[===================>]   4.70M  16.3MB/s    in 0.3s    \\n\",\n            \"\\n\",\n            \"2020-10-16 01:11:02 (16.3 MB/s) - ‘ml-100k.zip’ saved [4924029/4924029]\\n\",\n            \"\\n\",\n            \"Archive:  ml-100k.zip\\n\",\n            \"   creating: ml-100k/\\n\",\n            \"  inflating: ml-100k/allbut.pl       \\n\",\n            \"  inflating: ml-100k/mku.sh          \\n\",\n            \"  inflating: ml-100k/README          \\n\",\n            \"  inflating: ml-100k/u.data          \\n\",\n            \"  inflating: ml-100k/u.genre         \\n\",\n            \"  inflating: ml-100k/u.info          \\n\",\n            \"  inflating: ml-100k/u.item          \\n\",\n            \"  inflating: ml-100k/u.occupation    \\n\",\n            \"  inflating: ml-100k/u.user          \\n\",\n            \"  inflating: ml-100k/u1.base         \\n\",\n            \"  inflating: ml-100k/u1.test         \\n\",\n            \"  inflating: ml-100k/u2.base         \\n\",\n            \"  inflating: ml-100k/u2.test         \\n\",\n            \"  inflating: ml-100k/u3.base         \\n\",\n            \"  inflating: ml-100k/u3.test         \\n\",\n            \"  inflating: ml-100k/u4.base         \\n\",\n            \"  inflating: ml-100k/u4.test         \\n\",\n            \"  inflating: ml-100k/u5.base         \\n\",\n            \"  inflating: ml-100k/u5.test         \\n\",\n            \"  inflating: ml-100k/ua.base         \\n\",\n            \"  inflating: ml-100k/ua.test         \\n\",\n            \"  inflating: ml-100k/ub.base         \\n\",\n            \"  inflating: ml-100k/ub.test         \\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"vpA1EWM-KVoT\"\n      },\n      \"source\": [\n        \"## u.info     -- The number of users, items, and ratings in the u data set.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"GHDq1-JlEooc\",\n        \"outputId\": \"b2004e87-18e6-4224-b4cf-e53895608ba3\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"overall_stats = pd.read_csv('ml-100k/u.info', header=None)\\n\",\n        \"print(\\\"Details of users, items and ratings involved in the loaded movielens dataset: \\\",list(overall_stats[0]))\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Details of users, items and ratings involved in the loaded movielens dataset:  ['943 users', '1682 items', '100000 ratings']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"6kRw5oLJIofy\"\n      },\n      \"source\": [\n        \"## u.data     -- The full u data set, 100000 ratings by 943 users on 1682 items.\\n\",\n        \"\\n\",\n        \"              Each user has rated at least 20 movies.  Users and items are\\n\",\n        \"              numbered consecutively from 1.  The data is randomly ordered. This is a tab separated list of \\n\",\n        \"\\t         user id | item id | rating | timestamp. \\n\",\n        \"              The time stamps are unix seconds since 1/1/1970 UTC \"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"bWag-M0KHbKk\",\n        \"outputId\": \"b1a73b61-7662-4e5c-ecd1-ec9063d5a4ed\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 204\n        }\n      },\n      \"source\": [\n        \"## same item id is same as movie id, item id column is renamed as movie id\\n\",\n        \"column_names1 = ['user id','movie id','rating','timestamp']\\n\",\n        \"dataset = pd.read_csv('ml-100k/u.data', sep='\\\\t',header=None,names=column_names1)\\n\",\n        \"dataset.head()\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>186</td>\\n\",\n              \"      <td>302</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>891717742</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>22</td>\\n\",\n              \"      <td>377</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>878887116</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>244</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>880606923</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>166</td>\\n\",\n              \"      <td>346</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>886397596</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp\\n\",\n              \"0      196       242       3  881250949\\n\",\n              \"1      186       302       3  891717742\\n\",\n              \"2       22       377       1  878887116\\n\",\n              \"3      244        51       2  880606923\\n\",\n              \"4      166       346       1  886397596\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 6\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"uWiCCCZfQrBJ\",\n        \"outputId\": \"af7bcc44-3684-41ac-86ab-ba0f864ded05\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"len(dataset), max(dataset['movie id']),min(dataset['movie id'])\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(100000, 1682, 1)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 7\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"2bVpYrebKvzh\"\n      },\n      \"source\": [\n        \"## u.item     -- Information about the items (movies); this is a tab separated\\n\",\n        \"              list of\\n\",\n        \"              movie id | movie title | release date | video release date |\\n\",\n        \"              IMDb URL | unknown | Action | Adventure | Animation |\\n\",\n        \"              Children's | Comedy | Crime | Documentary | Drama | Fantasy |\\n\",\n        \"              Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |\\n\",\n        \"              Thriller | War | Western |\\n\",\n        \"              The last 19 fields are the genres, a 1 indicates the movie\\n\",\n        \"              is of that genre, a 0 indicates it is not; movies can be in\\n\",\n        \"              several genres at once.\\n\",\n        \"              The movie ids are the ones used in the u.data data set.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"40FkKuG6M9tS\",\n        \"outputId\": \"3d17019f-b479-4dec-fcab-c8387572a376\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 425\n        }\n      },\n      \"source\": [\n        \"d = 'movie id | movie title | release date | video release date | IMDb URL | unknown | Action | Adventure | Animation | Children | Comedy | Crime | Documentary | Drama | Fantasy | Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi | Thriller | War | Western'\\n\",\n        \"column_names2 = d.split(' | ')\\n\",\n        \"column_names2\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"['movie id',\\n\",\n              \" 'movie title',\\n\",\n              \" 'release date',\\n\",\n              \" 'video release date',\\n\",\n              \" 'IMDb URL',\\n\",\n              \" 'unknown',\\n\",\n              \" 'Action',\\n\",\n              \" 'Adventure',\\n\",\n              \" 'Animation',\\n\",\n              \" 'Children',\\n\",\n              \" 'Comedy',\\n\",\n              \" 'Crime',\\n\",\n              \" 'Documentary',\\n\",\n              \" 'Drama',\\n\",\n              \" 'Fantasy',\\n\",\n              \" 'Film-Noir',\\n\",\n              \" 'Horror',\\n\",\n              \" 'Musical',\\n\",\n              \" 'Mystery',\\n\",\n              \" 'Romance',\\n\",\n              \" 'Sci-Fi',\\n\",\n              \" 'Thriller',\\n\",\n              \" 'War',\\n\",\n              \" 'Western']\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 8\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"rOFkTodrJQIi\",\n        \"outputId\": \"c31ed623-7d48-4022-9465-6038fb3f164d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 779\n        }\n      },\n      \"source\": [\n        \"items_dataset = pd.read_csv('ml-100k/u.item', sep='|',header=None,names=column_names2,encoding='latin-1')\\n\",\n        \"items_dataset\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>release date</th>\\n\",\n              \"      <th>video release date</th>\\n\",\n              \"      <th>IMDb URL</th>\\n\",\n              \"      <th>unknown</th>\\n\",\n              \"      <th>Action</th>\\n\",\n              \"      <th>Adventure</th>\\n\",\n              \"      <th>Animation</th>\\n\",\n              \"      <th>Children</th>\\n\",\n              \"      <th>Comedy</th>\\n\",\n              \"      <th>Crime</th>\\n\",\n              \"      <th>Documentary</th>\\n\",\n              \"      <th>Drama</th>\\n\",\n              \"      <th>Fantasy</th>\\n\",\n              \"      <th>Film-Noir</th>\\n\",\n              \"      <th>Horror</th>\\n\",\n              \"      <th>Musical</th>\\n\",\n              \"      <th>Mystery</th>\\n\",\n              \"      <th>Romance</th>\\n\",\n              \"      <th>Sci-Fi</th>\\n\",\n              \"      <th>Thriller</th>\\n\",\n              \"      <th>War</th>\\n\",\n              \"      <th>Western</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Toy%20Story%2...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?GoldenEye%20(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Four%20Rooms%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Get%20Shorty%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Copycat%20(1995)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>...</th>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1677</th>\\n\",\n              \"      <td>1678</td>\\n\",\n              \"      <td>Mat' i syn (1997)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Mat%27+i+syn+...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1678</th>\\n\",\n              \"      <td>1679</td>\\n\",\n              \"      <td>B. Monkey (1998)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?B%2E+Monkey+(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1679</th>\\n\",\n              \"      <td>1680</td>\\n\",\n              \"      <td>Sliding Doors (1998)</td>\\n\",\n              \"      <td>01-Jan-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/Title?Sliding+Doors+(1998)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1680</th>\\n\",\n              \"      <td>1681</td>\\n\",\n              \"      <td>You So Crazy (1994)</td>\\n\",\n              \"      <td>01-Jan-1994</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?You%20So%20Cr...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1681</th>\\n\",\n              \"      <td>1682</td>\\n\",\n              \"      <td>Scream of Stone (Schrei aus Stein) (1991)</td>\\n\",\n              \"      <td>08-Mar-1996</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Schrei%20aus%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"<p>1682 rows × 24 columns</p>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"      movie id                                movie title  ... War  Western\\n\",\n              \"0            1                           Toy Story (1995)  ...   0        0\\n\",\n              \"1            2                           GoldenEye (1995)  ...   0        0\\n\",\n              \"2            3                          Four Rooms (1995)  ...   0        0\\n\",\n              \"3            4                          Get Shorty (1995)  ...   0        0\\n\",\n              \"4            5                             Copycat (1995)  ...   0        0\\n\",\n              \"...        ...                                        ...  ...  ..      ...\\n\",\n              \"1677      1678                          Mat' i syn (1997)  ...   0        0\\n\",\n              \"1678      1679                           B. Monkey (1998)  ...   0        0\\n\",\n              \"1679      1680                       Sliding Doors (1998)  ...   0        0\\n\",\n              \"1680      1681                        You So Crazy (1994)  ...   0        0\\n\",\n              \"1681      1682  Scream of Stone (Schrei aus Stein) (1991)  ...   0        0\\n\",\n              \"\\n\",\n              \"[1682 rows x 24 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 9\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"7tB4z-ZGNp3O\",\n        \"outputId\": \"8e83ce0b-737d-48b5-e4d6-0dccd77d3ab8\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 204\n        }\n      },\n      \"source\": [\n        \"movie_dataset = items_dataset[['movie id','movie title']]\\n\",\n        \"movie_dataset.head()\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   movie id        movie title\\n\",\n              \"0         1   Toy Story (1995)\\n\",\n              \"1         2   GoldenEye (1995)\\n\",\n              \"2         3  Four Rooms (1995)\\n\",\n              \"3         4  Get Shorty (1995)\\n\",\n              \"4         5     Copycat (1995)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 10\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"uKus60hs-axf\"\n      },\n      \"source\": [\n        \"## Merging required datasets\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"l3jlxk2aVW9l\",\n        \"outputId\": \"64a68706-89ed-4bfc-d08a-b0ddf744a811\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 204\n        }\n      },\n      \"source\": [\n        \"merged_dataset = pd.merge(dataset, movie_dataset, how='inner', on='movie id')\\n\",\n        \"merged_dataset.head()\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>63</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>875747190</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>226</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>883888671</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>154</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879138235</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>306</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>876503793</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp   movie title\\n\",\n              \"0      196       242       3  881250949  Kolya (1996)\\n\",\n              \"1       63       242       3  875747190  Kolya (1996)\\n\",\n              \"2      226       242       5  883888671  Kolya (1996)\\n\",\n              \"3      154       242       3  879138235  Kolya (1996)\\n\",\n              \"4      306       242       5  876503793  Kolya (1996)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 11\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"UJAxMMi1bmNi\",\n        \"outputId\": \"eb33d1fa-2316-4930-cec0-0a53e1c4717f\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 297\n        }\n      },\n      \"source\": [\n        \"merged_dataset.describe()\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>count</th>\\n\",\n              \"      <td>100000.00000</td>\\n\",\n              \"      <td>100000.000000</td>\\n\",\n              \"      <td>100000.000000</td>\\n\",\n              \"      <td>1.000000e+05</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>mean</th>\\n\",\n              \"      <td>462.48475</td>\\n\",\n              \"      <td>425.530130</td>\\n\",\n              \"      <td>3.529860</td>\\n\",\n              \"      <td>8.835289e+08</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>std</th>\\n\",\n              \"      <td>266.61442</td>\\n\",\n              \"      <td>330.798356</td>\\n\",\n              \"      <td>1.125674</td>\\n\",\n              \"      <td>5.343856e+06</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>min</th>\\n\",\n              \"      <td>1.00000</td>\\n\",\n              \"      <td>1.000000</td>\\n\",\n              \"      <td>1.000000</td>\\n\",\n              \"      <td>8.747247e+08</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>25%</th>\\n\",\n              \"      <td>254.00000</td>\\n\",\n              \"      <td>175.000000</td>\\n\",\n              \"      <td>3.000000</td>\\n\",\n              \"      <td>8.794487e+08</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>50%</th>\\n\",\n              \"      <td>447.00000</td>\\n\",\n              \"      <td>322.000000</td>\\n\",\n              \"      <td>4.000000</td>\\n\",\n              \"      <td>8.828269e+08</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>75%</th>\\n\",\n              \"      <td>682.00000</td>\\n\",\n              \"      <td>631.000000</td>\\n\",\n              \"      <td>4.000000</td>\\n\",\n              \"      <td>8.882600e+08</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>max</th>\\n\",\n              \"      <td>943.00000</td>\\n\",\n              \"      <td>1682.000000</td>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"      <td>8.932866e+08</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"            user id       movie id         rating     timestamp\\n\",\n              \"count  100000.00000  100000.000000  100000.000000  1.000000e+05\\n\",\n              \"mean      462.48475     425.530130       3.529860  8.835289e+08\\n\",\n              \"std       266.61442     330.798356       1.125674  5.343856e+06\\n\",\n              \"min         1.00000       1.000000       1.000000  8.747247e+08\\n\",\n              \"25%       254.00000     175.000000       3.000000  8.794487e+08\\n\",\n              \"50%       447.00000     322.000000       4.000000  8.828269e+08\\n\",\n              \"75%       682.00000     631.000000       4.000000  8.882600e+08\\n\",\n              \"max       943.00000    1682.000000       5.000000  8.932866e+08\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 12\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"8qYU51YO-fhs\"\n      },\n      \"source\": [\n        \"## Data Visualization & Recommendations through Data Analysis for a new user (Content-based & Popularity based Recommender system)\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Q_tjBrrjdgOR\",\n        \"outputId\": \"acedeec5-43c8-46ac-c2af-64a625676d2f\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 404\n        }\n      },\n      \"source\": [\n        \"merged_dataset['rating'].value_counts(sort=False).plot(kind='bar' ,figsize=(10,6), use_index = True, rot=0)\\n\",\n        \"plt.title('Bar plot of rating frequency')\\n\",\n        \"plt.xlabel('Rating')\\n\",\n        \"plt.ylabel('Number of times a rating was given')\\n\",\n        \"label = list(merged_dataset['rating'].value_counts(sort=False))\\n\",\n        \"r4 = [1,2,3,4,5]\\n\",\n        \"for i in range(len(label)):\\n\",\n        \"  plt.text(x = r4[i]-1.2 , y = label[i]+500, s = label[i], size =15)\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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SkqQVOlnn332KW+3ePFifv7zn3PooYfStGlTCgoKarz2bbfdhiQGDhxYIT59+vRKrzds2LCtdt9m1nBk8zUiZmbbpNGjR9OlSxfGjBlD+/btKS4u5uyzz2bJkiUMHTqUjh078sILL1Q45ssvv6RPnz7069evPLZw4UImTZrEYYcdxkEHHcSiRYuqve6iRYsYPnw41a0Ic++997LHHnuUb3fqVOkKgWa2nXMBZ2bbnYcffpj27duXbx9zzDF8/PHHjB49mqFDh9KsWTN69uxZ4Zj777+f9evXc9ZZZ5XHunfvzmeffQbA5ZdfzuTJk6u97tVXX81JJ53EggULqmzTvXt3DjjggNrclpltRzyEambbnfTirUyPHj34+OOPqzxm4sSJ7LHHHhx22GHlsUaNMv9/oS+//DL33XcfI0eO3LJkzcwq4QLOzAx44YUX2HvvvSvdt2rVKqZOncqgQYNqde6IYOjQoVx55ZU1Dokec8wx5OXlUVBQwIgRI9iwYUOtrmlmDZuHUM1su/fkk0/y4IMPMn78+Er3P/jgg6xZs6bWBdxdd93FZ599xuWXX15lmzZt2jBs2DCOOuoomjZtyiOPPMINN9zA4sWLue2222p1XTNruFzAmdl2raSkhLPPPpsBAwZw7rnnVtpm4sSJ7L///hx44IFbfP6VK1dy9dVXc/vtt9O8efMq2/Xo0YMePb5effC4446jWbNmjB49muuuu67SYV8z2355CNXMtlvLli2jX79+7L777tx7772Vtlm6dCn//Oc/K0xe2BK33HILu+22G3369GHFihWsWLGC9evX89VXX7FixYpqh0gHDhzI+vXrefPNN2t1bTNruNwDZ2bbpdLSUk466STWrVvHI488QosWLSptN3nyZNavX1/r4dN3332XmTNnkp+fv9m+/Px8nn32WY488shKj5VU4V8zszIu4Mxsu7N+/XpOP/103n//fWbMmMG3vvWtKttOnDiRQw89lD333LNW1xoxYgSXXnpphdill15KmzZtuPHGG6sdlp08eTKNGzeme/futbq2mTVcLuDMbLtz0UUXUVxczG233cbSpUtZunRp+b4ePXrQrFkzAD7++GOeffZZRo0aVeW5yt799t5771FaWlq+3atXLzp06FDpO93atm1L+/bt6d27d3nswgsvpEOHDhxyyCE0bdqU4uJixo0bx6WX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BebPnw/Axo0badSoEZ9//jk77rgjd911F+eee26N57nmmmsYM2YMK1asoFmzZgAcf/zxfPXVVzz11FPl7U444QRWrVrFc889Vx6LCCQxbtw4hg4dSqa1UV2Q9GpEFG4az2QI9S+SZgB/IPXM3EBSi9qbmZmZZWzTogugR48efPzxx+XbjRrVPDhY1XnWrFnDsmXLAFi7di3Tpk3jjDPOqNBu0KBBvPDCC6xcubI8livDpukyGUJtB+SRevfbMmBJRKzPalZmZma2XXjhhRfYe++9t8p52rZty7e+9S0A/vWvf/HVV1+x7777Vmi33377sXHjRt57771vfM36lPEsVEn7AccD0yTlRUTnbCdnZmZmDdeTTz7Jgw8+yPjx47/ReebMmcMf/vAHrrrqKvLy8gBYvnw5AG3btq3QNj8/v8L+XJXJUlonAUcB3wXaAk8Bz2Y5LzMzM2vASkpKOPvssxkwYMBmz7htieXLl3PaaafRvXt3rrnmmq2X4DYukxf59iVVsN0WER/X1NjMzMysOsuWLaNfv37svvvu3HvvvbU+z5o1axgwYABr165lypQpNG3atHxfWU9b+rNu8HXPW9n+XFXjM3ARMSQiJrl4MzMzs2+qtLSUk046iXXr1vHII4/QokWLWp1nw4YNnH322cyZM4epU6ey8847V9i/55570qRJE+bOnVshPnfuXBo1arRVnrurT5lMYjAzMzP7xtavX8/pp5/O+++/z6OPPlo+4aA2LrroIh599FGmTJnCPvtsvkR7s2bNOProo7n//vsrxCdNmsThhx9OmzZtan3tbUEmQ6hmZmZm39hFF11EcXExt912G0uXLmXp0qXl+3r06EGzZs2YM2cOc+bMYc2aNQDMnDmTVq1a0aFDB3r16gXALbfcwp133snVV19No0aNePHFF8vP061bN1q3bg3AddddR+/evbn00ks55ZRTKC4upri4mEcfrbgi6NSpU/niiy+YNWsWkHqZMMAhhxzC7rvvnr0/yDeQ8Yt8Gwq/yNds++CXweYu/3YNV0FBAR9++GGl++bPn09BQQHDhw/nxhtv3Gx/r169mD59OgC9e/fm6aefrvQ806ZNo3fv3uXbDz74IL/61a94//336dKlC8OHD2fQoEEZ5VXZS4TrWlUv8q2xgJP0FrBpo5XATGBERCzd/Khtlws4s+2Di4Dc5d/O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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ddCUhcSekW3A\"\n      },\n      \"source\": [\n        \"We can observe that most of the users have rewarded movies they watched with a 4 star rating and followed by 3 star and 5 star.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"8JVGzz1rd_Ex\"\n      },\n      \"source\": [\n        \"avg_highly_rated_movies = merged_dataset.groupby(['movie title']).agg({\\\"rating\\\":\\\"mean\\\"})['rating'].sort_values(ascending=False)\\n\",\n        \"avg_highly_rated_movies = avg_highly_rated_movies.to_frame()\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"QajiCkKfq5Bi\",\n        \"outputId\": \"3f5c2a6d-4655-458f-8ad9-e2e0c5306cda\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 700\n        }\n      },\n      \"source\": [\n        \"avg_highly_rated_movies.head(20)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th></th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Marlene Dietrich: Shadow and Light (1996)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Prefontaine (1997)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Santa with Muscles (1996)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Star Kid (1997)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Someone Else's America (1995)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Entertaining Angels: The Dorothy Day Story (1996)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Saint of Fort Washington, The (1993)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Great Day in Harlem, A (1994)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>They Made Me a Criminal (1939)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Aiqing wansui (1994)</th>\\n\",\n              \"      <td>5.000000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Pather Panchali (1955)</th>\\n\",\n              \"      <td>4.625000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Anna (1996)</th>\\n\",\n              \"      <td>4.500000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Everest (1998)</th>\\n\",\n              \"      <td>4.500000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Maya Lin: A Strong Clear Vision (1994)</th>\\n\",\n              \"      <td>4.500000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Some Mother's Son (1996)</th>\\n\",\n              \"      <td>4.500000</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Close Shave, A (1995)</th>\\n\",\n              \"      <td>4.491071</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Schindler's List (1993)</th>\\n\",\n              \"      <td>4.466443</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Wrong Trousers, The (1993)</th>\\n\",\n              \"      <td>4.466102</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Casablanca (1942)</th>\\n\",\n              \"      <td>4.456790</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Wallace &amp; Gromit: The Best of Aardman Animation (1996)</th>\\n\",\n              \"      <td>4.447761</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                                      rating\\n\",\n              \"movie title                                                 \\n\",\n              \"Marlene Dietrich: Shadow and Light (1996)           5.000000\\n\",\n              \"Prefontaine (1997)                                  5.000000\\n\",\n              \"Santa with Muscles (1996)                           5.000000\\n\",\n              \"Star Kid (1997)                                     5.000000\\n\",\n              \"Someone Else's America (1995)                       5.000000\\n\",\n              \"Entertaining Angels: The Dorothy Day Story (1996)   5.000000\\n\",\n              \"Saint of Fort Washington, The (1993)                5.000000\\n\",\n              \"Great Day in Harlem, A (1994)                       5.000000\\n\",\n              \"They Made Me a Criminal (1939)                      5.000000\\n\",\n              \"Aiqing wansui (1994)                                5.000000\\n\",\n              \"Pather Panchali (1955)                              4.625000\\n\",\n              \"Anna (1996)                                         4.500000\\n\",\n              \"Everest (1998)                                      4.500000\\n\",\n              \"Maya Lin: A Strong Clear Vision (1994)              4.500000\\n\",\n              \"Some Mother's Son (1996)                            4.500000\\n\",\n              \"Close Shave, A (1995)                               4.491071\\n\",\n              \"Schindler's List (1993)                             4.466443\\n\",\n              \"Wrong Trousers, The (1993)                          4.466102\\n\",\n              \"Casablanca (1942)                                   4.456790\\n\",\n              \"Wallace & Gromit: The Best of Aardman Animation...  4.447761\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 15\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"I5U5xzYnsA9e\",\n        \"outputId\": \"fd0474ba-4489-468c-e71d-8d875e3533ea\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 119\n        }\n      },\n      \"source\": [\n        \"print(\\\"Number of movies with 5 star rating on average: \\\",len(avg_highly_rated_movies[avg_highly_rated_movies['rating'] == 5.0]))\\n\",\n        \"print(\\\"Number of movies with above 4 star and below 5 star rating on average: \\\",len(avg_highly_rated_movies[(avg_highly_rated_movies['rating'] >= 4.0) & (avg_highly_rated_movies['rating'] < 5.0)]))\\n\",\n        \"print(\\\"Number of movies with above 3 star and below 4 star rating on average: \\\",len(avg_highly_rated_movies[(avg_highly_rated_movies['rating'] >= 3.0) & (avg_highly_rated_movies['rating'] < 4.0)]))\\n\",\n        \"print(\\\"Number of movies with above 2 star and below 3 star rating on average: \\\",len(avg_highly_rated_movies[(avg_highly_rated_movies['rating'] >= 2.0) & (avg_highly_rated_movies['rating'] < 3.0)]))\\n\",\n        \"print(\\\"Number of movies with above 1 star and below 2 star rating on average: \\\",len(avg_highly_rated_movies[(avg_highly_rated_movies['rating'] >= 1.0) & (avg_highly_rated_movies['rating'] < 2.0)]))\\n\",\n        \"print(\\\"Number of movies with below 1 star rating on average: \\\", len(avg_highly_rated_movies[(avg_highly_rated_movies['rating'] < 1.0)]))\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Number of movies with 5 star rating on average:  10\\n\",\n            \"Number of movies with above 4 star and below 5 star rating on average:  163\\n\",\n            \"Number of movies with above 3 star and below 4 star rating on average:  871\\n\",\n            \"Number of movies with above 2 star and below 3 star rating on average:  492\\n\",\n            \"Number of movies with above 1 star and below 2 star rating on average:  128\\n\",\n            \"Number of movies with below 1 star rating on average:  0\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"wqDuh9tOwQN1\"\n      },\n      \"source\": [\n        \"We can look at number of movies between each range of average ratings:  \\n\",\n        \"if  \\n\",\n        \"rating ==5.0 : 10;  \\n\",\n        \"4<= rating <5: 163;  \\n\",\n        \"3<= rating <4: 871;    \\n\",\n        \"2<= rating <3: 492;  \\n\",\n        \"1<= rating <2: 128;\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"7VNSqthl_2kU\",\n        \"outputId\": \"ec045f0d-207a-49c2-b98c-ef3ba08754de\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 270\n        }\n      },\n      \"source\": [\n        \"import matplotlib.pyplot as plt\\n\",\n        \"print('Split of movies count based on their overall average rating')\\n\",\n        \"# Pie chart, where the slices will be ordered and plotted counter-clockwise:\\n\",\n        \"labels = '5 star', '4 to 5 star', '3 to 4 star', '2 to 3 star', '1 to 2 star'\\n\",\n        \"sizes = [10, 163, 871, 492, 128]\\n\",\n        \"# explode = (0, 0.1, 0, 0)  # only \\\"explode\\\" the 2nd slice (i.e. 'Hogs')\\n\",\n        \"\\n\",\n        \"fig1, ax1 = plt.subplots()\\n\",\n        \"ax1.pie(sizes, labels=labels, autopct='%1.1f%%',\\n\",\n        \"        shadow=True, startangle=90)\\n\",\n        \"ax1.axis('equal')  # Equal aspect ratio ensures that pie is drawn as a circle.\\n\",\n        \"\\n\",\n        \"plt.show()\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Split of movies count based on their overall average rating\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 432x288 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"zZOCXhY4zhIC\"\n      },\n      \"source\": [\n        \"avg_highly_rated_movies.reset_index(level=0, inplace=True)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"5wHFoMWfti41\",\n        \"outputId\": \"9f9ada96-218c-4811-b20a-dface04ed64b\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 359\n        }\n      },\n      \"source\": [\n        \"avg_highly_rated_movies.columns = ['movie title', 'avg rating']\\n\",\n        \"\\n\",\n        \"avg_highly_rated_movies.head(10)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>avg rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>Marlene Dietrich: Shadow and Light (1996)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>Prefontaine (1997)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>Santa with Muscles (1996)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>Star Kid (1997)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>Someone Else's America (1995)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>Entertaining Angels: The Dorothy Day Story (1996)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>Saint of Fort Washington, The (1993)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <td>Great Day in Harlem, A (1994)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>They Made Me a Criminal (1939)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>Aiqing wansui (1994)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                         movie title  avg rating\\n\",\n              \"0         Marlene Dietrich: Shadow and Light (1996)          5.0\\n\",\n              \"1                                 Prefontaine (1997)         5.0\\n\",\n              \"2                          Santa with Muscles (1996)         5.0\\n\",\n              \"3                                    Star Kid (1997)         5.0\\n\",\n              \"4                      Someone Else's America (1995)         5.0\\n\",\n              \"5  Entertaining Angels: The Dorothy Day Story (1996)         5.0\\n\",\n              \"6               Saint of Fort Washington, The (1993)         5.0\\n\",\n              \"7                      Great Day in Harlem, A (1994)         5.0\\n\",\n              \"8                     They Made Me a Criminal (1939)         5.0\\n\",\n              \"9                               Aiqing wansui (1994)         5.0\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 19\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"dyYfsNRsz5f5\"\n      },\n      \"source\": [\n        \"These are the top 10 movies that can be naviely suggested to the new users, **Recommendations based on top average ratings.**\\n\",\n        \"\\n\",\n        \"-----------------------------\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Peh1-b6uo01E\",\n        \"outputId\": \"00c3f7f6-cee8-4cd9-dd91-6f0b2c94eb3a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 238\n        }\n      },\n      \"source\": [\n        \"merged_dataset.groupby(['movie title']).agg({\\\"rating\\\":\\\"sum\\\"})['rating'].sort_values(ascending=False)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"movie title\\n\",\n              \"Star Wars (1977)                  2541\\n\",\n              \"Fargo (1996)                      2111\\n\",\n              \"Return of the Jedi (1983)         2032\\n\",\n              \"Contact (1997)                    1936\\n\",\n              \"Raiders of the Lost Ark (1981)    1786\\n\",\n              \"                                  ... \\n\",\n              \"Leopard Son, The (1996)              1\\n\",\n              \"Liebelei (1933)                      1\\n\",\n              \"Bird of Prey (1996)                  1\\n\",\n              \"Lotto Land (1995)                    1\\n\",\n              \"Daens (1992)                         1\\n\",\n              \"Name: rating, Length: 1664, dtype: int64\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 20\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"F7ZJn-uKpdWU\",\n        \"outputId\": \"e8797c10-4283-4a8a-ec1c-b76a022bbca0\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 421\n        }\n      },\n      \"source\": [\n        \"merged_dataset['movie id'].value_counts(sort=False).plot(kind='bar' ,figsize=(20,6), use_index = True, rot=0)\\n\",\n        \"plt.title('Bar plot of frequency of a movie being watched')\\n\",\n        \"plt.xlabel('Movies')\\n\",\n        \"plt.ylabel('Number of times a user watched that movie')\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"Text(0, 0.5, 'Number of times a user watched that movie')\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 21\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 1440x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"moiyNVt4qWmN\"\n      },\n      \"source\": [\n        \"We can see that very few movies were watched by more than 100 out of 943 users.\\n\",\n        \"\\n\",\n        \"--------------------------\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"RagHlO7Disd8\"\n      },\n      \"source\": [\n        \"popular_movies = merged_dataset.groupby(['movie title']).agg({\\\"rating\\\":\\\"count\\\"})['rating'].sort_values(ascending=False)\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"DpJbtChW1nHy\"\n      },\n      \"source\": [\n        \"popular_movies = popular_movies.to_frame()\\n\",\n        \"popular_movies.reset_index(level=0, inplace=True)\\n\",\n        \"popular_movies.columns = ['movie title', 'Number of Users watched']\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"T-EaOu_v2hDo\",\n        \"outputId\": \"3adf8cc3-66cd-43a2-b36d-20b991b40aec\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 119\n        }\n      },\n      \"source\": [\n        \"print(\\\"Number of popular movies with more than 500 viewers: \\\",len(popular_movies[popular_movies['Number of Users watched'] >= 500]))\\n\",\n        \"print(\\\"Number of popular movies with more than 400 and less than 500 viewers: \\\",len(popular_movies[(popular_movies['Number of Users watched'] >= 400) & (popular_movies['Number of Users watched'] < 500)]))\\n\",\n        \"print(\\\"Number of popular movies with more than 300 and less than 400 viewers: \\\",len(popular_movies[(popular_movies['Number of Users watched'] >= 300) & (popular_movies['Number of Users watched'] < 400)]))\\n\",\n        \"print(\\\"Number of popular movies with more than 200 and less than 300 viewers: \\\",len(popular_movies[(popular_movies['Number of Users watched'] >= 200) & (popular_movies['Number of Users watched'] < 300)]))\\n\",\n        \"print(\\\"Number of popular movies with more than 100 and less than 200 viewers: \\\",len(popular_movies[(popular_movies['Number of Users watched'] >= 100) & (popular_movies['Number of Users watched'] < 200)]))\\n\",\n        \"print(\\\"Number of popular movies with less than 100 viewers: \\\", len(popular_movies[(popular_movies['Number of Users watched'] < 100)]))\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Number of popular movies with more than 500 viewers:  4\\n\",\n            \"Number of popular movies with more than 400 and less than 500 viewers:  8\\n\",\n            \"Number of popular movies with more than 300 and less than 400 viewers:  22\\n\",\n            \"Number of popular movies with more than 200 and less than 300 viewers:  84\\n\",\n            \"Number of popular movies with more than 100 and less than 200 viewers:  220\\n\",\n            \"Number of popular movies with less than 100 viewers:  1326\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"650SkeJKBspi\",\n        \"outputId\": \"fb433772-b7c8-48c4-93e1-9c12f18e6654\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 303\n        }\n      },\n      \"source\": [\n        \"\\n\",\n        \"df = pd.DataFrame({'viewers': [4, 8, 22, 84, 220, 1326]},\\n\",\n        \"                  index=['500 viewers', '400 to 500 viewers', '300 to 400 viewers', '200 to 300 viewers', '100 to 200 viewers', 'less than 100 viewers'])\\n\",\n        \"plot = df.plot.pie(y='viewers', figsize=(5, 5))\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 360x360 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"b71P43rd3sBA\"\n      },\n      \"source\": [\n        \"We can consider the movies which have more than 400 viewers as **POPULAR** and there are 12 movies.\\n\",\n        \"\\n\",\n        \"-------------------------\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"0Fehdsj82DF4\",\n        \"outputId\": \"1aa6001c-c53c-477d-fabc-4dd2332d7d1d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 421\n        }\n      },\n      \"source\": [\n        \"popular_movies[popular_movies['Number of Users watched'] >= 400]\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>Star Wars (1977)</td>\\n\",\n              \"      <td>583</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>Contact (1997)</td>\\n\",\n              \"      <td>509</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>Fargo (1996)</td>\\n\",\n              \"      <td>508</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>Return of the Jedi (1983)</td>\\n\",\n              \"      <td>507</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>Liar Liar (1997)</td>\\n\",\n              \"      <td>485</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>English Patient, The (1996)</td>\\n\",\n              \"      <td>481</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>Scream (1996)</td>\\n\",\n              \"      <td>478</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>452</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>Air Force One (1997)</td>\\n\",\n              \"      <td>431</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>Independence Day (ID4) (1996)</td>\\n\",\n              \"      <td>429</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>10</th>\\n\",\n              \"      <td>Raiders of the Lost Ark (1981)</td>\\n\",\n              \"      <td>420</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>11</th>\\n\",\n              \"      <td>Godfather, The (1972)</td>\\n\",\n              \"      <td>413</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                       movie title  Number of Users watched\\n\",\n              \"0                 Star Wars (1977)                      583\\n\",\n              \"1                   Contact (1997)                      509\\n\",\n              \"2                     Fargo (1996)                      508\\n\",\n              \"3        Return of the Jedi (1983)                      507\\n\",\n              \"4                 Liar Liar (1997)                      485\\n\",\n              \"5      English Patient, The (1996)                      481\\n\",\n              \"6                    Scream (1996)                      478\\n\",\n              \"7                 Toy Story (1995)                      452\\n\",\n              \"8             Air Force One (1997)                      431\\n\",\n              \"9    Independence Day (ID4) (1996)                      429\\n\",\n              \"10  Raiders of the Lost Ark (1981)                      420\\n\",\n              \"11           Godfather, The (1972)                      413\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 26\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"pQcVlaTn4PQj\"\n      },\n      \"source\": [\n        \"These are the most popular movies which can be recommended to a new user. **Recommendations based on Popularity**\\n\",\n        \"\\n\",\n        \"----------------------------\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"aHp-8l0i2GRx\",\n        \"outputId\": \"24638608-421b-457d-bc3c-031b1f874c4b\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 359\n        }\n      },\n      \"source\": [\n        \"highly_rated_popular_movies = pd.merge(avg_highly_rated_movies, popular_movies, how = 'inner', on='movie title')\\n\",\n        \"highly_rated_popular_movies.head(10)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>avg rating</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>Marlene Dietrich: Shadow and Light (1996)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>Prefontaine (1997)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>Santa with Muscles (1996)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>Star Kid (1997)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>Someone Else's America (1995)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>Entertaining Angels: The Dorothy Day Story (1996)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>Saint of Fort Washington, The (1993)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <td>Great Day in Harlem, A (1994)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>They Made Me a Criminal (1939)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>Aiqing wansui (1994)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                         movie title  ...  Number of Users watched\\n\",\n              \"0         Marlene Dietrich: Shadow and Light (1996)   ...                        1\\n\",\n              \"1                                 Prefontaine (1997)  ...                        3\\n\",\n              \"2                          Santa with Muscles (1996)  ...                        2\\n\",\n              \"3                                    Star Kid (1997)  ...                        3\\n\",\n              \"4                      Someone Else's America (1995)  ...                        1\\n\",\n              \"5  Entertaining Angels: The Dorothy Day Story (1996)  ...                        1\\n\",\n              \"6               Saint of Fort Washington, The (1993)  ...                        2\\n\",\n              \"7                      Great Day in Harlem, A (1994)  ...                        1\\n\",\n              \"8                     They Made Me a Criminal (1939)  ...                        1\\n\",\n              \"9                               Aiqing wansui (1994)  ...                        1\\n\",\n              \"\\n\",\n              \"[10 rows x 3 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 27\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"F0PXjIWA7Vt1\",\n        \"outputId\": \"95e8b529-79c8-4bc6-fd59-534f1601ccbb\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 421\n        }\n      },\n      \"source\": [\n        \"highly_rated_popular_movies[highly_rated_popular_movies['Number of Users watched']>400]\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>avg rating</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>23</th>\\n\",\n              \"      <td>Star Wars (1977)</td>\\n\",\n              \"      <td>4.358491</td>\\n\",\n              \"      <td>583</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>34</th>\\n\",\n              \"      <td>Godfather, The (1972)</td>\\n\",\n              \"      <td>4.283293</td>\\n\",\n              \"      <td>413</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>40</th>\\n\",\n              \"      <td>Raiders of the Lost Ark (1981)</td>\\n\",\n              \"      <td>4.252381</td>\\n\",\n              \"      <td>420</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>64</th>\\n\",\n              \"      <td>Fargo (1996)</td>\\n\",\n              \"      <td>4.155512</td>\\n\",\n              \"      <td>508</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>129</th>\\n\",\n              \"      <td>Return of the Jedi (1983)</td>\\n\",\n              \"      <td>4.007890</td>\\n\",\n              \"      <td>507</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>236</th>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>3.878319</td>\\n\",\n              \"      <td>452</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>292</th>\\n\",\n              \"      <td>Contact (1997)</td>\\n\",\n              \"      <td>3.803536</td>\\n\",\n              \"      <td>509</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>412</th>\\n\",\n              \"      <td>English Patient, The (1996)</td>\\n\",\n              \"      <td>3.656965</td>\\n\",\n              \"      <td>481</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>428</th>\\n\",\n              \"      <td>Air Force One (1997)</td>\\n\",\n              \"      <td>3.631090</td>\\n\",\n              \"      <td>431</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>597</th>\\n\",\n              \"      <td>Scream (1996)</td>\\n\",\n              \"      <td>3.441423</td>\\n\",\n              \"      <td>478</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>598</th>\\n\",\n              \"      <td>Independence Day (ID4) (1996)</td>\\n\",\n              \"      <td>3.438228</td>\\n\",\n              \"      <td>429</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>837</th>\\n\",\n              \"      <td>Liar Liar (1997)</td>\\n\",\n              \"      <td>3.156701</td>\\n\",\n              \"      <td>485</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                        movie title  avg rating  Number of Users watched\\n\",\n              \"23                 Star Wars (1977)    4.358491                      583\\n\",\n              \"34            Godfather, The (1972)    4.283293                      413\\n\",\n              \"40   Raiders of the Lost Ark (1981)    4.252381                      420\\n\",\n              \"64                     Fargo (1996)    4.155512                      508\\n\",\n              \"129       Return of the Jedi (1983)    4.007890                      507\\n\",\n              \"236                Toy Story (1995)    3.878319                      452\\n\",\n              \"292                  Contact (1997)    3.803536                      509\\n\",\n              \"412     English Patient, The (1996)    3.656965                      481\\n\",\n              \"428            Air Force One (1997)    3.631090                      431\\n\",\n              \"597                   Scream (1996)    3.441423                      478\\n\",\n              \"598   Independence Day (ID4) (1996)    3.438228                      429\\n\",\n              \"837                Liar Liar (1997)    3.156701                      485\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 28\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"h7dmoDb-567R\",\n        \"outputId\": \"e190d556-15e9-4580-dae0-d3c1111919b7\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 421\n        }\n      },\n      \"source\": [\n        \"highly_rated_popular_movies[(highly_rated_popular_movies['Number of Users watched']>300) & (highly_rated_popular_movies['avg rating']>=4.0)]\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>avg rating</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>23</th>\\n\",\n              \"      <td>Star Wars (1977)</td>\\n\",\n              \"      <td>4.358491</td>\\n\",\n              \"      <td>583</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>32</th>\\n\",\n              \"      <td>Silence of the Lambs, The (1991)</td>\\n\",\n              \"      <td>4.289744</td>\\n\",\n              \"      <td>390</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>34</th>\\n\",\n              \"      <td>Godfather, The (1972)</td>\\n\",\n              \"      <td>4.283293</td>\\n\",\n              \"      <td>413</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>40</th>\\n\",\n              \"      <td>Raiders of the Lost Ark (1981)</td>\\n\",\n              \"      <td>4.252381</td>\\n\",\n              \"      <td>420</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>45</th>\\n\",\n              \"      <td>Titanic (1997)</td>\\n\",\n              \"      <td>4.245714</td>\\n\",\n              \"      <td>350</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>49</th>\\n\",\n              \"      <td>Empire Strikes Back, The (1980)</td>\\n\",\n              \"      <td>4.204360</td>\\n\",\n              \"      <td>367</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>61</th>\\n\",\n              \"      <td>Princess Bride, The (1987)</td>\\n\",\n              \"      <td>4.172840</td>\\n\",\n              \"      <td>324</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>64</th>\\n\",\n              \"      <td>Fargo (1996)</td>\\n\",\n              \"      <td>4.155512</td>\\n\",\n              \"      <td>508</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>98</th>\\n\",\n              \"      <td>Monty Python and the Holy Grail (1974)</td>\\n\",\n              \"      <td>4.066456</td>\\n\",\n              \"      <td>316</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>101</th>\\n\",\n              \"      <td>Pulp Fiction (1994)</td>\\n\",\n              \"      <td>4.060914</td>\\n\",\n              \"      <td>394</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>114</th>\\n\",\n              \"      <td>Fugitive, The (1993)</td>\\n\",\n              \"      <td>4.044643</td>\\n\",\n              \"      <td>336</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>129</th>\\n\",\n              \"      <td>Return of the Jedi (1983)</td>\\n\",\n              \"      <td>4.007890</td>\\n\",\n              \"      <td>507</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                movie title  ...  Number of Users watched\\n\",\n              \"23                         Star Wars (1977)  ...                      583\\n\",\n              \"32         Silence of the Lambs, The (1991)  ...                      390\\n\",\n              \"34                    Godfather, The (1972)  ...                      413\\n\",\n              \"40           Raiders of the Lost Ark (1981)  ...                      420\\n\",\n              \"45                           Titanic (1997)  ...                      350\\n\",\n              \"49          Empire Strikes Back, The (1980)  ...                      367\\n\",\n              \"61               Princess Bride, The (1987)  ...                      324\\n\",\n              \"64                             Fargo (1996)  ...                      508\\n\",\n              \"98   Monty Python and the Holy Grail (1974)  ...                      316\\n\",\n              \"101                     Pulp Fiction (1994)  ...                      394\\n\",\n              \"114                    Fugitive, The (1993)  ...                      336\\n\",\n              \"129               Return of the Jedi (1983)  ...                      507\\n\",\n              \"\\n\",\n              \"[12 rows x 3 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 29\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"w-cVM7If7dRZ\"\n      },\n      \"source\": [\n        \"These movies are the best to suggest to a new user as they are popular and well rated by the users who already watched them. These have rating more than 4 with atleast 300 viewers.\\n\",\n        \"\\n\",\n        \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n        \"\\n\",\n        \"----------------------------\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"AAvexcTZDUtm\"\n      },\n      \"source\": [\n        \"## Recommendations based on Movie Genre to a New User.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"c3sMtrPbEhjk\",\n        \"outputId\": \"25f6b200-0ec2-4e07-a33b-ad9af50ca329\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 340\n        }\n      },\n      \"source\": [\n        \"movie_genre_list = column_names2[-19:]\\n\",\n        \"movie_genre_list\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"['unknown',\\n\",\n              \" 'Action',\\n\",\n              \" 'Adventure',\\n\",\n              \" 'Animation',\\n\",\n              \" 'Children',\\n\",\n              \" 'Comedy',\\n\",\n              \" 'Crime',\\n\",\n              \" 'Documentary',\\n\",\n              \" 'Drama',\\n\",\n              \" 'Fantasy',\\n\",\n              \" 'Film-Noir',\\n\",\n              \" 'Horror',\\n\",\n              \" 'Musical',\\n\",\n              \" 'Mystery',\\n\",\n              \" 'Romance',\\n\",\n              \" 'Sci-Fi',\\n\",\n              \" 'Thriller',\\n\",\n              \" 'War',\\n\",\n              \" 'Western']\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 30\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"AshrvmaNFNwZ\",\n        \"outputId\": \"95352581-178d-4758-bc74-72a320da6408\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 387\n        }\n      },\n      \"source\": [\n        \"count = []\\n\",\n        \"for i in movie_genre_list:\\n\",\n        \"  # print(i)\\n\",\n        \"  genre_based_movies = items_dataset[['movie id','movie title',i]]\\n\",\n        \"  genre_based_movies = genre_based_movies[genre_based_movies[i] == 1]\\n\",\n        \"  count.append(len(genre_based_movies))\\n\",\n        \"  # merged_genre_movies = pd.merge(dataset, genre_based_movies, how='inner', on='movie id')\\n\",\n        \"  # star_based_visualization(merged_genre_movies)\\n\",\n        \"df = pd.DataFrame({'Movie genre':movie_genre_list, 'Number of movies':count})\\n\",\n        \"ax = df.plot.bar(x='Movie genre', y='Number of movies', rot=60, figsize=(10, 5))\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAlYAAAFyCAYAAAA3cJSiAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdebxd0/nH8c+T3AzGhIgYEiJENCWCCKWEGCKmaBHUEDFEW2OpobRptbRR1FiUBkGIoWZ+Rc20aKJqiiGUilIxRVEa8vz+eNZxd65I7r1n7XNvbr7v1+u87jn7nHvW3vvs4dlrPWttc3dEREREpHrtWnoGRERERNoKBVYiIiIimSiwEhEREclEgZWIiIhIJgqsRERERDKpa+kZAFhmmWW8d+/eLT0bIiIiIvM1ZcqUt929+9zeaxWBVe/evZk8eXJLz4aIiIjIfJnZq1/1npoCRURERDJRYCUiIiKSiQIrERERkUxaRY6ViIhIazVr1iymT5/OJ5980tKzIjXWuXNnevbsSYcOHRr9PwqsRERE5mH69OksscQS9O7dGzNr6dmRGnF33nnnHaZPn84qq6zS6P9TU6CIiMg8fPLJJ3Tr1k1B1ULGzOjWrVuTayoVWImIiMyHgqqFU3N+dwVWIiIiIpkox0pERKQJeh93W9bve2XcdvP9jJlx5JFHcvrppwNw2mmn8eGHH/Kzn/2s6vL33Xdftt9+e3bZZZeqv2terr32WsaOHctyyy3HvffeW2pZAGPHjmXTTTdlyy23LL2sItVYiYiItHKdOnXi+uuv5+23327pWZnDZ5991ujPjh8/nosuuqgmQRXAz3/+85oHVaDASkREpNWrq6tjzJgxnHHGGV96b9999+W666774vXiiy8OwH333ceQIUMYMWIEffr04bjjjmPixIkMHjyYtdZai5deeumL//nTn/7EoEGDWH311bn11lsB+Pzzzzn66KNZf/31GTBgAL/73e+++N5NNtmEHXfckf79+39pfq666irWWmst1lxzTY499lgggpyHHnqI/fffn6OPPnqOzzd2Pl955RWGDh3KgAED2GKLLfjnP//JzJkzWXnllZk9ezYAH330Eb169WLWrFlzrJcpU6YwZMgQ1ltvPYYNG8Ybb7wBwNlnn03//v0ZMGAAu+++ezN+mS9TU6CIZFFN80hjmkJEFnYHH3wwAwYM4Jhjjmn0//z9739n6tSpLL300vTp04cDDjiAxx57jLPOOotzzjmHM888E4ig5bHHHuOll15i8803Z9q0aVx22WV06dKFv/71r3z66adsvPHGbL311gA8/vjjPP30018ahuBf//oXxx57LFOmTGGppZZi66235sYbb2Ts2LHcc889nHbaaQwaNKhZ83nooYcyatQoRo0axcUXX8xhhx3GjTfeyMCBA7n//vvZfPPNufXWWxk2bNgc407NmjWLQw89lJtuuonu3btz9dVXc8IJJ3DxxRczbtw4/vGPf9CpUyfef//95vwsX6IaKxERkQXAkksuyT777MPZZ5/d6P9Zf/31WX755enUqROrrrrqF4HRWmutxSuvvPLF50aOHEm7du3o27cvffr04bnnnuPOO+/ksssuY+DAgWywwQa88847vPjiiwAMHjx4rmM7/fWvf2WzzTaje/fu1NXVseeee/LAAw9kmc+//OUvfOc73wFg77335qGHHgJgt9124+qrrwZg0qRJ7LbbbnN89/PPP8/TTz/NVlttxcCBAznppJOYPn06AAMGDGDPPffkiiuuoK4uT12TaqxEREQWEEcccQTrrrsuo0eP/mJaXV3dF01hs2fP5n//+98X73Xq1OmL5+3atfvidbt27ebIj2o4rICZ4e6cc845DBs2bI737rvvPhZbbLF8C9WE+ZybHXfckeOPP553332XKVOmMHTo0Dned3e+/vWv85e//OVL/3vbbbfxwAMPcMstt3DyySfz1FNPVR1gqcZKRERkAbH00kszcuRIxo8f/8W03r17M2XKFABuvvlmZs2a1eTvvfbaa5k9ezYvvfQSL7/8Mv369WPYsGGcf/75X3zfCy+8wEcffTTP7xk8eDD3338/b7/9Np9//jlXXXUVQ4YMafL8zM1GG23EpEmTAJg4cSKbbLIJEDll66+/Pocffjjbb7897du3n+P/+vXrx4wZM74IrGbNmsUzzzzD7Nmzee2119h888055ZRTmDlzJh9++GHV86kaKxERkSZo6ZzAo446inPPPfeL1wceeCAjRoxg7bXXZptttmlWbdJKK63E4MGD+eCDD7jgggvo3LkzBxxwAK+88grrrrsu7k737t258cYb5/k9yy+/POPGjWPzzTfH3dluu+0YMWJEk+dnbs455xxGjx7N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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x360 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"XS70qUcRIHTc\"\n      },\n      \"source\": [\n        \"We can see that most of the movies belong to movie genre : **Drama** followed by **Comedy** then **Action, Romance and Thriller**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"v6VOyzlHKW69\"\n      },\n      \"source\": [\n        \"def star_based_visualization(dataframe):\\n\",\n        \"  dataframe['rating'].value_counts(sort=False).plot(kind='bar' ,figsize=(10,6), use_index = True, rot=0)\\n\",\n        \"  plt.title('Bar plot of rating frequency')\\n\",\n        \"  plt.xlabel('Rating')\\n\",\n        \"  plt.ylabel('Number of times a rating was given')\\n\",\n        \"  # label = list(dataframe['rating'].value_counts(sort=False))\\n\",\n        \"  plt.show()\\n\",\n        \"  print(\\\"Total number of users watched this Genre: \\\",len(dataframe))\\n\",\n        \"  print(\\\"  \\\")\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"-lyP4wzTFJ4O\"\n      },\n      \"source\": [\n        \"def recommendations_genre(genre):\\n\",\n        \"  x = genre\\n\",\n        \"  print(\\\"****************************     ******************************     ******************************\\\")\\n\",\n        \"  print(\\\"****************************     ****** GENRE: \\\", x,\\\" ******     ******************************\\\")\\n\",\n        \"  print(\\\"    \\\")\\n\",\n        \"  genre_based_movies = items_dataset[['movie id','movie title',x]]\\n\",\n        \"  genre_based_movies = genre_based_movies[genre_based_movies[x] == 1]\\n\",\n        \"  merged_genre_movies = pd.merge(dataset, genre_based_movies, how='inner', on='movie id')\\n\",\n        \"  # merged_genre_movies.head()\\n\",\n        \"\\n\",\n        \"  star_based_visualization(merged_genre_movies)\\n\",\n        \"  high_rated_movies = merged_genre_movies.groupby(['movie title']).agg({\\\"rating\\\":\\\"mean\\\"})['rating'].sort_values(ascending=False)\\n\",\n        \"  high_rated_movies = high_rated_movies.to_frame()\\n\",\n        \"  print(\\\"These are the top movies that can be naviely suggested to the new users for the requested movie genre:\\\", x, \\\". Recommendations based on top average ratings.\\\")\\n\",\n        \"  print(high_rated_movies.head(10))\\n\",\n        \"  print(\\\"****************************     ******************************     ******************************\\\")\\n\",\n        \"  popular_movies_ingenre = merged_genre_movies.groupby(['movie title']).agg({\\\"rating\\\":\\\"count\\\"})['rating'].sort_values(ascending=False)\\n\",\n        \"  popular_movies_ingenre = popular_movies_ingenre.to_frame()\\n\",\n        \"  popular_movies_ingenre.reset_index(level=0, inplace=True)\\n\",\n        \"  popular_movies_ingenre.columns = ['movie title', 'Number of Users watched']\\n\",\n        \"  print(\\\"These are the most popular movies which can be recommended to a new user in\\\",x,\\\"genre. Recommendations based on Popularity\\\")\\n\",\n        \"  print(popular_movies_ingenre.sort_values('Number of Users watched', ascending=False).head(10))\\n\",\n        \"  print(\\\"****************************     ******************************     ******************************\\\")\\n\",\n        \"  highly_rated_popular_movies = pd.merge(high_rated_movies, popular_movies_ingenre, how = 'inner', on='movie title')\\n\",\n        \"  # highly_rated_popular_movies.head(10)\\n\",\n        \"  viewer_limit = 300\\n\",\n        \"  ratings_limit = 4.0\\n\",\n        \"  count = 0\\n\",\n        \"  check = 0\\n\",\n        \"  while viewer_limit > 0 and ratings_limit > 0:\\n\",\n        \"    s = highly_rated_popular_movies[(highly_rated_popular_movies['Number of Users watched']>viewer_limit) & (highly_rated_popular_movies['rating']>=ratings_limit)]\\n\",\n        \"    if len(s) < 11:\\n\",\n        \"      if check == 0:\\n\",\n        \"        viewer_limit -= 50\\n\",\n        \"        check = 1\\n\",\n        \"      else:\\n\",\n        \"        ratings_limit -= 0.5\\n\",\n        \"        check = 0\\n\",\n        \"    else:\\n\",\n        \"      break\\n\",\n        \"  print(\\\"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\\")\\n\",\n        \"  print(\\\"These have rating more than \\\",ratings_limit,\\\" with atleast \\\",viewer_limit ,\\\" viewers.\\\")\\n\",\n        \"\\n\",\n        \"  print(\\\"**Recommendations based popularity and rating. These are top rated popular movies**\\\")\\n\",\n        \"  print(s)\\n\",\n        \"  print(\\\"****************************     ******************************     ******************************\\\")\\n\",\n        \"  print(\\\"                             \\\")\\n\",\n        \"  print(\\\"                             \\\")\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"BLmjabNKHJe8\",\n        \"outputId\": \"fbbc036c-c3d4-4422-ca3c-3b4189797ac2\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 1000\n        }\n      },\n      \"source\": [\n        \"for i in movie_genre_list[1:]:\\n\",\n        \"  recommendations_genre(i)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Action  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  25589\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Action . Recommendations based on top average ratings.\\n\",\n            \"                                   rating\\n\",\n            \"movie title                              \\n\",\n            \"Star Wars (1977)                 4.358491\\n\",\n            \"Godfather, The (1972)            4.283293\\n\",\n            \"Raiders of the Lost Ark (1981)   4.252381\\n\",\n            \"Titanic (1997)                   4.245714\\n\",\n            \"Empire Strikes Back, The (1980)  4.204360\\n\",\n            \"Boot, Das (1981)                 4.203980\\n\",\n            \"Godfather: Part II, The (1974)   4.186603\\n\",\n            \"African Queen, The (1951)        4.184211\\n\",\n            \"Princess Bride, The (1987)       4.172840\\n\",\n            \"Braveheart (1995)                4.151515\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Action genre. Recommendations based on Popularity\\n\",\n            \"                       movie title  Number of Users watched\\n\",\n            \"0                 Star Wars (1977)                      583\\n\",\n            \"1        Return of the Jedi (1983)                      507\\n\",\n            \"2             Air Force One (1997)                      431\\n\",\n            \"3    Independence Day (ID4) (1996)                      429\\n\",\n            \"4   Raiders of the Lost Ark (1981)                      420\\n\",\n            \"5            Godfather, The (1972)                      413\\n\",\n            \"6                 Rock, The (1996)                      378\\n\",\n            \"7  Empire Strikes Back, The (1980)                      367\\n\",\n            \"8  Star Trek: First Contact (1996)                      365\\n\",\n            \"9                   Titanic (1997)                      350\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  4.0  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                          movie title    rating  Number of Users watched\\n\",\n            \"0                    Star Wars (1977)  4.358491                      583\\n\",\n            \"1               Godfather, The (1972)  4.283293                      413\\n\",\n            \"2      Raiders of the Lost Ark (1981)  4.252381                      420\\n\",\n            \"3                      Titanic (1997)  4.245714                      350\\n\",\n            \"4     Empire Strikes Back, The (1980)  4.204360                      367\\n\",\n            \"8          Princess Bride, The (1987)  4.172840                      324\\n\",\n            \"9                   Braveheart (1995)  4.151515                      297\\n\",\n            \"11               Fugitive, The (1993)  4.044643                      336\\n\",\n            \"12                       Alien (1979)  4.034364                      291\\n\",\n            \"13          Return of the Jedi (1983)  4.007890                      507\\n\",\n            \"14  Terminator 2: Judgment Day (1991)  4.006780                      295\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Adventure  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  13753\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Adventure . Recommendations based on top average ratings.\\n\",\n            \"                                            rating\\n\",\n            \"movie title                                       \\n\",\n            \"Star Kid (1997)                           5.000000\\n\",\n            \"Star Wars (1977)                          4.358491\\n\",\n            \"Raiders of the Lost Ark (1981)            4.252381\\n\",\n            \"Lawrence of Arabia (1962)                 4.231214\\n\",\n            \"Empire Strikes Back, The (1980)           4.204360\\n\",\n            \"African Queen, The (1951)                 4.184211\\n\",\n            \"Princess Bride, The (1987)                4.172840\\n\",\n            \"Great Escape, The (1963)                  4.104839\\n\",\n            \"Treasure of the Sierra Madre, The (1948)  4.100000\\n\",\n            \"Wizard of Oz, The (1939)                  4.077236\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Adventure genre. Recommendations based on Popularity\\n\",\n            \"                                    movie title  Number of Users watched\\n\",\n            \"0                              Star Wars (1977)                      583\\n\",\n            \"1                     Return of the Jedi (1983)                      507\\n\",\n            \"2                Raiders of the Lost Ark (1981)                      420\\n\",\n            \"3                              Rock, The (1996)                      378\\n\",\n            \"4               Empire Strikes Back, The (1980)                      367\\n\",\n            \"5               Star Trek: First Contact (1996)                      365\\n\",\n            \"6                    Mission: Impossible (1996)                      344\\n\",\n            \"7     Indiana Jones and the Last Crusade (1989)                      331\\n\",\n            \"8  Willy Wonka and the Chocolate Factory (1971)                      326\\n\",\n            \"9                    Princess Bride, The (1987)                      324\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.5  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                                     movie title  ...  Number of Users watched\\n\",\n            \"1                               Star Wars (1977)  ...                      583\\n\",\n            \"2                 Raiders of the Lost Ark (1981)  ...                      420\\n\",\n            \"4                Empire Strikes Back, The (1980)  ...                      367\\n\",\n            \"6                     Princess Bride, The (1987)  ...                      324\\n\",\n            \"11                     Return of the Jedi (1983)  ...                      507\\n\",\n            \"15     Indiana Jones and the Last Crusade (1989)  ...                      331\\n\",\n            \"20                     Dances with Wolves (1990)  ...                      256\\n\",\n            \"23                           Men in Black (1997)  ...                      303\\n\",\n            \"24                          Jurassic Park (1993)  ...                      261\\n\",\n            \"25                              Rock, The (1996)  ...                      378\\n\",\n            \"27               Star Trek: First Contact (1996)  ...                      365\\n\",\n            \"28  Willy Wonka and the Chocolate Factory (1971)  ...                      326\\n\",\n            \"\\n\",\n            \"[12 rows x 3 columns]\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Animation  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  3605\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Animation . Recommendations based on top average ratings.\\n\",\n            \"                                                      rating\\n\",\n            \"movie title                                                 \\n\",\n            \"Close Shave, A (1995)                               4.491071\\n\",\n            \"Wrong Trousers, The (1993)                          4.466102\\n\",\n            \"Wallace & Gromit: The Best of Aardman Animation...  4.447761\\n\",\n            \"Faust (1994)                                        4.200000\\n\",\n            \"Grand Day Out, A (1992)                             4.106061\\n\",\n            \"Toy Story (1995)                                    3.878319\\n\",\n            \"Aladdin (1992)                                      3.812785\\n\",\n            \"Winnie the Pooh and the Blustery Day (1968)         3.800000\\n\",\n            \"Beauty and the Beast (1991)                         3.792079\\n\",\n            \"Lion King, The (1994)                               3.781818\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Animation genre. Recommendations based on Popularity\\n\",\n            \"                              movie title  Number of Users watched\\n\",\n            \"0                        Toy Story (1995)                      452\\n\",\n            \"1                   Lion King, The (1994)                      220\\n\",\n            \"2                          Aladdin (1992)                      219\\n\",\n            \"3             Beauty and the Beast (1991)                      202\\n\",\n            \"4                         Fantasia (1940)                      174\\n\",\n            \"5  Snow White and the Seven Dwarfs (1937)                      172\\n\",\n            \"6  Beavis and Butt-head Do America (1996)                      156\\n\",\n            \"7                       Cinderella (1950)                      129\\n\",\n            \"8     Hunchback of Notre Dame, The (1996)                      127\\n\",\n            \"9        James and the Giant Peach (1996)                      126\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  2.5  with atleast  100  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                               movie title    rating  Number of Users watched\\n\",\n            \"0                    Close Shave, A (1995)  4.491071                      112\\n\",\n            \"1               Wrong Trousers, The (1993)  4.466102                      118\\n\",\n            \"5                         Toy Story (1995)  3.878319                      452\\n\",\n            \"6                           Aladdin (1992)  3.812785                      219\\n\",\n            \"8              Beauty and the Beast (1991)  3.792079                      202\\n\",\n            \"9                    Lion King, The (1994)  3.781818                      220\\n\",\n            \"10                         Fantasia (1940)  3.770115                      174\\n\",\n            \"11  Snow White and the Seven Dwarfs (1937)  3.709302                      172\\n\",\n            \"12                        Pinocchio (1940)  3.673267                      101\\n\",\n            \"15                       Cinderella (1950)  3.581395                      129\\n\",\n            \"17                            Dumbo (1941)  3.495935                      123\\n\",\n            \"20     Hunchback of Notre Dame, The (1996)  3.377953                      127\\n\",\n            \"26        James and the Giant Peach (1996)  3.126984                      126\\n\",\n            \"33  Beavis and Butt-head Do America (1996)  2.788462                      156\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Children  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  7182\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Children . Recommendations based on top average ratings.\\n\",\n            \"                                               rating\\n\",\n            \"movie title                                          \\n\",\n            \"Star Kid (1997)                              5.000000\\n\",\n            \"Wizard of Oz, The (1939)                     4.077236\\n\",\n            \"Babe (1995)                                  3.995434\\n\",\n            \"Toy Story (1995)                             3.878319\\n\",\n            \"E.T. the Extra-Terrestrial (1982)            3.833333\\n\",\n            \"Aladdin (1992)                               3.812785\\n\",\n            \"Winnie the Pooh and the Blustery Day (1968)  3.800000\\n\",\n            \"Beauty and the Beast (1991)                  3.792079\\n\",\n            \"Lion King, The (1994)                        3.781818\\n\",\n            \"Fantasia (1940)                              3.770115\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Children genre. Recommendations based on Popularity\\n\",\n            \"                                    movie title  Number of Users watched\\n\",\n            \"0                              Toy Story (1995)                      452\\n\",\n            \"1  Willy Wonka and the Chocolate Factory (1971)                      326\\n\",\n            \"2             E.T. the Extra-Terrestrial (1982)                      300\\n\",\n            \"3                      Wizard of Oz, The (1939)                      246\\n\",\n            \"4                         Lion King, The (1994)                      220\\n\",\n            \"5                                   Babe (1995)                      219\\n\",\n            \"6                                Aladdin (1992)                      219\\n\",\n            \"7                   Beauty and the Beast (1991)                      202\\n\",\n            \"8                          Fly Away Home (1996)                      180\\n\",\n            \"9                           Mary Poppins (1964)                      178\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.0  with atleast  150  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                                     movie title  ...  Number of Users watched\\n\",\n            \"1                       Wizard of Oz, The (1939)  ...                      246\\n\",\n            \"2                                    Babe (1995)  ...                      219\\n\",\n            \"3                               Toy Story (1995)  ...                      452\\n\",\n            \"4              E.T. the Extra-Terrestrial (1982)  ...                      300\\n\",\n            \"5                                 Aladdin (1992)  ...                      219\\n\",\n            \"7                    Beauty and the Beast (1991)  ...                      202\\n\",\n            \"8                          Lion King, The (1994)  ...                      220\\n\",\n            \"9                                Fantasia (1940)  ...                      174\\n\",\n            \"10                           Mary Poppins (1964)  ...                      178\\n\",\n            \"11        Snow White and the Seven Dwarfs (1937)  ...                      172\\n\",\n            \"15  Willy Wonka and the Chocolate Factory (1971)  ...                      326\\n\",\n            \"16                          Fly Away Home (1996)  ...                      180\\n\",\n            \"\\n\",\n            \"[12 rows x 3 columns]\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Comedy  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  29832\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Comedy . Recommendations based on top average ratings.\\n\",\n            \"                              rating\\n\",\n            \"movie title                         \\n\",\n            \"Santa with Muscles (1996)   5.000000\\n\",\n            \"Close Shave, A (1995)       4.491071\\n\",\n            \"Wrong Trousers, The (1993)  4.466102\\n\",\n            \"North by Northwest (1959)   4.284916\\n\",\n            \"Shall We Dance? (1996)      4.260870\\n\",\n            \"As Good As It Gets (1997)   4.196429\\n\",\n            \"Cinema Paradiso (1988)      4.173554\\n\",\n            \"Princess Bride, The (1987)  4.172840\\n\",\n            \"Waiting for Guffman (1996)  4.127660\\n\",\n            \"A Chef in Love (1996)       4.125000\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Comedy genre. Recommendations based on Popularity\\n\",\n            \"                                    movie title  Number of Users watched\\n\",\n            \"0                              Liar Liar (1997)                      485\\n\",\n            \"1                              Toy Story (1995)                      452\\n\",\n            \"2                     Back to the Future (1985)                      350\\n\",\n            \"3  Willy Wonka and the Chocolate Factory (1971)                      326\\n\",\n            \"4                    Princess Bride, The (1987)                      324\\n\",\n            \"5                           Forrest Gump (1994)                      321\\n\",\n            \"6        Monty Python and the Holy Grail (1974)                      316\\n\",\n            \"7                        Full Monty, The (1997)                      315\\n\",\n            \"8                           Men in Black (1997)                      303\\n\",\n            \"9                          Birdcage, The (1996)                      293\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.5  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                                      movie title  ...  Number of Users watched\\n\",\n            \"7                      Princess Bride, The (1987)  ...                      324\\n\",\n            \"14         Monty Python and the Holy Grail (1974)  ...                      316\\n\",\n            \"45                         Full Monty, The (1997)  ...                      315\\n\",\n            \"49                 When Harry Met Sally... (1989)  ...                      290\\n\",\n            \"55                               Toy Story (1995)  ...                      452\\n\",\n            \"58                         Raising Arizona (1987)  ...                      256\\n\",\n            \"61                            Forrest Gump (1994)  ...                      321\\n\",\n            \"63                     Blues Brothers, The (1980)  ...                      251\\n\",\n            \"64                      Back to the Future (1985)  ...                      350\\n\",\n            \"79                           Groundhog Day (1993)  ...                      280\\n\",\n            \"82                            Men in Black (1997)  ...                      303\\n\",\n            \"102            Four Weddings and a Funeral (1994)  ...                      251\\n\",\n            \"106  Willy Wonka and the Chocolate Factory (1971)  ...                      326\\n\",\n            \"\\n\",\n            \"[13 rows x 3 columns]\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Crime  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  8055\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Crime . Recommendations based on top average ratings.\\n\",\n            \"                                   rating\\n\",\n            \"movie title                              \\n\",\n            \"They Made Me a Criminal (1939)   5.000000\\n\",\n            \"Usual Suspects, The (1995)       4.385768\\n\",\n            \"Letter From Death Row, A (1998)  4.333333\\n\",\n            \"Godfather, The (1972)            4.283293\\n\",\n            \"Crossfire (1947)                 4.250000\\n\",\n            \"Godfather: Part II, The (1974)   4.186603\\n\",\n            \"L.A. Confidential (1997)         4.161616\\n\",\n            \"Fargo (1996)                     4.155512\\n\",\n            \"Laura (1944)                     4.100000\\n\",\n            \"Once Were Warriors (1994)        4.064516\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Crime genre. Recommendations based on Popularity\\n\",\n            \"                      movie title  Number of Users watched\\n\",\n            \"0                    Fargo (1996)                      508\\n\",\n            \"1           Godfather, The (1972)                      413\\n\",\n            \"2             Pulp Fiction (1994)                      394\\n\",\n            \"3        L.A. Confidential (1997)                      297\\n\",\n            \"4      Usual Suspects, The (1995)                      267\\n\",\n            \"5               Sting, The (1973)                      241\\n\",\n            \"6            Seven (Se7en) (1995)                      236\\n\",\n            \"7               GoodFellas (1990)                      226\\n\",\n            \"8                     Heat (1995)                      223\\n\",\n            \"9  Godfather: Part II, The (1974)                      209\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.0  with atleast  200  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                       movie title    rating  Number of Users watched\\n\",\n            \"1       Usual Suspects, The (1995)  4.385768                      267\\n\",\n            \"3            Godfather, The (1972)  4.283293                      413\\n\",\n            \"5   Godfather: Part II, The (1974)  4.186603                      209\\n\",\n            \"6         L.A. Confidential (1997)  4.161616                      297\\n\",\n            \"7                     Fargo (1996)  4.155512                      508\\n\",\n            \"10             Pulp Fiction (1994)  4.060914                      394\\n\",\n            \"11               Sting, The (1973)  4.058091                      241\\n\",\n            \"19               GoodFellas (1990)  3.951327                      226\\n\",\n            \"21            Seven (Se7en) (1995)  3.847458                      236\\n\",\n            \"31                     Heat (1995)  3.569507                      223\\n\",\n            \"40                   Batman (1989)  3.427861                      201\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Documentary  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  758\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Documentary . Recommendations based on top average ratings.\\n\",\n            \"                                                      rating\\n\",\n            \"movie title                                                 \\n\",\n            \"Great Day in Harlem, A (1994)                       5.000000\\n\",\n            \"Marlene Dietrich: Shadow and Light (1996)           5.000000\\n\",\n            \"Maya Lin: A Strong Clear Vision (1994)              4.500000\\n\",\n            \"Everest (1998)                                      4.500000\\n\",\n            \"Hoop Dreams (1994)                                  4.094017\\n\",\n            \"Paradise Lost: The Child Murders at Robin Hood ...  4.050000\\n\",\n            \"When We Were Kings (1996)                           4.045455\\n\",\n            \"Nico Icon (1995)                                    4.000000\\n\",\n            \"Wonderful, Horrible Life of Leni Riefenstahl, T...  4.000000\\n\",\n            \"Gate of Heavenly Peace, The (1995)                  4.000000\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Documentary genre. Recommendations based on Popularity\\n\",\n            \"                                movie title  Number of Users watched\\n\",\n            \"0                        Hoop Dreams (1994)                      117\\n\",\n            \"1                              Crumb (1994)                       81\\n\",\n            \"2              Celluloid Closet, The (1995)                       56\\n\",\n            \"3                Looking for Richard (1996)                       55\\n\",\n            \"4                      Koyaanisqatsi (1983)                       53\\n\",\n            \"5                 When We Were Kings (1996)                       44\\n\",\n            \"6                Thin Blue Line, The (1988)                       35\\n\",\n            \"7       Fast, Cheap & Out of Control (1997)                       32\\n\",\n            \"8                   Paris Is Burning (1990)                       27\\n\",\n            \"9  Microcosmos: Le peuple de l'herbe (1996)                       24\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  1.5  with atleast  0  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                     movie title    rating  Number of Users watched\\n\",\n            \"4             Hoop Dreams (1994)  4.094017                      117\\n\",\n            \"13  Celluloid Closet, The (1995)  3.892857                       56\\n\",\n            \"16                  Crumb (1994)  3.790123                       81\\n\",\n            \"20    Looking for Richard (1996)  3.727273                       55\\n\",\n            \"23          Koyaanisqatsi (1983)  3.490566                       53\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Drama  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  39895\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Drama . Recommendations based on top average ratings.\\n\",\n            \"                                                     rating\\n\",\n            \"movie title                                                \\n\",\n            \"Prefontaine (1997)                                 5.000000\\n\",\n            \"Entertaining Angels: The Dorothy Day Story (1996)  5.000000\\n\",\n            \"Someone Else's America (1995)                      5.000000\\n\",\n            \"They Made Me a Criminal (1939)                     5.000000\\n\",\n            \"Aiqing wansui (1994)                               5.000000\\n\",\n            \"Saint of Fort Washington, The (1993)               5.000000\\n\",\n            \"Pather Panchali (1955)                             4.625000\\n\",\n            \"Some Mother's Son (1996)                           4.500000\\n\",\n            \"Anna (1996)                                        4.500000\\n\",\n            \"Schindler's List (1993)                            4.466443\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Drama genre. Recommendations based on Popularity\\n\",\n            \"                        movie title  Number of Users watched\\n\",\n            \"0                    Contact (1997)                      509\\n\",\n            \"1                      Fargo (1996)                      508\\n\",\n            \"2       English Patient, The (1996)                      481\\n\",\n            \"3             Godfather, The (1972)                      413\\n\",\n            \"4               Pulp Fiction (1994)                      394\\n\",\n            \"5             Twelve Monkeys (1995)                      392\\n\",\n            \"6  Silence of the Lambs, The (1991)                      390\\n\",\n            \"7              Jerry Maguire (1996)                      384\\n\",\n            \"8                Chasing Amy (1997)                      379\\n\",\n            \"9   Empire Strikes Back, The (1980)                      367\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  4.0  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                               movie title    rating  Number of Users watched\\n\",\n            \"9                  Schindler's List (1993)  4.466443                      298\\n\",\n            \"11        Shawshank Redemption, The (1994)  4.445230                      283\\n\",\n            \"18  One Flew Over the Cuckoo's Nest (1975)  4.291667                      264\\n\",\n            \"19        Silence of the Lambs, The (1991)  4.289744                      390\\n\",\n            \"20                   Godfather, The (1972)  4.283293                      413\\n\",\n            \"24                          Titanic (1997)  4.245714                      350\\n\",\n            \"26         Empire Strikes Back, The (1980)  4.204360                      367\\n\",\n            \"34                          Amadeus (1984)  4.163043                      276\\n\",\n            \"35                            Fargo (1996)  4.155512                      508\\n\",\n            \"37                       Braveheart (1995)  4.151515                      297\\n\",\n            \"54                     Pulp Fiction (1994)  4.060914                      394\\n\",\n            \"63            Sense and Sensibility (1995)  4.011194                      268\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Fantasy  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  1352\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Fantasy . Recommendations based on top average ratings.\\n\",\n            \"                                       rating\\n\",\n            \"movie title                                  \\n\",\n            \"Star Kid (1997)                      5.000000\\n\",\n            \"E.T. the Extra-Terrestrial (1982)    3.833333\\n\",\n            \"Heavenly Creatures (1994)            3.671429\\n\",\n            \"20,000 Leagues Under the Sea (1954)  3.500000\\n\",\n            \"Jumanji (1995)                       3.312500\\n\",\n            \"Mask, The (1994)                     3.193798\\n\",\n            \"Dragonheart (1996)                   3.082278\\n\",\n            \"Warriors of Virtue (1997)            3.000000\\n\",\n            \"FairyTale: A True Story (1997)       2.966667\\n\",\n            \"Escape to Witch Mountain (1975)      2.966667\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Fantasy genre. Recommendations based on Popularity\\n\",\n            \"                           movie title  Number of Users watched\\n\",\n            \"0    E.T. the Extra-Terrestrial (1982)                      300\\n\",\n            \"1          Nutty Professor, The (1996)                      163\\n\",\n            \"2                   Dragonheart (1996)                      158\\n\",\n            \"3                     Mask, The (1994)                      129\\n\",\n            \"4                       Jumanji (1995)                       96\\n\",\n            \"5                     Space Jam (1996)                       93\\n\",\n            \"6  20,000 Leagues Under the Sea (1954)                       72\\n\",\n            \"7            Heavenly Creatures (1994)                       70\\n\",\n            \"8                       Flubber (1997)                       53\\n\",\n            \"9   Indian in the Cupboard, The (1995)                       39\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  1.5  with atleast  0  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                            movie title    rating  Number of Users watched\\n\",\n            \"1     E.T. the Extra-Terrestrial (1982)  3.833333                      300\\n\",\n            \"2             Heavenly Creatures (1994)  3.671429                       70\\n\",\n            \"3   20,000 Leagues Under the Sea (1954)  3.500000                       72\\n\",\n            \"4                        Jumanji (1995)  3.312500                       96\\n\",\n            \"5                      Mask, The (1994)  3.193798                      129\\n\",\n            \"6                    Dragonheart (1996)  3.082278                      158\\n\",\n            \"10          Nutty Professor, The (1996)  2.914110                      163\\n\",\n            \"12                     Space Jam (1996)  2.774194                       93\\n\",\n            \"13                       Flubber (1997)  2.754717                       53\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Film-Noir  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  1733\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Film-Noir . Recommendations based on top average ratings.\\n\",\n            \"                                    rating\\n\",\n            \"movie title                               \\n\",\n            \"Manchurian Candidate, The (1962)  4.259542\\n\",\n            \"Crossfire (1947)                  4.250000\\n\",\n            \"Maltese Falcon, The (1941)        4.210145\\n\",\n            \"Sunset Blvd. (1950)               4.200000\\n\",\n            \"L.A. Confidential (1997)          4.161616\\n\",\n            \"Blade Runner (1982)               4.138182\\n\",\n            \"Chinatown (1974)                  4.136054\\n\",\n            \"Notorious (1946)                  4.115385\\n\",\n            \"Laura (1944)                      4.100000\\n\",\n            \"Big Sleep, The (1946)             4.027397\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Film-Noir genre. Recommendations based on Popularity\\n\",\n            \"                        movie title  Number of Users watched\\n\",\n            \"0          L.A. Confidential (1997)                      297\\n\",\n            \"1               Blade Runner (1982)                      275\\n\",\n            \"2                  Chinatown (1974)                      147\\n\",\n            \"3        Maltese Falcon, The (1941)                      138\\n\",\n            \"4  Manchurian Candidate, The (1962)                      131\\n\",\n            \"5              Grifters, The (1990)                       89\\n\",\n            \"6                  Cape Fear (1962)                       86\\n\",\n            \"7           Mulholland Falls (1996)                       82\\n\",\n            \"8             Big Sleep, The (1946)                       73\\n\",\n            \"9                    Hoodlum (1997)                       73\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  2.0  with atleast  50  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                         movie title    rating  Number of Users watched\\n\",\n            \"0   Manchurian Candidate, The (1962)  4.259542                      131\\n\",\n            \"2         Maltese Falcon, The (1941)  4.210145                      138\\n\",\n            \"3                Sunset Blvd. (1950)  4.200000                       65\\n\",\n            \"4           L.A. Confidential (1997)  4.161616                      297\\n\",\n            \"5                Blade Runner (1982)  4.138182                      275\\n\",\n            \"6                   Chinatown (1974)  4.136054                      147\\n\",\n            \"7                   Notorious (1946)  4.115385                       52\\n\",\n            \"9              Big Sleep, The (1946)  4.027397                       73\\n\",\n            \"14                  Cape Fear (1962)  3.523256                       86\\n\",\n            \"16              Grifters, The (1990)  3.483146                       89\\n\",\n            \"17      Devil in a Blue Dress (1995)  3.385965                       57\\n\",\n            \"19                    Hoodlum (1997)  2.931507                       73\\n\",\n            \"20           Mulholland Falls (1996)  2.878049                       82\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Horror  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAmoAAAGDCAYAAACbcTyoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3debRlZX3m8e9jMYgig1BBqKIsVLSDE9IlYmsSxRZBEIxxgDggwRATUIx2KxoVolExcY62SpqKEBUkaLSMqEEFaVuRSWR0qEaQqjApMgsI/PqP/V45Vda9dWo49+xb9/tZ66yzz7un37mn1qpnvft9905VIUmSpP55wLgLkCRJ0qoZ1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkkYuyaeS/N00neuPk1yd5LYkTxrROb6a5OARHfsvk1zX6t9mFOeQNHMY1KRZIMmVSX7d/vP/VZKvJNlx3HWtSpJK8qh1OMT7gCOqavOq+sF6qOeYJJ8ebKuqfarqhHU99irOtTHwAWCvVv8v1/c5JM0sBjVp9nheVW0ObA9cB/zj2hwkyUbrtar17+HApcNs2MPvsh3wQCapv4f1Shoxg5o0y1TVncCpwC4TbUn2TfKDJLe0y4bHDKxb2Hq5Dk3yc+BbKx8zyTOSLEvyliS/aD14L52shiR/nmRpkhuTLEmyQ2s/q23yw9b795JV7PuAJG9NclWS65OcmGTLJJsmuQ2Y0/b/f5Ocu5IcnuSnwE9b24fb974lyflJ/qC17w28BXhJq+eHrf3MJK9qy69M8p0k72u9lT9Lss/A+XZKclaSW5N8I8nHVu6ha9s9Gvhx+3hTkm9NUe9+SS5MclOS7yZ5wsBxnpTkgna+zyU5eeKy80Stq/h7PKotb9q+x8/b5ddPJNlspd/4De3vfk2SQwaOs1mS97ff5eb2N9ms9d6+ZqVzXpTkj1f1+0hakUFNmmWSPAh4CXD2QPPtwCuArYB9gb9M8vyVdv0j4PeB50xy6IcB2wLzgIOB45I8ZhXn3xN4D/Biut69q4CTAarqD9tmT2yX/j63ivO8sr2eCTwC2Bz4aFXd1XoMJ/Z/5CR1AjwfeAr3h9VzgV2BhwKfBf41yQOr6mvAu4HPtXqeOMnxnkIXsrYF/h44Pknaus8C5wDbAMcAL1/VAarqJ8Bj28etqmrPVdWbbtzdYuAv2jE/CSxpIWsT4IvAv7Tv8q/An0zxd1jZscCj29/iUXS/5dsH1j8M2LK1Hwp8LMnWbd37gP8K/Ld27jcC9wEnAC+bOECSJ7b9v7IGdUmzlkFNmj2+mOQm4Gbg2cA/TKyoqjOr6uKquq+qLgJOogtmg46pqtur6tdTnONtLTB9m+4/4hevYpuXAour6oKqugt4M/DUJAuH/B4vBT5QVVdU1W1t/wPX8LLge6rqxonvUlWfrqpfVtU9VfV+YFPgd0LmFK6qqn+qqnvpgsn2wHZJFgBPBt5eVXdX1XeAJWtw3FXVexjwyar6flXd28bK3QXs0V4bAx+qqt9U1al0IXS1WrA8DPjrdq5b6ULqgQOb/QZ4Rzv2acBtwGOSPAD4M+DIqlre6vpu+32XAI9OsnM7xsvpgu/da/F3kGYdg5o0ezy/qraiGwN1BPDtJA8DSPKUJGckuSHJzcCr6XqHBl29muP/qqpuH/h8FbDDKrbboa0DoIWtX9L1sgxjhf3b8kZ047uGtcJ3SfI/klzeLtndRNdrtPL3n8q1EwtVdUdb3LzVeuNA2++cey3qfTjwhnbZ86ZW747tXDsAy6uqBrYf/FtNZS7wIOD8geN+rbVP+GVV3TPw+Q6677kt3b+r37nc3C61fw54WQt0B9H1+EkagkFNmmVab8cXgHuBp7fmz9L1fOxYVVsCnwCy8q6rOfTWSR488HkB8J+r2O4/6cIGAG2fbYDlQ36FFfZv57mHboLEsH77Xdp4tDfS9f5t3cLszdz//Vf3vadyDfDQdrl5wtrMth2s4WrgXVW11cDrQVV1UjvfvIHLrtD9fSbcThfGAJgI6s0vgF8Djx047pYDl5On8gvgTmCyy80n0PWEPgu4o6q+N8QxJWFQk2addA4AtgYub80Poev5uTPJ7sCfruXh/zbJJi387Ec3RmplJwGHJNk1yaZ0l9e+X1VXtvXX0Y09m8xJwF+3Qfqbc/8Ysnum2GcqD6ELejcAGyV5O7DFwPrrgIWtN2iNVNVVwHnAMe3v8lTgeWtZ54R/Al7dekGT5MHpJoM8BPhe+y6vTbJxkhcAuw/s+0Pgse1v/0C6MXMTtd7Xjv3BJL8HkGReksnGJA5+z/voxs19IMkOSeYkeWr7fWnB7D7g/dibJq0Rg5o0e3w53azIW4B3AQdX1cRtIP4KeEeSW+kGj5+yFse/FvgVXY/XZ4BXV9WPVt6oqr4BvA34PF0P0CNZcRzUMcAJ7fLbqsa4Lab7z/4s4Gd0PTmvWcV2w/o63SW+n9BdJryTFS81ToTNXya5YC2O/1LgqXSXd/+O7jLgXWtbbFWdB/w58FG6v/dSuskVtHFfL2ifb6SbNPKFgX1/ArwD+AbdDNIVZoACb2rHOzvJLW27Ycfq/Q/gYroxcTcC72XF/2NOBB4P/M6MV0mTy4pDGSRpzSV5BvDpqpo/7lr6LsnngB9V1dHTdL5PAcuq6q3Tcb4p6ngFcFhVPX21G0v6LXvUJGmEkjw5ySPT3f9tb+AAultozBptjN5fAceNuxZppjGoSdJoPQw4k+5WFh8B/nJ9PNpqpmhj3G6gG+v32TGXI804XvqUJEnqKXvUJEmSesqgJkmS1FNr8siVGWPbbbethQsXjrsMSZKk1Tr//PN/UVVzV7VugwxqCxcu5Lzzzht3GZIkSauVZNJHvXnpU5IkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPjSyoJVmc5Pokl6zU/pokP0pyaZK/H2h/c5KlSX6c5DkD7Xu3tqVJjhpVvZIkSX2z0QiP/Sngo8CJEw1JngkcADyxqu5K8nutfRfgQOCxwA7AN5I8uu32MeDZwDLg3CRLquqyEda9xhYe9ZVxlzBSVx6777hLkCRpVhpZUKuqs5IsXKn5L4Fjq+quts31rf0A4OTW/rMkS4Hd27qlVXUFQJKT27a9CmqSJEmjMN1j1B4N/EGS7yf5dpInt/Z5wNUD2y1rbZO1/44khyU5L8l5N9xwwwhKlyRJml7THdQ2Ah4K7AH8T+CUJFkfB66q46pqUVUtmjt37vo4pCRJ0liNcozaqiwDvlBVBZyT5D5gW2A5sOPAdvNbG1O0S5IkbdCmu0fti8AzAdpkgU2AXwBLgAOTbJpkJ2Bn4BzgXGDnJDsl2YRuwsGSaa5ZkiRpLEbWo5bkJOAZwLZJlgFHA4uBxe2WHXcDB7fetUuTnEI3SeAe4PCqurcd5wjg68AcYHFVXTqqmiVJkvpklLM+D5pk1csm2f5dwLtW0X4acNp6LE2SJGlG8MkEkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk+N7FmfkiRpw7XwqK+Mu4SRuvLYfcddAmCPmiRJUm8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk+NLKglWZzk+iSXrGLdG5JUkm3b5yT5SJKlSS5KstvAtgcn+Wl7HTyqeiVJkvpmlD1qnwL2XrkxyY7AXsDPB5r3AXZur8OAj7dtHwocDTwF2B04OsnWI6xZkiSpN0YW1KrqLODGVaz6IPBGoAbaDgBOrM7ZwFZJtgeeA5xeVTdW1a+A01lF+JMkSdoQTesYtSQHAMur6ocrrZoHXD3weVlrm6xdkiRpg7fRdJ0oyYOAt9Bd9hzF8Q+ju2zKggULRnEKSZKkaTWdPWqPBHYCfpjkSmA+cEGShwHLgR0Htp3f2iZr/x1VdVxVLaqqRXPnzh1B+ZIkSdNr2oJaVV1cVb9XVQuraiHdZczdqupaYAnwijb7cw/g5qq6Bvg6sFeSrdskgr1amyRJ0gZvlLfnOAn4HvCYJMuSHDrF5qcBVwBLgX8C/gqgqm4E3gmc217vaG2SJEkbvJGNUauqg1azfuHAcgGHT7LdYmDxei1OkiRpBvDJBJIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKkntpomI2SzAMePrh9VZ01qqIkSZI0RFBL8l7gJcBlwL2tuQCDmiRJ0ggN06P2fOAxVXXXqIuRJEnS/YYZo3YFsPGoC5EkSdKKhulRuwO4MMk3gd/2qlXVa0dWlSRJkoYKakvaS5IkSdNotUGtqk5IshmwoKp+PA01SZIkiSHGqCV5HnAh8LX2edck9rBJkiSN2DCTCY4BdgduAqiqC4FHjLAmSZIkMVxQ+01V3bxS232jKEaSJEn3G2YywaVJ/hSYk2Rn4LXAd0dbliRJkobpUXsN8Fi6W3N8FrgZeN0oi5IkSdJwPWr/par+BvibURcjSZKk+w3To/b+JJcneWeSx428IkmSJAFDBLWqeibwTOAG4JNJLk7y1pFXJkmSNMsN06NGVV1bVR8BXk13T7W3j7QqSZIkDXXD299PckySi4F/pJvxOX+I/RYnuT7JJQNt/5DkR0kuSvJvSbYaWPfmJEuT/DjJcwba925tS5MctcbfUJIkaYYapkdtMd3Nbp9TVc+oqo9X1fVD7PcpYO+V2k4HHldVTwB+ArwZIMkuwIF0s0v3Bv5XkjlJ5gAfA/YBdgEOattKkiRt8IZ51udT1+bAVXVWkoUrtf3HwMezgRe25QOAk6vqLuBnSZbSPQ0BYGlVXQGQ5OS27WVrU5MkSdJMMmlQS3JKVb24XfKswVVAtV6xdfFnwOfa8jy64DZhWWsDuHql9qdMUu9hwGEACxYsWMfSJEmSxm+qHrUj2/t+6/ukSf4GuAf4zPo6ZlUdBxwHsGjRolrN5pIkSb03aVCrqmva+1Xr84RJXkkX/p5VVROBajmw48Bm81sbU7RLkiRt0IaZ9XlrkltWel3dZm0+Yk1OlmRv4I3A/lV1x8CqJcCBSTZNshOwM3AOcC6wc5KdkmxCN+FgyZqcU5IkaaYa5hFSH6IbG/ZZuvFpBwKPBC6gmxH6jFXtlOSktm7bJMuAo+lmeW4KnJ4E4OyqenVVXZrkFLpJAvcAh1fVve04RwBfB+YAi6vq0rX6ppIkSTPMMEFt/6p64sDn45JcWFVvSvKWyXaqqoNW0Xz8FNu/C3jXKtpPA04bok5JkqQNyjD3UbsjyYuTPKC9Xgzc2dY5aF+SJGlEhglqLwVeDlwPXNeWX5ZkM+CIEdYmSZI0qw1zw9srgOdNsvo767ccSZIkTRjqoeySJEmafgY1SZKknjKoSZIk9dQwN7w9MskW6Ryf5IIke01HcZIkSbPZMD1qf1ZVtwB7AVvTzfo8dqRVSZIkaaiglvb+XOBf2pMBMsX2kiRJWg+GCWrnJ/kPuqD29SQPAe4bbVmSJEka5hFShwK7AldU1R1JtgEOGW1ZkiRJGuaGt/cl+Rnw6CQPnIaaJEmSxBBBLcmrgCOB+cCFwB7A94A9R1uaJEnS7DbMGLUjgScDV1XVM4EnATeNtCpJkiQNFdTurKo7AZJsWlU/Ah4z2rIkSZI0zGSCZUm2Ar4InJ7kV8BVoy1LkiRJw0wm+OO2eEySM4Atga+NtCpJkiQNNZngncBZwHer6tujL0mSJEkw3Bi1K4CDgPOSnJPk/UkOGHFdkiRJs95qg1pV/XNV/RnwTODTwIvauyRJkkZomEuf/xvYBbgO+D/AC4ELRlyXJEnSrDfMpc9tgDl09067EfhFVd0z0qokSZI0/KzPJL8PPAc4I8mcqpo/6uIkSZJms2Eufe4H/AHwh8BWwLfoLoFKkiRphIa54e3edMHsw1X1nyOuR5IkSc0wlz6PmI5CJEmStKJhJhNIkiRpDAxqkiRJPWVQkyRJ6qnVBrUkFye5aKXX/0nywSTbTLHf4iTXJ7lkoO2hSU5P8tP2vnVrT5KPJFnajr/bwD4Ht+1/muTgdf3CkiRJM8UwPWpfBb4CvLS9vgycB1wLfGqK/T5FN2N00FHAN6tqZ+Cb7TPAPsDO7XUY8HHogh1wNPAUYHfg6IlwJ0mStKEb5vYc/72qdhv4fHGSC6pqtyQvm2ynqjorycKVmg8AntGWTwDOBN7U2k+sqgLOTrJVku3btqdX1Y0ASU6nC38nDVG3JEnSjDZMj9qcJLtPfEjyZLpHSgGs6aOktquqa9rytcB2bXkecPXAdsta22TtkiRJG7xhetReBSxOsjkQ4BbgVUkeDLxnbU9cVZWk1nb/lSU5jO6yKQsWLFhfh5UkSRqb1faoVdW5VfV4YFfgiVX1hKo6p6pur6pT1vB817VLmrT361v7cmDHge3mt7bJ2ldV53FVtaiqFs2dO3cNy5IkSeqfYZ71uSnwJ8BCYKMkAFTVO9bifEuAg4Fj2/uXBtqPSHIy3cSBm6vqmiRfB949MIFgL+DNa3FeSZKkGWeYS59fAm4GzgfuGvbASU6imwywbZJldLM3jwVOSXIocBXw4rb5acBzgaXAHcAhAFV1Y5J3Aue27d4xMbFAkiRpQzdMUJtfVSvfZmO1quqgSVY9axXbFnD4JMdZDCxe0/NLkiTNdMPM+vxuksePvBJJkiStYJgetacDr0zyM7pLn6HrBHvCSCuTJEma5YYJavuMvApJkiT9jkmDWpItquoW4NZprEeSJEnNVD1qnwX2o5vtWXSXPCcU8IgR1iVJkjTrTRrUqmq/9r7T9JUjSZKkCaud9Znkm8O0SZIkaf2aaozaA4EH0d2wdmvuv/S5BT4YXZIkaeSmGqP2F8DrgB3oxqlNBLVbgI+OuC5JkqRZb6oxah8GPpzkNVX1j9NYkyRJkhjiPmpV9Y9JHgfsAjxwoP3EURYmSZI02602qCU5mu7h6rvQPTx9H+A7gEFNkiRphIZ51ucL6R6kfm1VHQI8EdhypFVJkiRpqKD266q6D7gnyRbA9cCOoy1LkiRJwzzr87wkWwH/RDf78zbgeyOtSpIkSVMHtSQB3lNVNwGfSPI1YIuqumhaqpMkSZrFpgxqVVVJTgMe3z5fOR1FSZIkabgxahckefLIK5EkSdIKhhmj9hTgpUmuAm6ne0JBVdUTRlqZJEnSLDdMUHvOyKuQpLW08KivjLuEkbny2H3HXYKkMRvmyQRXTUchkiRJWtEwY9QkSZI0BgY1SZKknjKoSZIk9dRqg1qSPZKcm+S2JHcnuTfJLdNRnCRJ0mw2TI/aR4GDgJ8CmwGvAj42yqIkSZI05KXPqloKzKmqe6vqn4G9R1uWJEmShrmP2h1JNgEuTPL3wDU4tk2SJGnkhglcL2/bHUH3ZIIdgT8ZZVGSJElasxve3gn87WjLkSRJ0oSxXMJM8tdJLk1ySZKTkjwwyU5Jvp9kaZLPtcutJNm0fV7a1i8cR82SJEnTbZgxautVknnAa4FdqurXSU4BDgSeC3ywqk5O8gngUODj7f1XVfWoJAcC7wVeMt11S5LWrw35Oa3gs1q1fqxRj1qSByTZYj2cdyNgsyQbAQ+im6CwJ3BqW38C8Py2fED7TFv/rCRZDzVIkiT12jA3vP1ski2SPBi4BLgsyf9c2xNW1XLgfcDP6QLazcD5wE1VdU/bbBkwry3PA65u+97Ttt9mFXUeluS8JOfdcMMNa1ueJElSbwzTo7ZLVd1C18P1VWAnupmgayXJ1nS9ZDsBOwAPZj3cl62qjquqRVW1aO7cuet6OEmSpLEbJqhtnGRjuqC2pKp+A9Q6nPO/Az+rqhvasb4APA3Yql0KBZgPLG/Ly+luCUJbvyXwy3U4vyRJ0owwTFD7JHAlXc/XWUkeDqzLsz5/DuyR5EFtrNmzgMuAM4AXtm0OBr7Ulpe0z7T136qqdQmKkiRJM8Jqg1pVfaSq5lXVc6tzFfDMtT1hVX2fblLABcDFrYbjgDcBr0+ylG4M2vFtl+OBbVr764Gj1vbckiRJM8lqb8+RZDvg3cAOVbVPkl2Ap3J/kFpjVXU0cPRKzVcAu69i2zuBF63tuSRJkmaqYS59fgr4Ot3Af4CfAK8bVUGSJEnqDBPUtq2qU4D74Le3yLh3pFVJkiRpqKB2e5JtaDM9k+xBdy8zSZIkjdAwj5B6Pd3My0cm+b/AXO6fnSlJkqQRWW1Qq6oLkvwR8BggwI/b/c8kSZI0QsPM+pxD98D0hW37vZJQVR8YcW2SJEmz2jCXPr8M3El3z7P7RluOJEmSJgwT1OZX1RNGXokkSZJWMMysz68m2WvklUiSJGkFw/SonQ38W5IHAL+hm1BQVbXFSCuTJEma5YYJah+ge2TUxT4MXZIkafoMc+nzauASQ5okSdL0GqZH7QrgzCRfBe6aaPT2HJIkSaM1TFD7WXtt0l6SJEmaBsM8meBvp6MQSZIkrWjSoJbkQ1X1uiRfpj2QfVBV7T/SyiRJkma5qXrU/qW9v286CpEkSdKKJg1qVXV+W9y1qj48uC7JkcC3R1mYJEnSbDfM7TkOXkXbK9dzHZIkSVrJVGPUDgL+FNgpyZKBVQ8Bbhx1YZIkSbPdVGPUvgtcA2wLvH+g/VbgolEWJUmSpKnHqF0FXEX3+ChJkiRNs2HGqEmSJGkMDGqSJEk9NWlQS/LN9v7e6StHkiRJE6aaTLB9kv8G7J/kZCCDK6vqgpFWJkmSNMtNFdTeDrwNmA98YKV1Bew5qqIkSZI09azPU4FTk7ytqt45jTVJkiSJqXvUAKiqdybZH/jD1nRmVf37aMuSJEnSamd9JnkPcCRwWXsdmeTdoy5MkiRpthvm9hz7As+uqsVVtRjYG9hvXU6aZKskpyb5UZLLkzw1yUOTnJ7kp+1967ZtknwkydIkFyXZbV3OLUmSNFMMex+1rQaWt1wP5/0w8LWq+i/AE4HLgaOAb1bVzsA322eAfYCd2+sw4OPr4fySJEm9t9oxasB7gB8kOYPuFh1/yP0hao0l2bId45UAVXU3cHeSA4BntM1OAM4E3gQcAJxYVQWc3Xrjtq+qa9a2BkmSpJlgmMkEJyU5E3hya3pTVV27DufcCbgB+OckTwTOpxsDt91A+LoW2K4tzwOuHth/WWtbIaglOYyux40FCxasQ3mSJEn9MNSlz6q6pqqWtNe6hDTowuFuwMer6knA7azUQ9d6z2pNDlpVx1XVoqpaNHfu3HUsUZIkafzG8azPZcCyqvp++3wqXXC7Lsn2AO39+rZ+ObDjwP7zW5skSdIGbdqDWuuRuzrJY1rTs+hu+7EEOLi1HQx8qS0vAV7RZn/uAdzs+DRJkjQbTDlGLckc4NI2O3N9eg3wmSSbAFcAh9CFxlOSHApcBby4bXsa8FxgKXBH21aSJGmDN2VQq6p7k/w4yYKq+vn6OmlVXQgsWsWqZ61i2wIOX1/nliRJmimGuT3H1sClSc6hG/gPQFXtP7KqJEmSNFRQe9vIq5AkSdLvGOY+at9O8nBg56r6RpIHAXNGX5okSdLsNsxD2f+c7hYan2xN84AvjrIoSZIkDXd7jsOBpwG3AFTVT4HfG2VRkiRJGi6o3dWexwlAko1Yw6cGSJIkac0NE9S+neQtwGZJng38K/Dl0ZYlSZKkYYLaUXQPUb8Y+Au6G9C+dZRFSZIkabhZn/clOQH4Pt0lzx+3m9BKkiRphFYb1JLsC3wC+H9AgJ2S/EVVfXXUxUmSJM1mw9zw9v3AM6tqKUCSRwJfAQxqkiRJIzTMGLVbJ0JacwVw64jqkSRJUjNpj1qSF7TF85KcBpxCN0btRcC501CbJEnSrDbVpc/nDSxfB/xRW74B2GxkFUnTbOFRXxl3CSN15bH7jrsESdJamjSoVdUh01mIJEmSVjTMrM+dgNcACwe3r6r9R1eWJEmShpn1+UXgeLqnEdw32nIkSZI0YZigdmdVfWTklUiSJGkFwwS1Dyc5GvgP4K6Jxqq6YGRVSZIkaaig9njg5cCe3H/ps9pnSZIkjcgwQe1FwCOq6u5RFyNJkqT7DfNkgkuArUZdiCRJklY0TI/aVsCPkpzLimPUvD2HJEnSCA0T1I4eeRWSJEn6HasNalX17ekoRJIkSSsa5skEt9LN8gTYBNgYuL2qthhlYZIkSbPdMD1qD5lYThLgAGCPURYlSZKk4WZ9/lZ1vgg8Z0T1SJIkqRnm0ucLBj4+AFgE3DmyiiRJkgQMN+vzeQPL9wBX0l3+XCdJ5gDnAcurar8kOwEnA9sA5wMvr6q7k2wKnAj8V+CXwEuq6sp1Pb8kSVLfDTNG7ZARnftI4HJgYlLCe4EPVtXJST4BHAp8vL3/qqoeleTAtt1LRlSTJElSb0wa1JK8fYr9qqreubYnTTIf2Bd4F/D6NklhT+BP2yYnAMfQBbUD2jLAqcBHk6SqCkmSpA3YVJMJbl/FC7oerjet43k/BLyR+x/yvg1wU1Xd0z4vA+a15XnA1QBt/c1te0mSpA3apD1qVfX+ieUkD6G7VHkI3Tiy90+23+ok2Q+4vqrOT/KMtT3OKo57GHAYwIIFC9bXYSVJksZmyttzJHlokr8DLqILdbtV1Zuq6vp1OOfTgP2TXEkX+vYEPgxslWQiOM4Hlrfl5cCOrZ6NgC3pJhWsoKqOq6pFVbVo7ty561CeJElSP0wa1JL8A3AucCvw+Ko6pqp+ta4nrKo3V9X8qloIHAh8q6peCpwBvLBtdjDwpba8pH2mrf+W49MkSdJsMFWP2huAHYC3Av+Z5Jb2ujXJLSOo5U10EwuW0o1BO761Hw9s09pfDxw1gnNLkiT1zlRj1NboqQVro6rOBM5sy1cAu69imzuBF426FkmSpL4ZeRiTJPWmctgAAAgMSURBVEnS2jGoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPTXtQS7JjkjOSXJbk0iRHtvaHJjk9yU/b+9atPUk+kmRpkouS7DbdNUuSJI3DOHrU7gHeUFW7AHsAhyfZBTgK+GZV7Qx8s30G2AfYub0OAz4+/SVLkiRNv2kPalV1TVVd0JZvBS4H5gEHACe0zU4Ant+WDwBOrM7ZwFZJtp/msiVJkqbdWMeoJVkIPAn4PrBdVV3TVl0LbNeW5wFXD+y2rLWtfKzDkpyX5LwbbrhhZDVLkiRNl7EFtSSbA58HXldVtwyuq6oCak2OV1XHVdWiqlo0d+7c9VipJEnSeIwlqCXZmC6kfaaqvtCar5u4pNner2/ty4EdB3af39okSZI2aOOY9RngeODyqvrAwKolwMFt+WDgSwPtr2izP/cAbh64RCpJkrTB2mgM53wa8HLg4iQXtra3AMcCpyQ5FLgKeHFbdxrwXGApcAdwyPSWK0mSNB7THtSq6jtAJln9rFVsX8DhIy1KkiSph3wygSRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT11IwJakn2TvLjJEuTHDXueiRJkkZtRgS1JHOAjwH7ALsAByXZZbxVSZIkjdaMCGrA7sDSqrqiqu4GTgYOGHNNkiRJIzVTgto84OqBz8tamyRJ0gYrVTXuGlYryQuBvavqVe3zy4GnVNURA9scBhzWPj4G+PG0Fzp9tgV+Me4itNb8/WYuf7uZzd9vZtuQf7+HV9XcVa3YaLorWUvLgR0HPs9vbb9VVccBx01nUeOS5LyqWjTuOrR2/P1mLn+7mc3fb2abrb/fTLn0eS6wc5KdkmwCHAgsGXNNkiRJIzUjetSq6p4kRwBfB+YAi6vq0jGXJUmSNFIzIqgBVNVpwGnjrqMnZsUl3g2Yv9/M5W83s/n7zWyz8vebEZMJJEmSZqOZMkZNkiRp1jGozUBJ5iT5QZJ/H3ctGl6SxUmuT3LJuGvRmktyZZKLk1yY5Lxx16PhJdkxyRlJLktyaZIjx12ThpPkgUnOSfLD9tv97bhrmm5e+pyBkrweWARsUVX7jbseDSfJHwK3ASdW1ePGXY/WTJIrgUVVtaHex2mDlWR7YPuquiDJQ4DzgedX1WVjLk2rkSTAg6vqtiQbA98Bjqyqs8dc2rSxR22GSTIf2Bf43+OuRWumqs4Cbhx3HdJsU1XXVNUFbflW4HJ8us2MUJ3b2seN22tW9TAZ1GaeDwFvBO4bdyHSLFPAfyQ5vz0JRTNQkoXAk4Dvj7cSDasN97kQuB44vapm1W9nUJtBkuwHXF9V54+7FmkWenpV7QbsAxzeLmVrBkmyOfB54HVVdcu469FwqureqtqV7qlEuyeZVUNHDGozy9OA/dtYmZOBPZN8erwlSbNDVS1v79cD/wbsPt6KtCba+KbPA5+pqi+Mux6tuaq6CTgD2HvctUwng9oMUlVvrqr5VbWQ7jFa36qql425LGmDl+TBbRA6SR4M7AU4e3eGaAPSjwcur6oPjLseDS/J3CRbteXNgGcDPxpvVdPLoCZNkyQnAd8DHpNkWZJDx12ThrYd8J0kPwTOAb5SVV8bc00a3tOAl9NdhbiwvZ477qI0lO2BM5JcRPfc79Oralbdmsrbc0iSJPWUPWqSJEk9ZVCTJEnqKYOaJElSTxnUJEmSesqgJkmS1FMGNUmzSpJ72+0ZLkny5Yl7NE2x/a6Dt3JIsn+So0ZfqSR5ew5Js0yS26pq87Z8AvCTqnrXFNu/ElhUVUdMU4mS9FsbjbsASRqj7wFPAEiyO/Bh4IHAr4FDgJ8B7wA2S/J04D3AZrTgluRTwC3AIuBhwBur6tQkDwA+CuwJXA38BlhcVadO43eTtAHw0qekWSnJHOBZwJLW9CPgD6rqScDbgXdX1d1t+XNVtWtVfW4Vh9oeeDqwH3Bsa3sBsBDYhe6O+E8d1feQtGGzR03SbLNZkguBecDlwOmtfUvghCQ7AwVsPOTxvlhV9wGXJdmutT0d+NfWfm2SM9Zf+ZJmE3vUJM02v66qXYGHAwEOb+3vBM6oqscBz6O7BDqMuwaWs96qlCQMapJmqaq6A3gt8IYkG9H1qC1vq185sOmtwEPW8PD/F/iTJA9ovWzPWLdqJc1WBjVJs1ZV/QC4CDgI+HvgPUl+wIrDQs4Admm39HjJkIf+PLAMuAz4NHABcPN6K1zSrOHtOSRpBJJsXlW3JdkGOAd4WlVdO+66JM0sTiaQpNH493Yz3U2AdxrSJK0Ne9QkSZJ6yjFqkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSe+v8G5Bb33L931gAAAABJRU5ErkJggg==\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  5317\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Horror . Recommendations based on top average ratings.\\n\",\n            \"                                                      rating\\n\",\n            \"movie title                                                 \\n\",\n            \"Psycho (1960)                                       4.100418\\n\",\n            \"Alien (1979)                                        4.034364\\n\",\n            \"Young Frankenstein (1974)                           3.945000\\n\",\n            \"Braindead (1992)                                    3.857143\\n\",\n            \"Shining, The (1980)                                 3.825243\\n\",\n            \"Birds, The (1963)                                   3.808642\\n\",\n            \"Jaws (1975)                                         3.775000\\n\",\n            \"Night Flier (1997)                                  3.714286\\n\",\n            \"Bride of Frankenstein (1935)                        3.608696\\n\",\n            \"Nosferatu (Nosferatu, eine Symphonie des Grauen...  3.555556\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Horror genre. Recommendations based on Popularity\\n\",\n            \"                         movie title  Number of Users watched\\n\",\n            \"0                      Scream (1996)                      478\\n\",\n            \"1                       Alien (1979)                      291\\n\",\n            \"2                        Jaws (1975)                      280\\n\",\n            \"3                      Psycho (1960)                      239\\n\",\n            \"4                Shining, The (1980)                      206\\n\",\n            \"5          Young Frankenstein (1974)                      200\\n\",\n            \"6       Devil's Advocate, The (1997)                      188\\n\",\n            \"7                  Birds, The (1963)                      162\\n\",\n            \"8  Interview with the Vampire (1994)                      137\\n\",\n            \"9         Alien: Resurrection (1997)                      124\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  2.5  with atleast  100  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                          movie title    rating  Number of Users watched\\n\",\n            \"0                       Psycho (1960)  4.100418                      239\\n\",\n            \"1                        Alien (1979)  4.034364                      291\\n\",\n            \"2           Young Frankenstein (1974)  3.945000                      200\\n\",\n            \"4                 Shining, The (1980)  3.825243                      206\\n\",\n            \"5                   Birds, The (1963)  3.808642                      162\\n\",\n            \"6                         Jaws (1975)  3.775000                      280\\n\",\n            \"12       Devil's Advocate, The (1997)  3.515957                      188\\n\",\n            \"13                      Carrie (1976)  3.504132                      121\\n\",\n            \"15                      Scream (1996)  3.441423                      478\\n\",\n            \"16            Army of Darkness (1993)  3.431034                      116\\n\",\n            \"21            Frighteners, The (1996)  3.234783                      115\\n\",\n            \"22                    Scream 2 (1997)  3.216981                      106\\n\",\n            \"24  Interview with the Vampire (1994)  3.182482                      137\\n\",\n            \"25  Nightmare on Elm Street, A (1984)  3.171171                      111\\n\",\n            \"26       Bram Stoker's Dracula (1992)  3.158333                      120\\n\",\n            \"28                  Craft, The (1996)  3.115385                      104\\n\",\n            \"29         Alien: Resurrection (1997)  3.096774                      124\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Musical  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"iVBORw0KGgoAAAANSUhEUgAAAmoAAAGDCAYAAACbcTyoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3debRkZX3v//fHZlSZhA5iN9ioyA3O3hbxahKVGwRBMcYBoogEQwZQTLxX0agYh4iJE0avSgIBojIEjbYRNYgoP6+iNIggg9qXQboFaUVmAYHv74/9HKlu+pyuHurUPn3er7VqnV3P3rX3t7pYi896hr1TVUiSJKl/HjTuAiRJkrRqBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmqSRS3JikndP07X+KMm1SW5L8pQRXePLSQ4e0bn/MsnPW/3bjuIakmYOg5o0CyS5Osmv2//8f5XkS0l2HHddq5KkkjxmHU7xfuCIqnpoVX1/PdTzjiSfGmyrqn2q6qR1PfcqrrUx8EFgr1b/L9f3NSTNLAY1afZ4QVU9FNgB+DnwT2tzkiQbrdeq1r9HApcOc2APv8v2wGZMUn8P65U0YgY1aZapqjuBM4DdJtqS7Jvk+0luacOG7xjYt6D1ch2a5KfA11c+Z5JnJ1ma5C1JftF68F4xWQ1J/izJkiQ3JlmU5BGt/dx2yA9a79/LV/HZByV5a5JrktyQ5OQkWyXZNMltwJz2+f83ybUryeFJfgL8pLUd2773LUkuSPJ7rX1v4C3Ay1s9P2jt30jymrb96iTfSvL+1lt5VZJ9Bq63c5Jzk9ya5GtJPrZyD1077rHAj9rbm5J8fYp690tyUZKbknw7yRMHzvOUJBe2652W5NSJYeeJWlfx7/GYtr1p+x4/bcOvn0iy+Uq/8Rvav/t1SQ4ZOM/mST7Qfpeb27/J5q339rUrXfPiJH+0qt9H0ooMatIsk+TBwMuB8waabwdeBWwN7Av8ZZIXrfTRPwB+F3jeJKd+OLAdMA84GDguya6ruP5zgfcCL6Pr3bsGOBWgqn6/HfakNvR32iqu8+r2eg7wKOChwEer6q7WYzjx+UdPUifAi4Cnc39YPR94MvAw4DPAvyfZrKq+Avw9cFqr50mTnO/pdCFrO+AfgOOTpO37DPA9YFvgHcBBqzpBVf0YeFx7u3VVPXdV9aabd3cC8OftnJ8EFrWQtQnweeDf2nf5d+CPp/h3WNkxwGPbv8Vj6H7Ltw/sfziwVWs/FPhYkm3avvcD/x34H+3abwTuA04CXjlxgiRPap//0hrUJc1aBjVp9vh8kpuAm4E/BP5xYkdVfaOqLqmq+6rqYuAUumA26B1VdXtV/XqKa7ytBaZv0v2P+GWrOOYVwAlVdWFV3QW8GXhGkgVDfo9XAB+sqiur6rb2+QPWcFjwvVV148R3qapPVdUvq+qeqvoAsCnwgJA5hWuq6p+r6l66YLIDsH2SnYCnAW+vqrur6lvAojU476rqPQz4ZFV9t6rubXPl7gL2aK+NgQ9X1W+q6gy6ELpaLVgeBvx1u9atdCH1gIHDfgO8s537TOA2YNckDwL+FDiyqpa1ur7dft9FwGOT7NLOcRBd8L17Lf4dpFnHoCbNHi+qqq3p5kAdAXwzycMBkjw9yTlJlie5GfgLut6hQdeu5vy/qqrbB95fAzxiFcc9ou0DoIWtX9L1sgxjhc+37Y3o5ncNa4XvkuR/Jbm8DdndRNdrtPL3n8r1ExtVdUfbfGir9caBtgdcey3qfSTwhjbseVOrd8d2rUcAy6qqBo4f/LeaylzgwcAFA+f9Smuf8Muqumfg/R1033M7uv+uHjDc3IbaTwNe2QLdgXQ9fpKGYFCTZpnW2/E54F7gWa35M3Q9HztW1VbAJ4Cs/NHVnHqbJA8ZeL8T8LNVHPczurABQPvMtsCyIb/CCp9v17mHboHEsH77Xdp8tDfS9f5t08Lszdz//Vf3vadyHfCwNtw8YW1W2w7WcC3wnqraeuD14Ko6pV1v3sCwK3T/PhNupwtjAEwE9eYXwK+Bxw2cd6uB4eSp/AK4E5hsuPkkup7QPYE7quo7Q5xTEgY1adZJZ39gG+Dy1rwFXc/PnUl2B/5kLU//d0k2aeFnP7o5Uis7BTgkyZOTbEo3vPbdqrq67f853dyzyZwC/HWbpP9Q7p9Dds8Un5nKFnRBbzmwUZK3A1sO7P85sKD1Bq2RqroGWAy8o/27PAN4wVrWOeGfgb9ovaBJ8pB0i0G2AL7Tvsvrkmyc5MXA7gOf/QHwuPZvvxndnLmJWu9r5/5Qkt8BSDIvyWRzEge/53108+Y+mOQRSeYkeUb7fWnB7D7gA9ibJq0Rg5o0e3wx3arIW4D3AAdX1cRtIP4KeGeSW+kmj5++Fue/HvgVXY/Xp4G/qKorVj6oqr4GvA34LF0P0KNZcR7UO4CT2vDbqua4nUD3P/tzgavoenJeu4rjhvVVuiG+H9MNE97JikONE2Hzl0kuXIvzvwJ4Bt3w7rvphgHvWttiq2ox8GfAR+n+vZfQLa6gzft6cXt/I92ikc8NfPbHwDuBr9GtIF1hBSjwpna+85Lc0o4bdq7e/wIuoZsTdyPwPlb8f8zJwBOAB6x4lTS5rDiVQZLWXJJnA5+qqvnjrqXvkpwGXFFVR0/T9U4EllbVW6fjelPU8SrgsKp61moPlvRb9qhJ0ggleVqSR6e7/9vewP50t9CYNdocvb8Cjht3LdJMY1CTpNF6OPANultZfAT4y/XxaKuZos1xW0431+8zYy5HmnEc+pQkSeope9QkSZJ6yqAmSZLUU2vyyJUZY7vttqsFCxaMuwxJkqTVuuCCC35RVXNXtW+DDGoLFixg8eLF4y5DkiRptZJM+qg3hz4lSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqac2GncBG4IFR31p3CWM1NXH7DvuEiRJmpXsUZMkSeqpkQW1JCckuSHJD1dqf22SK5JcmuQfBtrfnGRJkh8led5A+96tbUmSo0ZVryRJUt+McujzROCjwMkTDUmeA+wPPKmq7kryO619N+AA4HHAI4CvJXls+9jHgD8ElgLnJ1lUVZeNsG5JkqReGFlQq6pzkyxYqfkvgWOq6q52zA2tfX/g1NZ+VZIlwO5t35KquhIgyantWIOaJEna4E33HLXHAr+X5LtJvpnkaa19HnDtwHFLW9tk7Q+Q5LAki5MsXr58+QhKlyRJml7THdQ2Ah4G7AH8b+D0JFkfJ66q46pqYVUtnDt37vo4pSRJ0lhN9+05lgKfq6oCvpfkPmA7YBmw48Bx81sbU7RLkiRt0Ka7R+3zwHMA2mKBTYBfAIuAA5JsmmRnYBfge8D5wC5Jdk6yCd2Cg0XTXLMkSdJYjKxHLckpwLOB7ZIsBY4GTgBOaLfsuBs4uPWuXZrkdLpFAvcAh1fVve08RwBfBeYAJ1TVpaOqWZIkqU9GuerzwEl2vXKS498DvGcV7WcCZ67H0iRJkmYEn0wgSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST210ahOnOQEYD/ghqp6/Er73gC8H5hbVb9IEuBY4PnAHcCrq+rCduzBwFvbR99dVSeNqmZJkjScBUd9adwljNTVx+w77hKA0faonQjsvXJjkh2BvYCfDjTvA+zSXocBH2/HPgw4Gng6sDtwdJJtRlizJElSb4wsqFXVucCNq9j1IeCNQA207Q+cXJ3zgK2T7AA8Dzirqm6sql8BZ7GK8CdJkrQhmtY5akn2B5ZV1Q9W2jUPuHbg/dLWNlm7JEnSBm9kc9RWluTBwFvohj1Hcf7D6IZN2WmnnUZxCUmSpGk1nT1qjwZ2Bn6Q5GpgPnBhkocDy4AdB46d39oma3+AqjquqhZW1cK5c+eOoHxJkqTpNW1BraouqarfqaoFVbWAbhjzqVV1PbAIeFU6ewA3V9V1wFeBvZJs0xYR7NXaJEmSNngjC2pJTgG+A+yaZGmSQ6c4/EzgSmAJ8M/AXwFU1Y3Au4Dz2+udrU2SJGmDN7I5alV14Gr2LxjYLuDwSY47AThhvRYnSZI0A/hkAkmSpJ4yqEmSJPWUQU2SJKmnDGqSJEk9ZVCTJEnqKYOaJElSTxnUJEmSesqgJkmS1FMGNUmSpJ4yqEmSJPWUQU2SJKmnhnrWZ5J5wCMHj6+qc0dVlCRJkoYIakneB7wcuAy4tzUXYFCTJEkaoWF61F4E7FpVd426GEmSJN1vmDlqVwIbj7oQSZIkrWiYHrU7gIuSnA38tletql43sqokSZI0VFBb1F6SJEmaRqsNalV1UpLNgZ2q6kfTUJMkSZIYYo5akhcAFwFfae+fnMQeNkmSpBEbZjHBO4DdgZsAquoi4FEjrEmSJEkMF9R+U1U3r9R23yiKkSRJ0v2GWUxwaZI/AeYk2QV4HfDt0ZYlSZKkYXrUXgs8ju7WHJ8BbgZeP8qiJEmSNFyP2n+rqr8F/nbUxUiSJOl+w/SofSDJ5UneleTxI69IkiRJwBBBraqeAzwHWA58MsklSd468sokSZJmuWF61Kiq66vqI8Bf0N1T7e0jrUqSJElD3fD2d5O8I8klwD/RrficP/LKJEmSZrlhFhOcAJwGPK+qfjbieiRJktQMM0ftGVX14TUNaUlOSHJDkh8OtP1jkiuSXJzkP5JsPbDvzUmWJPlRkucNtO/d2pYkOWpNapAkSZrJJg1qSU5vfy9pwWridUmSi4c494nA3iu1nQU8vqqeCPwYeHO7xm7AAXT3a9sb+D9J5iSZA3wM2AfYDTiwHStJkrTBm2ro88j2d7+1OXFVnZtkwUpt/zXw9jzgJW17f+DUqroLuCrJErrniwIsqaorAZKc2o69bG1qkiRJmkkmDWpVdV37e82Irv2ndHPfAObRBbcJS1sbwLUrtT99RPVIkiT1yjCrPm9NcstKr2vbHLNHrc1Fk/wtcA/w6bX5/CTnPCzJ4iSLly9fvr5OK0mSNDbDrPr8MF1P1meA0M0lezRwId2K0GevyQWTvJpuOHXPqqrWvAzYceCw+a2NKdpXUFXHAccBLFy4sFZ1jCRJ0kwyzA1vX1hVn6yqW6vqlhaInldVpwHbrMnFkuwNvLGd846BXYuAA5JsmmRnYBfge8D5wC5Jdk6yCV1IXLQm15QkSZqphglqdyR5WZIHtdfLgDvbvkl7rpKcAnwH2DXJ0iSHAh8FtgDOSnJRkk8AVNWlwOl0iwS+AhxeVfdW1T3AEcBXgcuB09uxkiRJG7xhhj5fARwL/B+6YHYe8Mokm9OFqFWqqgNX0Xz8FMe/B3jPKtrPBM4cok5JkqQNymqDWrs1xgsm2f2t9VuOJEmSJgz1UHZJkiRNP4OaJElSTxnUJEmSemqYG94emWTLdI5PcmGSvaajOEmSpNlsmB61P62qW4C96O6bdhBwzEirkiRJ0lBBLe3v84F/a/cxyxTHS5IkaT0YJqhdkOS/6ILaV5NsAdw32rIkSZI0zA1vDwWeDFxZVXck2RY4ZLRlSZIkaZgb3t6X5CrgsUk2m4aaJEmSxBBBLclrgCOB+cBFwB50z/B87mhLkyRJmt2GmaN2JPA04Jqqeg7wFOCmkVYlSZKkoYLanVV1J0CSTavqCmDX0ZYlSZKkYRYTLE2yNfB54KwkvwKuGW1ZkiRJGmYxwR+1zXckOQfYCvjKSKuSJEnSUIsJ3gWcC3y7qr45+pIkSZIEw81RuxI4EFic5HtJPpBk/xHXJUmSNOutNqhV1b9W1Z8CzwE+Bby0/ZUkSdIIDTP0+S/AbsDPgf8PeAlw4YjrkiRJmvWGGfrcFphDd++0G4FfVNU9I61KkiRJw6/6TPK7wPOAc5LMqar5oy5OkiRpNhtm6HM/4PeA3we2Br5ONwQqSZKkERrmhrd70wWzY6vqZyOuR5IkSc0wQ59HTEchkrQ2Fhz1pXGXMDJXH7PvuEuQNGbDLCaQJEnSGBjUJEmSesqgJkmS1FPDrPq8BKiVmm8GFgPvrqpfjqIwSZKk2W6YVZ9fBu4FPtPeHwA8GLgeOBF4wUgqkyRJmuWGGfr8n1X15qq6pL3+FviDqnofsGCyDyU5IckNSX440PawJGcl+Un7u01rT5KPJFmS5OIkTx34zMHt+J8kOXjtv6okSdLMMkxQm5Nk94k3SZ5G90gpgKkeJXUi3T3YBh0FnF1VuwBnt/cA+wC7tNdhwMfbtR4GHA08HdgdOHoi3EmSJG3ohglqrwGOT3JVkquB44E/S/IQ4L2TfaiqzqV7Nuig/YGT2vZJwIsG2k+uznnA1kl2oHtk1VlVdWNV/Qo4iweGP0mSpA3SMDe8PR94QpKt2vubB3afvobX276qrmvb1wPbt+15wLUDxy1tbZO1S5IkbfCGWfW5KfDHdPPRNkoCQFW9c10uXFWVZOXVpGstyWF0w6bstNNO6+u0kiRJYzPM0OcX6IYm7wFuH3itjZ+3IU3a3xta+zJgx4Hj5re2ydofoKqOq6qFVbVw7ty5a1meJElSfwxze475VbW+5oUtAg4Gjml/vzDQfkSSU+kWDtxcVdcl+Srw9wMLCPYC3ryeapEkSeq1YYLat5M8oaouWZMTJzkFeDawXZKldKs3jwFOT3IocA3wsnb4mcDzgSXAHcAhAFV1Y5J3Aee3495ZVSsvUJAkSdogDRPUngW8OslVwF1A6KaYPXGqD1XVgZPs2nMVxxZw+CTnOQE4YYg6JUmSNijDBLV9Rl6FJEmSHmDSoJZky6q6Bbh1GuuRJElSM1WP2meA/YAL6B7KnoF9BTxqhHVJkiTNepMGtarar/3defrKkSRJ0oTV3kctydnDtEmSJGn9mmqO2mbAg+lur7EN9w99bomPcZIkSRq5qeao/TnweuARdPPUJoLaLcBHR1yXJEnSrDfVHLVjgWOTvLaq/mkaa5IkSRJD3Eetqv4pyeOB3YDNBtpPHmVhkiRJs91qg1qSo+keBbUb3aOe9gG+BRjUJEmSRmi1qz6Bl9A99un6qjoEeBKw1UirkiRJ0lBB7ddVdR9wT5ItgRuAHUdbliRJkoZ51ufiJFsD/0y3+vM24DsjrUqSJElTB7UkAd5bVTcBn0jyFWDLqrp4WqqTJEmaxaYMalVVSc4EntDeXz0dRUmSJGm4OWoXJnnayCuRJEnSCoaZo/Z04BVJrgFup3tCQVXVE0damSRJ0iw3TFB73sirkCRJ0gMM82SCa6ajEEmSJK1omDlqkiRJGgODmiRJUk8Z1CRJknpqtUEtyR5Jzk9yW5K7k9yb5JbpKE6SJGk2G6ZH7aPAgcBPgM2B1wAfG2VRkiRJGnLos6qWAHOq6t6q+ldg79GWJUmSpGHuo3ZHkk2Ai5L8A3Adzm2TJEkauWEC10HtuCPonkywI/DHoyxKkiRJa3bD2zuBvxttOZIkSZrgEKYkSVJPGdQkSZJ6ao2CWpIHJdlyXS+a5K+TXJrkh0lOSbJZkp2TfDfJkiSntQUMJNm0vV/S9i9Y1+tLkiTNBMPc8PYzSbZM8hDgh8BlSf732l4wyTzgdcDCqno8MAc4AHgf8KGqegzwK+DQ9pFDgV+19g+14yRJkjZ4w/So7VZVtwAvAr4M7Ey3EnRdbARsnmQj4MF0t/x4LnBG239Sux7A/u09bf+eSbKO15ckSeq9YYLaxkk2pgtOi6rqN0Ct7QWrahnwfuCndAHtZuAC4KaquqcdthSY17bnAde2z97Tjt925fMmOSzJ4iSLly9fvrblSZIk9cYwQe2TwNXAQ4BzkzwSWOtnfSbZhq6XbGfgEe286/ykg6o6rqoWVtXCuXPnruvpJEmSxm61Qa2qPlJV86rq+dW5BnjOOlzzfwJXVdXy1jv3OeCZwNZtKBRgPrCsbS+ju8kubf9WwC/X4fqSJEkzwjCLCbZPcnySL7f3uwEHr8M1fwrskeTBba7ZnsBlwDnAS9oxBwNfaNuLBq73EuDrVbXWQ6+SJEkzxTBDnycCX6UbpgT4MfD6tb1gVX2XblHAhcAlrYbjgDcBf5NkCd0ctOPbR44Htm3tfwMctbbXliRJmkmGeSj7dlV1epI3QzehP8m963LRqjoaOHql5iuB3Vdx7J3AS9flepIkSTPRMD1qtyfZlrbSM8kedCsvJUmSNELD9Kj9Dd08sUcn+b/AXO6fSyZJkqQRWW1Qq6oLk/wBsCsQ4EdttaYkSZJGaLVBLckc4PnAgnb8Xkmoqg+OuDZJkqRZbZihzy8Cd9Kt0LxvtOVIkiRpwjBBbX5VPXHklUiSJGkFw6z6/HKSvUZeiSRJklYwTI/aecB/JHkQ8Bu6BQVVVVuOtDJJkqRZbpig9kHgGcAlPrpJkiRp+gwz9Hkt8ENDmiRJ0vQapkftSuAb7aHsd000ensOSZKk0RomqF3VXpu0lyRJkqbBME8m+LvpKESSJEkrmjSoJflwVb0+yRdpD2QfVFUvHGllkiRJs9xUPWr/1v6+fzoKkSRJ0oomDWpVdUHbfHJVHTu4L8mRwDdHWZgkSdJsN8ztOQ5eRdur13MdkiRJWslUc9QOBP4E2DnJooFdWwA3jrowSZKk2W6qOWrfBq4DtgM+MNB+K3DxKIuSJEnS1HPUrgGuoXt8lCRJkqbZMHPUJEmSNAYGNUmSpJ6aNKglObv9fd/0lSNJkqQJUy0m2CHJ/wBemORUIIM7q+rCkVYmSZI0y00V1N4OvA2YD3xwpX0FPHdURUmSJGnqVZ9nAGckeVtVvWsaa5IkSRJT96gBUFXvSvJC4Pdb0zeq6j9HW5YkSZJWu+ozyXuBI4HL2uvIJH8/6sIkSZJmu9X2qAH70j2Y/T6AJCcB3wfeMsrCJEmSZrth76O29cD2Vut60SRbJzkjyRVJLk/yjCQPS3JWkp+0v9u0Y5PkI0mWJLk4yVPX9fqSJEkzwTBB7b3A95Oc2HrTLgDes47XPRb4SlX9N+BJwOXAUcDZVbULcHZ7D7APsEt7HQZ8fB2vLUmSNCMMs5jglCTfAJ7Wmt5UVdev7QWTbEW3MOHV7fx3A3cn2R94djvsJOAbwJuA/YGTq6qA81pv3A5Vdd3a1iBJkjQTDDNHjRaKFq2na+4MLAf+NcmT6HrojgS2Hwhf1wPbt+15wLUDn1/a2lYIakkOo+txY6eddlpPpUqSJI3POJ71uRHwVODjVfUU4HbuH+YEoPWe1ZqctKqOq6qFVbVw7ty5661YSZKkcRlHUFsKLK2q77b3Z9AFt58n2QGg/b2h7V8G7Djw+fmtTZIkaYM2ZVBLMifJFevzgm1+27VJdm1Ne9Ldn20RcHBrOxj4QtteBLyqrf7cA7jZ+WmSJGk2mHKOWlXdm+RHSXaqqp+ux+u+Fvh0kk2AK4FD6ELj6UkOBa4BXtaOPRN4PrAEuKMdK0mStMEbZjHBNsClSb5HN58MgKp64dpetKouAhauYteeqzi2gMPX9lqSpH5acNSXxl3CSF19zL7jLkEbgGGC2ttGXoUkSZIeYJj7qH0zySOBXarqa0keDMwZfWmSJEmz2zAPZf8zupWZn2xN84DPj7IoSZIkDXd7jsOBZwK3AFTVT4DfGWVRkiRJGi6o3dUe8wRAko1Yw5vRSpIkac0NE9S+meQtwOZJ/hD4d+CLoy1LkiRJwwS1o+iezXkJ8Od09zV76yiLkiRJ0nCrPu9LchLwXbohzx+1e5tJkiRphFYb1JLsC3wC+H9AgJ2T/HlVfXnUxUmSJM1mw9zw9gPAc6pqCUCSRwNfAgxqkiRJIzTMHLVbJ0JacyVw64jqkSRJUjNpj1qSF7fNxUnOBE6nm6P2UuD8aahNkiRpVptq6PMFA9s/B/6gbS8HNh9ZRZIkSQKmCGpVdch0FiJJkqQVDbPqc2fgtcCCweOr6oWjK0uSJEnDrPr8PHA83dMI7httOZIkSZowTFC7s6o+MvJKJEmStIJhgtqxSY4G/gu4a6Kxqi4cWVWSJEkaKqg9ATgIeC73D31Wey9JkqQRGSaovRR4VFXdPepiJEmSdL9hnkzwQ2DrURciSZKkFQ3To7Y1cEWS81lxjpq355AkSRqhYYLa0SOvQpIkSQ+w2qBWVd+cjkIkSZK0omGeTHAr3SpPgE2AjYHbq2rLURYmSZI02w3To7bFxHaSAPsDe4yyKEmSJA236vO3qvN54HkjqkeSJEnNMEOfLx54+yBgIXDnyCqSJEkSMNyqzxcMbN8DXE03/ClJkqQRGmaO2iGjuHCSOcBiYFlV7ZdkZ+BUYFvgAuCgqro7yabAycB/B34JvLyqrh5FTZIkSX0yaVBL8vYpPldV9a51vPaRwOXAxOrR9wEfqqpTk3wCOBT4ePv7q6p6TJID2nEvX8drS5Ik9d5UiwluX8ULuuD0pnW5aJL5wL7Av7T3oXvI+xntkJOAF7Xt/dt72v492/GSJEkbtEl71KrqAxPbSbag6wE7hG548gOTfW5IHwbeCEzc+mNb4Kaquqe9XwrMa9vzgGtbTfckubkd/4vBEyY5DDgMYKeddlrH8iRJksZvyttzJHlYkncDF9OFuqdW1Zuq6oa1vWCS/YAbquqCtT3HqlTVcVW1sKoWzp07d32eWpIkaSymmqP2j8CLgeOAJ1TVbevpms8EXpjk+cBmdHPUjgW2TrJR61WbDyxrxy8DdgSWJtkI2IpuUYEkSdIGbaoetTcAjwDeCvwsyS3tdWuSW9b2glX15qqaX1ULgAOAr1fVK4BzgJe0ww4GvtC2F7X3tP1fr6pCkiRpAzfVHLU1emrBevAm4NQ21Pp94PjWfjzwb0mWADfShTtJkqQN3jA3vB2ZqvoG8I22fSWw+yqOuRN46bQWJkmS1APT3WsmSZKkIRnUJEmSeg+SOs0AAAgNSURBVMqgJkmS1FMGNUmSpJ4yqEmSJPWUQU2SJKmnDGqSJEk9ZVCTJEnqKYOaJElSTxnUJEmSesqgJkmS1FMGNUmSpJ4yqEmSJPWUQU2SJKmnDGqSJEk9ZVCTJEnqqY3GXYA0bguO+tK4Sxipq4/Zd9wlSJLWkj1qkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT1lEFNkiSppwxqkiRJPWVQkyRJ6imDmiRJUk8Z1CRJknpq2oNakh2TnJPksiSXJjmytT8syVlJftL+btPak+QjSZYkuTjJU6e7ZkmSpHEYR4/aPcAbqmo3YA/g8CS7AUcBZ1fVLsDZ7T3APsAu7XUY8PHpL1mSJGn6TXtQq6rrqurCtn0rcDkwD9gfOKkddhLwora9P3Bydc4Dtk6ywzSXLUmSNO3GOkctyQLgKcB3ge2r6rq263pg+7Y9D7h24GNLW5skSdIGbWxBLclDgc8Cr6+qWwb3VVUBtYbnOyzJ4iSLly9fvh4rlSRJGo+xBLUkG9OFtE9X1eda888nhjTb3xta+zJgx4GPz29tK6iq46pqYVUtnDt37uiKlyRJmibjWPUZ4Hjg8qr64MCuRcDBbftg4AsD7a9qqz/3AG4eGCKVJEnaYG00hms+EzgIuCTJRa3tLcAxwOlJDgWuAV7W9p0JPB9YAtwBHDK95UqSJI3HtAe1qvoWkEl277mK4ws4fKRFSZIk9ZBPJpAkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknjKoSZIk9ZRBTZIkqacMapIkST1lUJMkSeopg5okSVJPGdQkSZJ6yqAmSZLUUwY1SZKknpoxQS3J3kl+lGRJkqPGXY8kSdKozYiglmQO8DFgH2A34MAku423KkmSpNGaEUEN2B1YUlVXVtXdwKnA/mOuSZIkaaRmSlCbB1w78H5pa5MkSdpgparGXcNqJXkJsHdVvaa9Pwh4elUdMXDMYcBh7e2uwI+mvdDpsx3wi3EXobXm7zdz+dvNbP5+M9uG/Ps9sqrmrmrHRtNdyVpaBuw48H5+a/utqjoOOG46ixqXJIurauG469Da8febufztZjZ/v5lttv5+M2Xo83xglyQ7J9kEOABYNOaaJEmSRmpG9KhV1T1JjgC+CswBTqiqS8dcliRJ0kjNiKAGUFVnAmeOu46emBVDvBswf7+Zy99uZvP3m9lm5e83IxYTSJIkzUYzZY6aJEnSrGNQm4GSzEny/ST/Oe5aNLwkJyS5IckPx12L1lySq5NckuSiJIvHXY+Gl2THJOckuSzJpUmOHHdNGk6SzZJ8L8kP2m/3d+Ouabo59DkDJfkbYCGwZVXtN+56NJwkvw/cBpxcVY8fdz1aM0muBhZW1YZ6H6cNVpIdgB2q6sIkWwAXAC+qqsvGXJpWI0mAh1TVbUk2Br4FHFlV5425tGljj9oMk2Q+sC/wL+OuRWumqs4Fbhx3HdJsU1XXVdWFbftW4HJ8us2MUJ3b2tuN22tW9TAZ1GaeDwNvBO4bdyHSLFPAfyW5oD0JRTNQkgXAU4DvjrcSDatN97kIuAE4q6pm1W9nUJtBkuwH3FBVF4y7FmkWelZVPRXYBzi8DWVrBknyUOCzwOur6pZx16PhVNW9VfVkuqcS7Z5kVk0dMajNLM8EXtjmypwKPDfJp8ZbkjQ7VNWy9vcG4D+A3cdbkdZEm9/0WeDTVfW5cdejNVdVNwHnAHuPu5bpZFCbQarqzVU1v6oW0D1G6+tV9coxlyVt8JI8pE1CJ8lDgL0AV+/OEG1C+vHA5VX1wXHXo+ElmZtk67a9OfCHwBXjrWp6GdSkaZLkFOA7wK5JliY5dNw1aWjbA99K8gPge8CXquorY65Jw3smcBDdKMRF7fX8cReloewAnJPkYrrnfp9VVbPq1lTenkOSJKmn7FGTJEnqKYOaJElSTxnUJEmSesqgJkmS1FMGNUmSpJ4yqEmaVZLc227P8MMkX5y4R9MUxz958FYOSV6Y5KjRVypJ3p5D0iyT5LaqemjbPgn4cVW9Z4rjXw0srKojpqlESfqtjcZdgCSN0XeAJwIk2R04FtgM+DVwCHAV8E5g8yTPAt4LbE4LbklOBG4BFgIPB95YVWckeRDwUeC5wLXAb4ATquqMafxukjYADn1KmpWSzAH2BBa1piuA36uqpwBvB/6+qu5u26dV1ZOr6rRVnGoH4FnAfsAxre3FwAJgN7o74j9jVN9D0obNHjVJs83mSS4C5gGXA2e19q2Ak5LsAhSw8ZDn+3xV3QdclmT71vYs4N9b+/VJzll/5UuaTexRkzTb/Lqqngw8EghweGt/F3BOVT0eeAHdEOgw7hrYznqrUpIwqEmaparqDuB1wBuSbETXo7as7X71wKG3Alus4en/L/DHSR7UetmevW7VSpqtDGqSZq2q+j5wMXAg8A/Ae5N8nxWnhZwD7NZu6fHyIU/9WWApcBnwKeBC4Ob1VrikWcPbc0jSCCR5aFXdlmRb4HvAM6vq+nHXJWlmcTGBJI3Gf7ab6W4CvMuQJmlt2KMmSZLUU85RkyRJ6imDmiRJUk8Z1CRJknrKoCZJktRTBjVJkqSeMqhJkiT11P8PSD0jFrMKZVgAAAAASUVORK5CYII=\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  4954\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Musical . Recommendations based on top average ratings.\\n\",\n            \"                                rating\\n\",\n            \"movie title                           \\n\",\n            \"Wizard of Oz, The (1939)      4.077236\\n\",\n            \"Top Hat (1935)                4.047619\\n\",\n            \"Damsel in Distress, A (1937)  4.000000\\n\",\n            \"Singin' in the Rain (1952)    3.992701\\n\",\n            \"This Is Spinal Tap (1984)     3.905759\\n\",\n            \"Gay Divorcee, The (1934)      3.866667\\n\",\n            \"Blues Brothers, The (1980)    3.836653\\n\",\n            \"My Fair Lady (1964)           3.816000\\n\",\n            \"Aladdin (1992)                3.812785\\n\",\n            \"Beauty and the Beast (1991)   3.792079\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Musical genre. Recommendations based on Popularity\\n\",\n            \"                   movie title  Number of Users watched\\n\",\n            \"0                 Evita (1996)                      259\\n\",\n            \"1   Blues Brothers, The (1980)                      251\\n\",\n            \"2     Wizard of Oz, The (1939)                      246\\n\",\n            \"3   Sound of Music, The (1965)                      222\\n\",\n            \"4        Lion King, The (1994)                      220\\n\",\n            \"5               Aladdin (1992)                      219\\n\",\n            \"6  Beauty and the Beast (1991)                      202\\n\",\n            \"7    This Is Spinal Tap (1984)                      191\\n\",\n            \"8          Mary Poppins (1964)                      178\\n\",\n            \"9              Fantasia (1940)                      174\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.0  with atleast  150  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                               movie title    rating  Number of Users watched\\n\",\n            \"0                 Wizard of Oz, The (1939)  4.077236                      246\\n\",\n            \"4                This Is Spinal Tap (1984)  3.905759                      191\\n\",\n            \"6               Blues Brothers, The (1980)  3.836653                      251\\n\",\n            \"8                           Aladdin (1992)  3.812785                      219\\n\",\n            \"9              Beauty and the Beast (1991)  3.792079                      202\\n\",\n            \"10                   Lion King, The (1994)  3.781818                      220\\n\",\n            \"11                         Fantasia (1940)  3.770115                      174\\n\",\n            \"12              Sound of Music, The (1965)  3.765766                      222\\n\",\n            \"14                     Mary Poppins (1964)  3.724719                      178\\n\",\n            \"16  Snow White and the Seven Dwarfs (1937)  3.709302                      172\\n\",\n            \"35                           Grease (1978)  3.347059                      170\\n\",\n            \"38         Everyone Says I Love You (1996)  3.273810                      168\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Mystery  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  5245\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Mystery . Recommendations based on top average ratings.\\n\",\n            \"                               rating\\n\",\n            \"movie title                          \\n\",\n            \"Rear Window (1954)           4.387560\\n\",\n            \"Third Man, The (1949)        4.333333\\n\",\n            \"Vertigo (1958)               4.251397\\n\",\n            \"Maltese Falcon, The (1941)   4.210145\\n\",\n            \"Amadeus (1984)               4.163043\\n\",\n            \"L.A. Confidential (1997)     4.161616\\n\",\n            \"Thin Man, The (1934)         4.150000\\n\",\n            \"Chinatown (1974)             4.136054\\n\",\n            \"Laura (1944)                 4.100000\\n\",\n            \"Arsenic and Old Lace (1944)  4.078261\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Mystery genre. Recommendations based on Popularity\\n\",\n            \"                    movie title  Number of Users watched\\n\",\n            \"0    Mission: Impossible (1996)                      344\\n\",\n            \"1      L.A. Confidential (1997)                      297\\n\",\n            \"2      Conspiracy Theory (1997)                      295\\n\",\n            \"3                Amadeus (1984)                      276\\n\",\n            \"4  2001: A Space Odyssey (1968)                      259\\n\",\n            \"5              Game, The (1997)                      251\\n\",\n            \"6         Murder at 1600 (1997)                      218\\n\",\n            \"7            Rear Window (1954)                      209\\n\",\n            \"8  Devil's Advocate, The (1997)                      188\\n\",\n            \"9              Lone Star (1996)                      187\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.0  with atleast  150  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                     movie title    rating  Number of Users watched\\n\",\n            \"0             Rear Window (1954)  4.387560                      209\\n\",\n            \"2                 Vertigo (1958)  4.251397                      179\\n\",\n            \"4                 Amadeus (1984)  4.163043                      276\\n\",\n            \"5       L.A. Confidential (1997)  4.161616                      297\\n\",\n            \"10              Lone Star (1996)  4.053476                      187\\n\",\n            \"14  2001: A Space Odyssey (1968)  3.969112                      259\\n\",\n            \"23              Game, The (1997)  3.593625                      251\\n\",\n            \"27  Devil's Advocate, The (1997)  3.515957                      188\\n\",\n            \"28      Conspiracy Theory (1997)  3.423729                      295\\n\",\n            \"31               Cop Land (1997)  3.377143                      175\\n\",\n            \"36    Mission: Impossible (1996)  3.313953                      344\\n\",\n            \"43         Murder at 1600 (1997)  3.087156                      218\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Romance  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  19461\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Romance . Recommendations based on top average ratings.\\n\",\n            \"                                   rating\\n\",\n            \"movie title                              \\n\",\n            \"Casablanca (1942)                4.456790\\n\",\n            \"Star Wars (1977)                 4.358491\\n\",\n            \"Titanic (1997)                   4.245714\\n\",\n            \"Empire Strikes Back, The (1980)  4.204360\\n\",\n            \"Affair to Remember, An (1957)    4.192308\\n\",\n            \"African Queen, The (1951)        4.184211\\n\",\n            \"Cinema Paradiso (1988)           4.173554\\n\",\n            \"Princess Bride, The (1987)       4.172840\\n\",\n            \"Notorious (1946)                 4.115385\\n\",\n            \"Philadelphia Story, The (1940)   4.115385\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Romance genre. Recommendations based on Popularity\\n\",\n            \"                       movie title  Number of Users watched\\n\",\n            \"0                 Star Wars (1977)                      583\\n\",\n            \"1        Return of the Jedi (1983)                      507\\n\",\n            \"2      English Patient, The (1996)                      481\\n\",\n            \"3             Jerry Maguire (1996)                      384\\n\",\n            \"4               Chasing Amy (1997)                      379\\n\",\n            \"5  Empire Strikes Back, The (1980)                      367\\n\",\n            \"6                   Titanic (1997)                      350\\n\",\n            \"7       Princess Bride, The (1987)                      324\\n\",\n            \"8              Forrest Gump (1994)                      321\\n\",\n            \"9                Saint, The (1997)                      316\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.5  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                           movie title    rating  Number of Users watched\\n\",\n            \"1                     Star Wars (1977)  4.358491                      583\\n\",\n            \"2                       Titanic (1997)  4.245714                      350\\n\",\n            \"3      Empire Strikes Back, The (1980)  4.204360                      367\\n\",\n            \"7           Princess Bride, The (1987)  4.172840                      324\\n\",\n            \"19        Sense and Sensibility (1995)  4.011194                      268\\n\",\n            \"20           Return of the Jedi (1983)  4.007890                      507\\n\",\n            \"40      When Harry Met Sally... (1989)  3.910345                      290\\n\",\n            \"44                 Forrest Gump (1994)  3.853583                      321\\n\",\n            \"45                  Chasing Amy (1997)  3.839050                      379\\n\",\n            \"54                Groundhog Day (1993)  3.764286                      280\\n\",\n            \"60                Jerry Maguire (1996)  3.710938                      384\\n\",\n            \"64            Leaving Las Vegas (1995)  3.697987                      298\\n\",\n            \"67  Four Weddings and a Funeral (1994)  3.661355                      251\\n\",\n            \"69         English Patient, The (1996)  3.656965                      481\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Sci-Fi  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  12730\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Sci-Fi . Recommendations based on top average ratings.\\n\",\n            \"                                                      rating\\n\",\n            \"movie title                                                 \\n\",\n            \"Star Kid (1997)                                     5.000000\\n\",\n            \"Star Wars (1977)                                    4.358491\\n\",\n            \"Dr. Strangelove or: How I Learned to Stop Worry...  4.252577\\n\",\n            \"Empire Strikes Back, The (1980)                     4.204360\\n\",\n            \"Blade Runner (1982)                                 4.138182\\n\",\n            \"Alien (1979)                                        4.034364\\n\",\n            \"Return of the Jedi (1983)                           4.007890\\n\",\n            \"Terminator 2: Judgment Day (1991)                   4.006780\\n\",\n            \"2001: A Space Odyssey (1968)                        3.969112\\n\",\n            \"Aliens (1986)                                       3.947183\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Sci-Fi genre. Recommendations based on Popularity\\n\",\n            \"                       movie title  Number of Users watched\\n\",\n            \"0                 Star Wars (1977)                      583\\n\",\n            \"1                   Contact (1997)                      509\\n\",\n            \"2        Return of the Jedi (1983)                      507\\n\",\n            \"3    Independence Day (ID4) (1996)                      429\\n\",\n            \"4            Twelve Monkeys (1995)                      392\\n\",\n            \"5  Empire Strikes Back, The (1980)                      367\\n\",\n            \"6  Star Trek: First Contact (1996)                      365\\n\",\n            \"7        Back to the Future (1985)                      350\\n\",\n            \"8              Men in Black (1997)                      303\\n\",\n            \"9           Terminator, The (1984)                      301\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.5  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                          movie title    rating  Number of Users watched\\n\",\n            \"1                    Star Wars (1977)  4.358491                      583\\n\",\n            \"3     Empire Strikes Back, The (1980)  4.204360                      367\\n\",\n            \"4                 Blade Runner (1982)  4.138182                      275\\n\",\n            \"5                        Alien (1979)  4.034364                      291\\n\",\n            \"6           Return of the Jedi (1983)  4.007890                      507\\n\",\n            \"7   Terminator 2: Judgment Day (1991)  4.006780                      295\\n\",\n            \"8        2001: A Space Odyssey (1968)  3.969112                      259\\n\",\n            \"9                       Aliens (1986)  3.947183                      284\\n\",\n            \"11             Terminator, The (1984)  3.933555                      301\\n\",\n            \"15          Back to the Future (1985)  3.834286                      350\\n\",\n            \"16  E.T. the Extra-Terrestrial (1982)  3.833333                      300\\n\",\n            \"19                     Contact (1997)  3.803536                      509\\n\",\n            \"20              Twelve Monkeys (1995)  3.798469                      392\\n\",\n            \"23                Men in Black (1997)  3.745875                      303\\n\",\n            \"24               Jurassic Park (1993)  3.720307                      261\\n\",\n            \"25    Star Trek: First Contact (1996)  3.660274                      365\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Thriller  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  21872\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Thriller . Recommendations based on top average ratings.\\n\",\n            \"                                           rating\\n\",\n            \"movie title                                      \\n\",\n            \"Close Shave, A (1995)                    4.491071\\n\",\n            \"Rear Window (1954)                       4.387560\\n\",\n            \"Usual Suspects, The (1995)               4.385768\\n\",\n            \"Third Man, The (1949)                    4.333333\\n\",\n            \"Some Folks Call It a Sling Blade (1993)  4.292683\\n\",\n            \"Silence of the Lambs, The (1991)         4.289744\\n\",\n            \"North by Northwest (1959)                4.284916\\n\",\n            \"Manchurian Candidate, The (1962)         4.259542\\n\",\n            \"Vertigo (1958)                           4.251397\\n\",\n            \"Innocents, The (1961)                    4.250000\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Thriller genre. Recommendations based on Popularity\\n\",\n            \"                        movie title  Number of Users watched\\n\",\n            \"0                      Fargo (1996)                      508\\n\",\n            \"1                     Scream (1996)                      478\\n\",\n            \"2              Air Force One (1997)                      431\\n\",\n            \"3  Silence of the Lambs, The (1991)                      390\\n\",\n            \"4                  Rock, The (1996)                      378\\n\",\n            \"5              Fugitive, The (1993)                      336\\n\",\n            \"6                 Saint, The (1997)                      316\\n\",\n            \"7            Terminator, The (1984)                      301\\n\",\n            \"8          L.A. Confidential (1997)                      297\\n\",\n            \"9          Conspiracy Theory (1997)                      295\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.5  with atleast  250  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                          movie title    rating  Number of Users watched\\n\",\n            \"2          Usual Suspects, The (1995)  4.385768                      267\\n\",\n            \"5    Silence of the Lambs, The (1991)  4.289744                      390\\n\",\n            \"11           L.A. Confidential (1997)  4.161616                      297\\n\",\n            \"12                       Fargo (1996)  4.155512                      508\\n\",\n            \"20               Fugitive, The (1993)  4.044643                      336\\n\",\n            \"21                       Alien (1979)  4.034364                      291\\n\",\n            \"24  Terminator 2: Judgment Day (1991)  4.006780                      295\\n\",\n            \"34       2001: A Space Odyssey (1968)  3.969112                      259\\n\",\n            \"36                      Aliens (1986)  3.947183                      284\\n\",\n            \"37             Terminator, The (1984)  3.933555                      301\\n\",\n            \"39                   Apollo 13 (1995)  3.931159                      276\\n\",\n            \"54                   Rock, The (1996)  3.693122                      378\\n\",\n            \"58                      Ransom (1996)  3.644195                      267\\n\",\n            \"59               Air Force One (1997)  3.631090                      431\\n\",\n            \"65                   Game, The (1997)  3.593625                      251\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  War  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  9398\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: War . Recommendations based on top average ratings.\\n\",\n            \"                                                      rating\\n\",\n            \"movie title                                                 \\n\",\n            \"Schindler's List (1993)                             4.466443\\n\",\n            \"Casablanca (1942)                                   4.456790\\n\",\n            \"Star Wars (1977)                                    4.358491\\n\",\n            \"Dr. Strangelove or: How I Learned to Stop Worry...  4.252577\\n\",\n            \"Lawrence of Arabia (1962)                           4.231214\\n\",\n            \"Paths of Glory (1957)                               4.212121\\n\",\n            \"Empire Strikes Back, The (1980)                     4.204360\\n\",\n            \"Boot, Das (1981)                                    4.203980\\n\",\n            \"African Queen, The (1951)                           4.184211\\n\",\n            \"Bridge on the River Kwai, The (1957)                4.175758\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in War genre. Recommendations based on Popularity\\n\",\n            \"                       movie title  Number of Users watched\\n\",\n            \"0                 Star Wars (1977)                      583\\n\",\n            \"1        Return of the Jedi (1983)                      507\\n\",\n            \"2      English Patient, The (1996)                      481\\n\",\n            \"3    Independence Day (ID4) (1996)                      429\\n\",\n            \"4  Empire Strikes Back, The (1980)                      367\\n\",\n            \"5              Forrest Gump (1994)                      321\\n\",\n            \"6          Schindler's List (1993)                      298\\n\",\n            \"7                Braveheart (1995)                      297\\n\",\n            \"8                    Aliens (1986)                      284\\n\",\n            \"9                Casablanca (1942)                      243\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  3.5  with atleast  200  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                        movie title    rating  Number of Users watched\\n\",\n            \"0           Schindler's List (1993)  4.466443                      298\\n\",\n            \"1                 Casablanca (1942)  4.456790                      243\\n\",\n            \"2                  Star Wars (1977)  4.358491                      583\\n\",\n            \"6   Empire Strikes Back, The (1980)  4.204360                      367\\n\",\n            \"7                  Boot, Das (1981)  4.203980                      201\\n\",\n            \"10                Braveheart (1995)  4.151515                      297\\n\",\n            \"16            Apocalypse Now (1979)  4.045249                      221\\n\",\n            \"17        Return of the Jedi (1983)  4.007890                      507\\n\",\n            \"21                    Aliens (1986)  3.947183                      284\\n\",\n            \"22                   M*A*S*H (1970)  3.912621                      206\\n\",\n            \"24              Forrest Gump (1994)  3.853583                      321\\n\",\n            \"32      English Patient, The (1996)  3.656965                      481\\n\",\n            \"36        Courage Under Fire (1996)  3.610860                      221\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"****************************     ****** GENRE:  Western  ******     ******************************\\n\",\n            \"    \\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  1854\\n\",\n            \"  \\n\",\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Western . Recommendations based on top average ratings.\\n\",\n            \"                                             rating\\n\",\n            \"movie title                                        \\n\",\n            \"High Noon (1952)                           4.102273\\n\",\n            \"Wild Bunch, The (1969)                     4.023256\\n\",\n            \"Butch Cassidy and the Sundance Kid (1969)  3.949074\\n\",\n            \"Magnificent Seven, The (1954)              3.942149\\n\",\n            \"Once Upon a Time in the West (1969)        3.868421\\n\",\n            \"Unforgiven (1992)                          3.868132\\n\",\n            \"Good, The Bad and The Ugly, The (1966)     3.861314\\n\",\n            \"Dead Man (1995)                            3.823529\\n\",\n            \"Dances with Wolves (1990)                  3.792969\\n\",\n            \"Tombstone (1993)                           3.666667\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These are the most popular movies which can be recommended to a new user in Western genre. Recommendations based on Popularity\\n\",\n            \"                                 movie title  Number of Users watched\\n\",\n            \"0                  Dances with Wolves (1990)                      256\\n\",\n            \"1  Butch Cassidy and the Sundance Kid (1969)                      216\\n\",\n            \"2                          Unforgiven (1992)                      182\\n\",\n            \"3     Good, The Bad and The Ugly, The (1966)                      137\\n\",\n            \"4                            Maverick (1994)                      128\\n\",\n            \"5              Magnificent Seven, The (1954)                      121\\n\",\n            \"6                           Tombstone (1993)                      108\\n\",\n            \"7                          Young Guns (1988)                      101\\n\",\n            \"8                           High Noon (1952)                       88\\n\",\n            \"9                 Legends of the Fall (1994)                       81\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"These movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\\n\",\n            \"These have rating more than  2.0  with atleast  50  viewers.\\n\",\n            \"**Recommendations based popularity and rating. These are top rated popular movies**\\n\",\n            \"                                  movie title  ...  Number of Users watched\\n\",\n            \"0                            High Noon (1952)  ...                       88\\n\",\n            \"2   Butch Cassidy and the Sundance Kid (1969)  ...                      216\\n\",\n            \"3               Magnificent Seven, The (1954)  ...                      121\\n\",\n            \"5                           Unforgiven (1992)  ...                      182\\n\",\n            \"6      Good, The Bad and The Ugly, The (1966)  ...                      137\\n\",\n            \"8                   Dances with Wolves (1990)  ...                      256\\n\",\n            \"9                            Tombstone (1993)  ...                      108\\n\",\n            \"10                            Maverick (1994)  ...                      128\\n\",\n            \"11                 Legends of the Fall (1994)  ...                       81\\n\",\n            \"13                          Young Guns (1988)  ...                      101\\n\",\n            \"21                   Last Man Standing (1996)  ...                       53\\n\",\n            \"\\n\",\n            \"[11 rows x 3 columns]\\n\",\n            \"****************************     ******************************     ******************************\\n\",\n            \"                             \\n\",\n            \"                             \\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"xMcFJgHlXGuR\"\n      },\n      \"source\": [\n        \"We can see rating frequency plot, movie recommendation based on only high ratings, only popularity and high rated popular movie for each movie genre separately.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"aneLfqrtXFk9\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"IhY_79CI31QH\"\n      },\n      \"source\": [\n        \"# Rough Work\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"5lmhc7hi6Mvb\",\n        \"outputId\": \"49870b24-c0ca-420f-ad7e-355e51694032\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 204\n        }\n      },\n      \"source\": [\n        \"x = 'Western'\\n\",\n        \"genre_based_movies = items_dataset[['movie id','movie title',x]]\\n\",\n        \"genre_based_movies = genre_based_movies[genre_based_movies[x] == 1]\\n\",\n        \"merged_genre_movies = pd.merge(dataset, genre_based_movies, how='inner', on='movie id')\\n\",\n        \"merged_genre_movies.head()\\n\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>Western</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>244</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>880606923</td>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>85</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>879454782</td>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>201</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>884140751</td>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>198</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>884208455</td>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>330</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>876546753</td>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp                 movie title  Western\\n\",\n              \"0      244        51       2  880606923  Legends of the Fall (1994)        1\\n\",\n              \"1       85        51       2  879454782  Legends of the Fall (1994)        1\\n\",\n              \"2      201        51       2  884140751  Legends of the Fall (1994)        1\\n\",\n              \"3      198        51       3  884208455  Legends of the Fall (1994)        1\\n\",\n              \"4      330        51       5  876546753  Legends of the Fall (1994)        1\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 107\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"QTpavk0cMAzF\",\n        \"outputId\": \"3c48eaac-f29a-4cea-bc4b-42a6c44529ce\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"len(merged_genre_movies)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"1854\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 108\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"aOFHbwc2KqQ7\",\n        \"outputId\": \"dc9e169b-ad63-4809-c808-aa601a216c3a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 438\n        }\n      },\n      \"source\": [\n        \"star_based_visualization(merged_genre_movies)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 720x432 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Total number of users watched this Genre:  1854\\n\",\n            \"  \\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"w_M5bmyVDuM1\",\n        \"outputId\": \"4a3a32a8-18e2-40d6-ef89-a7901e6c64bf\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 427\n        }\n      },\n      \"source\": [\n        \"high_rated_movies = merged_genre_movies.groupby(['movie title']).agg({\\\"rating\\\":\\\"mean\\\"})['rating'].sort_values(ascending=False)\\n\",\n        \"high_rated_movies = high_rated_movies.to_frame()\\n\",\n        \"print(\\\"These are the top movies that can be naviely suggested to the new users for the requested movie genre:\\\", x, \\\". Recommendations based on top average ratings.\\\")\\n\",\n        \"high_rated_movies.head(10)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"These are the top movies that can be naviely suggested to the new users for the requested movie genre: Western . Recommendations based on top average ratings.\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th></th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>High Noon (1952)</th>\\n\",\n              \"      <td>4.102273</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Wild Bunch, The (1969)</th>\\n\",\n              \"      <td>4.023256</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Butch Cassidy and the Sundance Kid (1969)</th>\\n\",\n              \"      <td>3.949074</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Magnificent Seven, The (1954)</th>\\n\",\n              \"      <td>3.942149</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Once Upon a Time in the West (1969)</th>\\n\",\n              \"      <td>3.868421</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Unforgiven (1992)</th>\\n\",\n              \"      <td>3.868132</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Good, The Bad and The Ugly, The (1966)</th>\\n\",\n              \"      <td>3.861314</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Dead Man (1995)</th>\\n\",\n              \"      <td>3.823529</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Dances with Wolves (1990)</th>\\n\",\n              \"      <td>3.792969</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>Tombstone (1993)</th>\\n\",\n              \"      <td>3.666667</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                             rating\\n\",\n              \"movie title                                        \\n\",\n              \"High Noon (1952)                           4.102273\\n\",\n              \"Wild Bunch, The (1969)                     4.023256\\n\",\n              \"Butch Cassidy and the Sundance Kid (1969)  3.949074\\n\",\n              \"Magnificent Seven, The (1954)              3.942149\\n\",\n              \"Once Upon a Time in the West (1969)        3.868421\\n\",\n              \"Unforgiven (1992)                          3.868132\\n\",\n              \"Good, The Bad and The Ugly, The (1966)     3.861314\\n\",\n              \"Dead Man (1995)                            3.823529\\n\",\n              \"Dances with Wolves (1990)                  3.792969\\n\",\n              \"Tombstone (1993)                           3.666667\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 110\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"1r8n9xS4HQpj\"\n      },\n      \"source\": [\n        \"popular_movies_ingenre = merged_genre_movies.groupby(['movie title']).agg({\\\"rating\\\":\\\"count\\\"})['rating'].sort_values(ascending=False)\\n\",\n        \"popular_movies_ingenre = popular_movies_ingenre.to_frame()\\n\",\n        \"popular_movies_ingenre.reset_index(level=0, inplace=True)\\n\",\n        \"popular_movies_ingenre.columns = ['movie title', 'Number of Users watched']\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"OqoyOQ3YPjwi\",\n        \"outputId\": \"5f402fa2-f5e3-49f2-891b-4b54f5bab5ad\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 376\n        }\n      },\n      \"source\": [\n        \"# popular_movies[popular_movies['Number of Users watched'] >= 400]\\n\",\n        \"print(\\\"These are the most popular movies which can be recommended to a new user in\\\",x,\\\"genre. Recommendations based on Popularity\\\")\\n\",\n        \"popular_movies_ingenre.sort_values('Number of Users watched', ascending=False).head(10)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"These are the most popular movies which can be recommended to a new user in Western genre. Recommendations based on Popularity\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>Dances with Wolves (1990)</td>\\n\",\n              \"      <td>256</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>Butch Cassidy and the Sundance Kid (1969)</td>\\n\",\n              \"      <td>216</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>Unforgiven (1992)</td>\\n\",\n              \"      <td>182</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>Good, The Bad and The Ugly, The (1966)</td>\\n\",\n              \"      <td>137</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>Maverick (1994)</td>\\n\",\n              \"      <td>128</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>Magnificent Seven, The (1954)</td>\\n\",\n              \"      <td>121</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>Tombstone (1993)</td>\\n\",\n              \"      <td>108</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <td>Young Guns (1988)</td>\\n\",\n              \"      <td>101</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>High Noon (1952)</td>\\n\",\n              \"      <td>88</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>81</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                 movie title  Number of Users watched\\n\",\n              \"0                  Dances with Wolves (1990)                      256\\n\",\n              \"1  Butch Cassidy and the Sundance Kid (1969)                      216\\n\",\n              \"2                          Unforgiven (1992)                      182\\n\",\n              \"3     Good, The Bad and The Ugly, The (1966)                      137\\n\",\n              \"4                            Maverick (1994)                      128\\n\",\n              \"5              Magnificent Seven, The (1954)                      121\\n\",\n              \"6                           Tombstone (1993)                      108\\n\",\n              \"7                          Young Guns (1988)                      101\\n\",\n              \"8                           High Noon (1952)                       88\\n\",\n              \"9                 Legends of the Fall (1994)                       81\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 112\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"pef6XJRkAuH1\",\n        \"outputId\": \"f44d1bbb-7047-42f9-d432-538cf2149553\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 359\n        }\n      },\n      \"source\": [\n        \"highly_rated_popular_movies = pd.merge(high_rated_movies, popular_movies_ingenre, how = 'inner', on='movie title')\\n\",\n        \"highly_rated_popular_movies.head(10)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>High Noon (1952)</td>\\n\",\n              \"      <td>4.102273</td>\\n\",\n              \"      <td>88</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>Wild Bunch, The (1969)</td>\\n\",\n              \"      <td>4.023256</td>\\n\",\n              \"      <td>43</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>Butch Cassidy and the Sundance Kid (1969)</td>\\n\",\n              \"      <td>3.949074</td>\\n\",\n              \"      <td>216</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>Magnificent Seven, The (1954)</td>\\n\",\n              \"      <td>3.942149</td>\\n\",\n              \"      <td>121</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>Once Upon a Time in the West (1969)</td>\\n\",\n              \"      <td>3.868421</td>\\n\",\n              \"      <td>38</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>Unforgiven (1992)</td>\\n\",\n              \"      <td>3.868132</td>\\n\",\n              \"      <td>182</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>Good, The Bad and The Ugly, The (1966)</td>\\n\",\n              \"      <td>3.861314</td>\\n\",\n              \"      <td>137</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>7</th>\\n\",\n              \"      <td>Dead Man (1995)</td>\\n\",\n              \"      <td>3.823529</td>\\n\",\n              \"      <td>34</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>Dances with Wolves (1990)</td>\\n\",\n              \"      <td>3.792969</td>\\n\",\n              \"      <td>256</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>Tombstone (1993)</td>\\n\",\n              \"      <td>3.666667</td>\\n\",\n              \"      <td>108</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                 movie title    rating  Number of Users watched\\n\",\n              \"0                           High Noon (1952)  4.102273                       88\\n\",\n              \"1                     Wild Bunch, The (1969)  4.023256                       43\\n\",\n              \"2  Butch Cassidy and the Sundance Kid (1969)  3.949074                      216\\n\",\n              \"3              Magnificent Seven, The (1954)  3.942149                      121\\n\",\n              \"4        Once Upon a Time in the West (1969)  3.868421                       38\\n\",\n              \"5                          Unforgiven (1992)  3.868132                      182\\n\",\n              \"6     Good, The Bad and The Ugly, The (1966)  3.861314                      137\\n\",\n              \"7                            Dead Man (1995)  3.823529                       34\\n\",\n              \"8                  Dances with Wolves (1990)  3.792969                      256\\n\",\n              \"9                           Tombstone (1993)  3.666667                      108\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 113\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"EL33xBMOAuNy\",\n        \"outputId\": \"7be38ef4-1d4c-46f0-8f02-118ccb9e63c6\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 390\n        }\n      },\n      \"source\": [\n        \"viewer_limit = 300\\n\",\n        \"ratings_limit = 4.0\\n\",\n        \"count = 0\\n\",\n        \"check = 0\\n\",\n        \"while viewer_limit > 0 and ratings_limit > 0:\\n\",\n        \"  s = highly_rated_popular_movies[(highly_rated_popular_movies['Number of Users watched']>viewer_limit) & (highly_rated_popular_movies['rating']>=ratings_limit)]\\n\",\n        \"  if len(s) < 11:\\n\",\n        \"    if check == 0:\\n\",\n        \"      viewer_limit -= 50\\n\",\n        \"      check = 1\\n\",\n        \"    else:\\n\",\n        \"      ratings_limit -= 0.5\\n\",\n        \"      check = 0\\n\",\n        \"  else:\\n\",\n        \"    break\\n\",\n        \"s\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>Number of Users watched</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>High Noon (1952)</td>\\n\",\n              \"      <td>4.102273</td>\\n\",\n              \"      <td>88</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>Butch Cassidy and the Sundance Kid (1969)</td>\\n\",\n              \"      <td>3.949074</td>\\n\",\n              \"      <td>216</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>Magnificent Seven, The (1954)</td>\\n\",\n              \"      <td>3.942149</td>\\n\",\n              \"      <td>121</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>5</th>\\n\",\n              \"      <td>Unforgiven (1992)</td>\\n\",\n              \"      <td>3.868132</td>\\n\",\n              \"      <td>182</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>6</th>\\n\",\n              \"      <td>Good, The Bad and The Ugly, The (1966)</td>\\n\",\n              \"      <td>3.861314</td>\\n\",\n              \"      <td>137</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>8</th>\\n\",\n              \"      <td>Dances with Wolves (1990)</td>\\n\",\n              \"      <td>3.792969</td>\\n\",\n              \"      <td>256</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>9</th>\\n\",\n              \"      <td>Tombstone (1993)</td>\\n\",\n              \"      <td>3.666667</td>\\n\",\n              \"      <td>108</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>10</th>\\n\",\n              \"      <td>Maverick (1994)</td>\\n\",\n              \"      <td>3.468750</td>\\n\",\n              \"      <td>128</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>11</th>\\n\",\n              \"      <td>Legends of the Fall (1994)</td>\\n\",\n              \"      <td>3.456790</td>\\n\",\n              \"      <td>81</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>13</th>\\n\",\n              \"      <td>Young Guns (1988)</td>\\n\",\n              \"      <td>3.207921</td>\\n\",\n              \"      <td>101</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>21</th>\\n\",\n              \"      <td>Last Man Standing (1996)</td>\\n\",\n              \"      <td>2.660377</td>\\n\",\n              \"      <td>53</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"                                  movie title  ...  Number of Users watched\\n\",\n              \"0                            High Noon (1952)  ...                       88\\n\",\n              \"2   Butch Cassidy and the Sundance Kid (1969)  ...                      216\\n\",\n              \"3               Magnificent Seven, The (1954)  ...                      121\\n\",\n              \"5                           Unforgiven (1992)  ...                      182\\n\",\n              \"6      Good, The Bad and The Ugly, The (1966)  ...                      137\\n\",\n              \"8                   Dances with Wolves (1990)  ...                      256\\n\",\n              \"9                            Tombstone (1993)  ...                      108\\n\",\n              \"10                            Maverick (1994)  ...                      128\\n\",\n              \"11                 Legends of the Fall (1994)  ...                       81\\n\",\n              \"13                          Young Guns (1988)  ...                      101\\n\",\n              \"21                   Last Man Standing (1996)  ...                       53\\n\",\n              \"\\n\",\n              \"[11 rows x 3 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 114\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"LkwH-StRfPsT\",\n        \"outputId\": \"1013fd50-5c0b-4c87-c431-f473172ef8a2\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"a, r = 20,5.0\\n\",\n        \"# highly_rated_popular_movies[(highly_rated_popular_movies['Number of Users watched']<a) & (highly_rated_popular_movies['rating']<r)]\\n\",\n        \"len(popular_movies_ingenre)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"50\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 106\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"3lVKbR0KCNTA\",\n        \"outputId\": \"b3b3d6fe-c1d3-45a8-d9f3-e2579a2ce91e\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 85\n        }\n      },\n      \"source\": [\n        \"df = pd.DataFrame([[1, 2, 3], [4, 5, 1], [4, 5, 6]], columns = [\\\"a\\\", \\\"b\\\", \\\"c\\\"])\\n\",\n        \"print(df)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"   a  b  c\\n\",\n            \"0  1  2  3\\n\",\n            \"1  4  5  1\\n\",\n            \"2  4  5  6\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"LaNy-AFXCNWy\",\n        \"outputId\": \"41a7faa0-5236-407e-c90d-eddccaa95178\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 85\n        }\n      },\n      \"source\": [\n        \"df = df.sort_values([\\\"b\\\", \\\"c\\\"], ascending = (False, False))\\n\",\n        \"print(df)\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"   a  b  c\\n\",\n            \"2  4  5  6\\n\",\n            \"1  4  5  1\\n\",\n            \"0  1  2  3\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"_rE2aZFmEYxd\",\n        \"outputId\": \"5a639e59-ea20-4139-e293-2b9b8b2a88d8\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 758\n        }\n      },\n      \"source\": [\n        \"items_dataset\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>release date</th>\\n\",\n              \"      <th>video release date</th>\\n\",\n              \"      <th>IMDb URL</th>\\n\",\n              \"      <th>unknown</th>\\n\",\n              \"      <th>Action</th>\\n\",\n              \"      <th>Adventure</th>\\n\",\n              \"      <th>Animation</th>\\n\",\n              \"      <th>Children</th>\\n\",\n              \"      <th>Comedy</th>\\n\",\n              \"      <th>Crime</th>\\n\",\n              \"      <th>Documentary</th>\\n\",\n              \"      <th>Drama</th>\\n\",\n              \"      <th>Fantasy</th>\\n\",\n              \"      <th>Film-Noir</th>\\n\",\n              \"      <th>Horror</th>\\n\",\n              \"      <th>Musical</th>\\n\",\n              \"      <th>Mystery</th>\\n\",\n              \"      <th>Romance</th>\\n\",\n              \"      <th>Sci-Fi</th>\\n\",\n              \"      <th>Thriller</th>\\n\",\n              \"      <th>War</th>\\n\",\n              \"      <th>Western</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Toy%20Story%2...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?GoldenEye%20(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Four%20Rooms%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Get%20Shorty%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Copycat%20(1995)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>...</th>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1677</th>\\n\",\n              \"      <td>1678</td>\\n\",\n              \"      <td>Mat' i syn (1997)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Mat%27+i+syn+...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1678</th>\\n\",\n              \"      <td>1679</td>\\n\",\n              \"      <td>B. Monkey (1998)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?B%2E+Monkey+(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1679</th>\\n\",\n              \"      <td>1680</td>\\n\",\n              \"      <td>Sliding Doors (1998)</td>\\n\",\n              \"      <td>01-Jan-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/Title?Sliding+Doors+(1998)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1680</th>\\n\",\n              \"      <td>1681</td>\\n\",\n              \"      <td>You So Crazy (1994)</td>\\n\",\n              \"      <td>01-Jan-1994</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?You%20So%20Cr...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1681</th>\\n\",\n              \"      <td>1682</td>\\n\",\n              \"      <td>Scream of Stone (Schrei aus Stein) (1991)</td>\\n\",\n              \"      <td>08-Mar-1996</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Schrei%20aus%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"<p>1682 rows × 24 columns</p>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"      movie id                                movie title  ... War  Western\\n\",\n              \"0            1                           Toy Story (1995)  ...   0        0\\n\",\n              \"1            2                           GoldenEye (1995)  ...   0        0\\n\",\n              \"2            3                          Four Rooms (1995)  ...   0        0\\n\",\n              \"3            4                          Get Shorty (1995)  ...   0        0\\n\",\n              \"4            5                             Copycat (1995)  ...   0        0\\n\",\n              \"...        ...                                        ...  ...  ..      ...\\n\",\n              \"1677      1678                          Mat' i syn (1997)  ...   0        0\\n\",\n              \"1678      1679                           B. Monkey (1998)  ...   0        0\\n\",\n              \"1679      1680                       Sliding Doors (1998)  ...   0        0\\n\",\n              \"1680      1681                        You So Crazy (1994)  ...   0        0\\n\",\n              \"1681      1682  Scream of Stone (Schrei aus Stein) (1991)  ...   0        0\\n\",\n              \"\\n\",\n              \"[1682 rows x 24 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 185\n        }\n      ]\n    }\n  ]\n}\n"
  },
  {
    "path": "README.md",
    "content": "## [Unrelated post - Connect with me on LinkedIn] \n[09-01-2023] It's been almost three years since I completed this project and its documentation. Occasionally, I receive connection requests and questions from individuals on LinkedIn. Each time I return to this repository, I'm pleasantly surprised to see people taking an interest in it. This sense of community engagement warms my heart. I wholeheartedly invite all of you who stumble upon this material to connect with me on LinkedIn for any kind of clarifications or questions.\n\n# Recommender-System-on-MovieLens-dataset\n## Project Overview\nKnowledge-based, Content-based and Collaborative Recommender systems are built on MovieLens dataset with 100,000 movie ratings. These Recommender systems were built using Pandas operations and by fitting KNN, SVD & deep learning models which use NLP techniques and NN architecture to suggest movies for the users based on similar users and for queries specific to genre, user, movie, rating, popularity.\n\n## Contents\n![Python](https://img.shields.io/badge/python-v3.6+-blue.svg)\n![Dependencies](https://img.shields.io/badge/dependencies-up%20to%20date-brightgreen.svg)\n\n- [Recommender System Overview](#recommender-system-overview)\n   - [Content-based Filtering](#content-based-recommender-system)\n   - [Collaborative Filtering](#collaborative-recommender-system)\n   - [Knowledge based Recommender System](#knowledge-based-recommender-systems)\n   - [Hybrid Recommender](#hybrid-recommender-system)\n   - [Common Challenges](#common-challenges)\n   \n - [About DataSet](#about-dataset-used)\n \n - [Data Visualizations and Manipulations](#Data-Visualizations-and-Manipulations)\n \t- Dataframes formed and used\n \t- [Reshaping the dataframe](#reshaping-the-dataframe-to-make-it-compatible-for-knn-algorithm-implementation)\n\n- Movie Recommender System Development\n\t- [Knowledge based Recommender System](#knowledge-based-recommender-system)\n\t- [Movie Recommendation Engine Development with KNN](#item-based-collaborative-recommender-system-using-knn)\n  \t\t- [Movie Recommender System for a User](#movie-recommender-system-for-a-user)\n  \t\t- [Movie Recommender System using Movie Name](#movie-recommender-system-using-movie-name) \n        \t\t- Along with [Dynamic movie name Suggestor](#dynamic-movie-name-suggestor)\n\t- [Recommender System using Singular Value Decomposition(SVD)](#recommender-system-using-svd)\n\t- [Recommender System using Deep Neural Network (DNN) models](#recommender-system-using-softmax-deep-neural-networks)\n  \n\n![GitHub Logo](Images/netflix-recommendation-s.jpeg)\n\n\n## Recommender System Overview\nA recommender system is a subclass of information filtering system that seeks to predict the \"rating\" or \"preference\" a user would give to an item. Recommender systems are utilized in a variety of areas including movies, music, news, social tags, and products in general. Recommender systems typically produce a list of recommendations and there are few ways in which it can be done. Two of the most popular ways are – through collaborative filtering or through content-based filtering.\n\nMost internet products we use today are powered by recommender systems. YouTube, Netflix, Amazon, Pinterest, and long list of other internet products all rely on recommender systems to filter millions of contents and make personalized recommendations to their users. Recommender systems are well-studied and proven to provide tremendous values to internet businesses and their consumers.\n\nThere are majorly six types of recommender systems which work primarily in the Media and Entertainment industry: \n- Collaborative Recommender system\n- Content-based recommender system\n- Knowledge based recommender system\n- Hybrid recommender system\n- Demographic based recommender system\n- Utility based recommender system\n\n\n![GitHub Logo](Images/coll-cont-pic.png)\n\n\nRecommender System is a vast concept rooted from a base idea of giving out suggestions to the users. There are wide range of algorithms are used to build a recommender system and the type of recommender system used is mostly dictated by the type of data available. In this project, first three of the above recommender systems were built.\n\n#### Content based recommender system\nThis approach utilizes a series of discrete characteristics of an item in order to recommend additional items with similar properties. Content-based filtering methods are based on a description of the item and a profile of the user's preferences. To keep it simple, it will suggest you similar movies based on the movie we give (movie name would be the input) or based on all of the movies watched by a user (user is the input). It extracts features of a item and it can also look at the user's history to make the suggestions.\n\n#### Collaborative recommender system\nCollaborative filtering is based on the assumption that people who agreed in the past will agree in the future, and that they will like similar kinds of items as they liked in the past. The system generates recommendations using only information about rating profiles for different users or items. By locating peer users/items with a rating history similar to the current user or item, they generate recommendations using this neighborhood. This approach builds a model from a user’s past behaviors (items previously purchased or selected and/or numerical ratings given to those items) as well as similar decisions made by other users. This model is then used to predict items (or ratings for items) that the user may have an interest in. Collaborative filtering methods are classified as memory-based and model-based.\n\n#### Knowledge based recommender systems\nThese are based on explicit knowledge about the item assortment, user preferences, and recommendation criteria (i.e., which item should be recommended in which context). These systems are applied in scenarios where alternative approaches such as collaborative filtering and content-based filtering cannot be applied. In simple terms, knowledge based recommender system can be used to suggest content/item to a new user or an anonymous user who doesn't have any history.\n\n#### Hybrid recommender system\nThis combines more than one of these techniques to resolve one or more problems. This approach can be used to overcome some of the common problems in recommender systems such as cold start and the sparsity problem in collaborative approach, as well as the knowledge engineering bottleneck in knowledge-based approaches. It is proved that hybrid recommender system performs extremely well compared to pure collaborative and content based methods.\n\n#### Common Challenges\nIn this project, three of the above recommender systems were build using different algorithms. Following challenges were encountered while building these recommender systems:\n* cold start\n* data sparsity\n* popular bias (how to recommend products from the tail of product distribution)\n* User Inconvinience with spelling while giving movie names as input (can't expect to give exact movie name everytime)\n* scalability (computation grows as number of users and items grow)\n* pool relationship between like-minded yet sparse users\n\n![GitHub Logo](Images/long-tail.png)\n\nAbove chart is the distribution of item rating frequency. This distribution often satisfies a property in real-world settings, which is referred to as [the long-tail property [1]](https://www.springer.com/cda/content/document/cda_downloaddocument/9783319296579-c1.pdf?SGWID=0-0-45-1554478-p179516130). According to this property, only a small fraction of the items are rated frequently. Such items are referred to as popular items. The vast majority of items are rated rarely. \n\nIn most cases, high-frequency items tend to be relatively competitive items with little profit for the merchant. On the other hand, the lower frequency items have larger profit margins. However, many recommendation algorithms have a tendency to suggest popular items rather than infrequent items. This phenomenon also has a negative impact on diversity, and users may often become bored by receiving the same set of recommendations of popular items\n\n**A solution for long-tail could be**\nUse matrix factorization technique to train model to learn user-item interaction by capturing user information in user latent factors and item information in item latent factors. Meanwhile, matrix factorization technique can significantly reduce dimensionality and sparsity and it will reduce huge amount of memory footprint and make our system more scalable\n\n\n## About Dataset used\n\n[MovieLens 100K dataset](https://grouplens.org/datasets/movielens/100k/) has been used for this project. MovieLens is a rating dataset from the MovieLens website, which has been\ncollected over some period. Stable benchmark dataset. 100,000 ratings from 1000 users on 1700 movies. Released on 4/1998. Further information regarding this dataset can be found [here](http://files.grouplens.org/datasets/movielens/ml-100k-README.txt).\n\nA little about the dataset:\n\nMovieLens data sets were collected by the GroupLens Research Project at the University of Minnesota.\n \nThis data set consists of:\n  - 100,000 ratings (1-5) from 943 users on 1682 movies. \n  - Each user has rated at least 20 movies. \n  - Simple demographic info for the users (age, gender, occupation, zip)\n\nAbout few components loaded from the package which are used in this project: \n\n - u.data     -- The full u data set, 100000 ratings by 943 users on 1682 items.\n              Each user has rated at least 20 movies. Users and items are numbered consecutively from 1. The data is randomly ordered. This is a tab separated list of user id | item id | rating | timestamp. \n - u.info     -- The number of users, items, and ratings in the u data set.\n - u.item     -- Information about the items (movies); this is a tab separated\n              list of movie id | movie title | release date | video release date | IMDb URL | unknown | Action | Adventure | Animation | Children's | Comedy | Crime | Documentary | Drama | Fantasy | Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi | Thriller | War | Western |\n\t      \n  The last 19 fields are the genres, a 1 indicates the movie is of that genre, a 0 indicates it is not; movies can be in several genres at once.The movie ids are the ones used in the u.data data set.\n  - u.genre    -- A list of the genres.\n\n## Data Visualizations and Manipulations\n\nData has been loaded into dataframes using pandas. It had been analyzed and visualized to draw some key insights before going further into recommendations.\n\n\n![GitHub Logo](Images/bar-plot.PNG)\n\nObservation: We can observe that most of the users have rewarded movies they watched with a 4 star rating and followed by 3 star and 5 star.\n\nThe same has been displayed below using a pie chart to understand the constributions.\n\n\n![GitHub Logo](Images/pie.PNG)\n\nGenre based number of movies count is being plotted using bar-graph:\n\n\n![GitHub Logo](Images/genre-bar-plot.PNG)\n\nWe can see that most of the movies belong to movie genre : Drama followed by Comedy then Action, Romance and Thriller\n\n#### Dataframes formed and used: \nitems_dataset (movie id, movie name, and all genres); dataset (user id, movie id, rating); movie_dataset is a subset of items_dataset (it has movie id, movie name); Both movie_dataset and dataset are merged based on movie id and new merged_dataset is formed (user id, movie id, rating, movie name); a new dataframe is formed by averaging the overall rating available to a movie from the merged_dataset, are sorted with descending order of ratings and is named avg_rating_dataset (movie name, avg rating); There are few movie titles which have multiple movie id's causing duplicate combinations of movie id & title, these duplicate entries are caused when an user gives rating to a movie more than one time. These duplicate ratings are merged into single row by averaging the available ratings.\n\n## [Knowledge based Recommender System](https://github.com/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Knowledge_based_Recommender_System.ipynb)\n\nRecommendations are made based on the available items and their corresponding ratings data, considering we have no user data available.\n\nData manipulations are done using **Pandas**\n\n - A General recommendations of movies made based on high average ratings:\n \n ```\nmovie title\t\t\t\t\t\tavg rating\nMarlene Dietrich: Shadow and Light (1996)\t\t5.0\nPrefontaine (1997)\t\t\t\t\t5.0\nSanta with Muscles (1996)\t\t\t\t5.0\nStar Kid (1997)\t\t\t\t\t\t5.0\nSomeone Else's America (1995)\t\t\t\t5.0\nEntertaining Angels: The Dorothy Day Story (1996)\t5.0\nSaint of Fort Washington, The (1993)\t\t\t5.0\n\n ```\n These are the top 7 movies that can be naviely suggested to the new users, Recommendations based on top average ratings.\n\n - Movie Recommendations based on popularity :\n \n We have considered movies which have more than 400 viewers as *POPULAR* and there are 12 movies.\n ```\n movie title\t\t\tNumber of Users watched\nStar Wars (1977)\t\t583\nContact (1997)\t\t\t509\nFargo (1996)\t\t\t508\nReturn of the Jedi (1983)\t507\nLiar Liar (1997)\t\t485\nEnglish Patient, The (1996)\t481\nScream (1996)\t\t\t478\nToy Story (1995)\t\t452\nAir Force One (1997)\t\t431\nIndependence Day (ID4) (1996)\t429\nRaiders of the Lost Ark (1981)\t420\nGodfather, The (1972)\t\t413\n```\nThese are the most popular movies which can be recommended to a new user. *Recommendations based on Popularity*\n\n*Above two recommendations are good enough but are not complete and may not interest many of the new users*\n\n- Movie Recommendations based on both popular and average ratings. \n*Recommendations based popularity and rating.* These are **top rated popular movies**\n\n```\nmovie title\t\t\t\tavg rating\tNumber of Users watched\nStar Wars (1977)\t\t\t4.358491\t583\nSilence of the Lambs, The (1991)\t4.289744\t390\nGodfather, The (1972)\t\t\t4.283293\t413\nRaiders of the Lost Ark (1981)\t\t4.252381\t420\nTitanic (1997)\t\t\t\t4.245714\t350\nEmpire Strikes Back, The (1980)\t\t4.204360\t367\nPrincess Bride, The (1987)\t\t4.172840\t324\nFargo (1996)\t\t\t\t4.155512\t508\nMonty Python and the Holy Grail (1974)\t4.066456\t316\n1Pulp Fiction (1994)\t\t\t4.060914\t394\n4Fugitive, The (1993)\t\t\t4.044643\t336\n9Return of the Jedi (1983)\t\t4.007890\t507\n```\n\nThese movies are the best to suggest to a new user as they are popular and well rated by the users who already watched them. These have rating more than 4 with atleast 300 viewers. (the threshold for ratings and number of viewers can be changed accordingly based on the data available)\n\n - Movie suggestions based on specific *Genre* picked by the user\n \n For every genre, Genre wise ratings are plotted using bar plot and the above mentioned three types of movie recommendations are given out in specific to the selected genre.\n \n Below are the two such examples for genres: Action and Animation\n \n ```\n ****************************     ****** GENRE:  Action  ******     ******************************\n Total number of users watched this Genre:  25589\n  \nThese are the top movies that can be naviely suggested to the new users for the requested movie genre: Action . Recommendations based on top average ratings.\n                                   rating\nmovie title                              \nStar Wars (1977)                 4.358491\nGodfather, The (1972)            4.283293\nRaiders of the Lost Ark (1981)   4.252381\nTitanic (1997)                   4.245714\nEmpire Strikes Back, The (1980)  4.204360\nBoot, Das (1981)                 4.203980\nGodfather: Part II, The (1974)   4.186603\nAfrican Queen, The (1951)        4.184211\nPrincess Bride, The (1987)       4.172840\nBraveheart (1995)                4.151515\n****************************     ******************************     ******************************\nThese are the most popular movies which can be recommended to a new user in Action genre. Recommendations based on Popularity\n                       movie title  Number of Users watched\n0                 Star Wars (1977)                      583\n1        Return of the Jedi (1983)                      507\n2             Air Force One (1997)                      431\n3    Independence Day (ID4) (1996)                      429\n4   Raiders of the Lost Ark (1981)                      420\n5            Godfather, The (1972)                      413\n6                 Rock, The (1996)                      378\n7  Empire Strikes Back, The (1980)                      367\n8  Star Trek: First Contact (1996)                      365\n9                   Titanic (1997)                      350\n****************************     ******************************     ******************************\nThese movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\nThese have rating more than  4.0  with atleast  250  viewers.\n**Recommendations based popularity and rating. These are top rated popular movies**\n                          movie title    rating  Number of Users watched\n0                    Star Wars (1977)  4.358491                      583\n1               Godfather, The (1972)  4.283293                      413\n2      Raiders of the Lost Ark (1981)  4.252381                      420\n3                      Titanic (1997)  4.245714                      350\n4     Empire Strikes Back, The (1980)  4.204360                      367\n8          Princess Bride, The (1987)  4.172840                      324\n9                   Braveheart (1995)  4.151515                      297\n11               Fugitive, The (1993)  4.044643                      336\n12                       Alien (1979)  4.034364                      291\n13          Return of the Jedi (1983)  4.007890                      507\n14  Terminator 2: Judgment Day (1991)  4.006780                      295\n****************************     ******************************     ******************************\n```\n```\n****************************     ****** GENRE:  Animation  ******     ******************************\nTotal number of users watched this Genre:  3605\n  \nThese are the top movies that can be naviely suggested to the new users for the requested movie genre: Animation . Recommendations based on top average ratings.\n                                                      rating\nmovie title                                                 \nClose Shave, A (1995)                               4.491071\nWrong Trousers, The (1993)                          4.466102\nWallace & Gromit: The Best of Aardman Animation...  4.447761\nFaust (1994)                                        4.200000\nGrand Day Out, A (1992)                             4.106061\nToy Story (1995)                                    3.878319\nAladdin (1992)                                      3.812785\nWinnie the Pooh and the Blustery Day (1968)         3.800000\nBeauty and the Beast (1991)                         3.792079\nLion King, The (1994)                               3.781818\n****************************     ******************************     ******************************\nThese are the most popular movies which can be recommended to a new user in Animation genre. Recommendations based on Popularity\n                              movie title  Number of Users watched\n0                        Toy Story (1995)                      452\n1                   Lion King, The (1994)                      220\n2                          Aladdin (1992)                      219\n3             Beauty and the Beast (1991)                      202\n4                         Fantasia (1940)                      174\n5  Snow White and the Seven Dwarfs (1937)                      172\n6  Beavis and Butt-head Do America (1996)                      156\n7                       Cinderella (1950)                      129\n8     Hunchback of Notre Dame, The (1996)                      127\n9        James and the Giant Peach (1996)                      126\n****************************     ******************************     ******************************\nThese movies are the best to suggest to a new user within their requested genre as they are popular and well rated by the users who already watched them.\nThese have rating more than  2.5  with atleast  100  viewers.\n**Recommendations based popularity and rating. These are top rated popular movies**\n                               movie title    rating  Number of Users watched\n0                    Close Shave, A (1995)  4.491071                      112\n1               Wrong Trousers, The (1993)  4.466102                      118\n5                         Toy Story (1995)  3.878319                      452\n6                           Aladdin (1992)  3.812785                      219\n8              Beauty and the Beast (1991)  3.792079                      202\n9                    Lion King, The (1994)  3.781818                      220\n10                         Fantasia (1940)  3.770115                      174\n11  Snow White and the Seven Dwarfs (1937)  3.709302                      172\n12                        Pinocchio (1940)  3.673267                      101\n15                       Cinderella (1950)  3.581395                      129\n17                            Dumbo (1941)  3.495935                      123\n20     Hunchback of Notre Dame, The (1996)  3.377953                      127\n26        James and the Giant Peach (1996)  3.126984                      126\n33  Beavis and Butt-head Do America (1996)  2.788462                      156\n****************************     ******************************     ******************************\n```\nRating frequency as bar plot, movie recommendation based on only high ratings, only popularity and high rated popular movie for each movie genre separately.\n\n*The thresholds for ratings and number of viewers for a movie to be considered for high rated popular movie catedory are selected dynamically based on the total viewers and it these limits differ from genre to genre*\n\n\n## [Item based Collaborative Recommender System using KNN](https://github.com/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Item_based_Collaborative_Recommender_System_using_KNN.ipynb)\n\nKNN algorithm is used to determine the corresponding similar movie or a user based on cosine similarity. K value is defined and desired number of nearest neighboring movies/users are returned.\n\nDatasets are loaded and similar EDA was performed as described above. A new dataset is created from the existing merged dataset by grouping the unique user id and movie title combination and the ratings by a user to the same movie in different instances (timestamps) are averaged and stored in the new dataset.\n\nAn example of a multiple rating scenario by an user to a specific movie:\n```\nuser id\tmovie id      rating\ttimestamp\tmovie title\n894\t246\t\t4\t882404137\tChasing Amy (1997)\n894\t268\t\t3\t879896041\tChasing Amy (1997)\n```\n\nFor a KNN algorithm to implement, we have to form a matrix from the available data. \n\nFrom the EDA, we have observed that there are huge number of missing ratings. The matrix formed would be a sparse matrix with most of the entries having 0 in it.\n\n#### Reshaping the dataframe to make it compatible for KNN algorithm implementation\nWe need to transform (reshape in this case) the data in such a way that each row of the dataframe represents a movie and each column represents a different user. So we want the data to be [movies, users] array if movie is the subject where similar movies must be found and [users, movies] array for reverse.\n\nTo reshape the dataframe, we will pivot the dataframe to the wide format with movies as rows and users as columns. As we know that not all users watch all the movies, we can expect a lot of missing values. We will have to fill those missing observations with 0s since we are going to perform linear algebra operations (calculating distances between vectors).\n\nFinally, we transform the values of the dataframe into a scipy sparse matrix for most efficient calculations.\n\nThis dataframe is then fed into a KNN model.\n\n**Two types of Collaborative recommendations are done using KNN algorithm in this project are:**\n\n ### Movie Recommender System for a User\n **Movie Recommendation using KNN with Input as User id, Number of similar users should the model pick and Number of movies you want to get recommended:**\n \n Reshaping the dataframe in such a way that each user has n-dimensional rating space where n is total number of movies\n\nWe will train the KNN model inorder to find the closely matching similar users to the user we give as input and we recommend the top movies which would interest the input user.\n\n1. Now we need to pick similar users for the given input User id\n2. Then pick the highly rated popular movies among the movies watched by similar users. (Weightage has assigned based on the cosine distance)\n3. Excluding the movies which are already seen by the input User and also the movies which are not at all seen by any of the similar users but are still in the list. (This is a crucial step as it could defeat the whole point of building a recommender system)\n\nWith the help of the KNN model built, we could get desired number of top similar users. For example, lets's consider User: 778\n\t\n```\nFew of movies seen by the User:\n['Amityville Horror, The (1979)',\n 'Angels in the Outfield (1994)',\n 'Apocalypse Now (1979)',\n 'Apollo 13 (1995)',\n 'Austin Powers: International Man of Mystery (1997)',\n 'Babe (1995)',\n 'Back to the Future (1985)',\n 'Blues Brothers, The (1980)',\n 'Chasing Amy (1997)',\n 'Clerks (1994)']\nTop 5 users who are very much similar to the User- 778 are: \n \n1 . User: 124 separated by distance of 0.4586649429539592\n2 . User: 933 separated by distance of 0.5581959868865324\n3 . User: 56 separated by distance of 0.5858413112292744\n4 . User: 738 separated by distance of 0.5916272517988691\n5 . User: 653 separated by distance of 0.5991479757406326\n```\nNow we will have to pick the top movies to recommend.\n\nOne way would be by taking the average of the existing ratings given by the similar users and picking the top 10 or 15 movies to recommend to our current user.\n\nBut I feel recommendation would be more effective if we define weights to ratings by each similar user based on the thier distance from the input user. Defining these weights would give us the accurate recommendations by eliminating the chance of decision manipulation by the users who are relatively very far from the input user.\n\nFunctionality was defined to overcome below **Challenges**:\n1. Recommends movies which are already seen by the given input User.\n2. There is a possibility of recommending the movies which are not at all seen by any of the similar users.\n\n*Results for a User id: 307; number of similar users to be considered: 15; Enter number of movies to be recommended: 15 are:\n```\nTop 15 users who are very much similar to the User- 307 are: \n \n1 . User: 70 separated by distance of 0.4560883724650484\n2 . User: 738 separated by distance of 0.4846662001127756\n3 . User: 922 separated by distance of 0.503221313979523\n4 . User: 407 separated by distance of 0.5038250337403114\n5 . User: 514 separated by distance of 0.5060750098353226\n6 . User: 44 separated by distance of 0.5160506271876224\n7 . User: 660 separated by distance of 0.5165826487301209\n8 . User: 5 separated by distance of 0.5211146313938015\n9 . User: 457 separated by distance of 0.5309167131718452\n10 . User: 23 separated by distance of 0.5316197783536492\n11 . User: 843 separated by distance of 0.5324703658288387\n12 . User: 64 separated by distance of 0.53318921205275\n13 . User: 198 separated by distance of 0.535682894616484\n14 . User: 815 separated by distance of 0.5416036160331636\n15 . User: 95 separated by distance of 0.5468066886836396\n\n\nMovies recommended based on similar users are: \n\n[\"Schindler's List (1993)\",\n 'Liar Liar (1997)',\n 'When Harry Met Sally... (1989)',\n 'Leaving Las Vegas (1995)',\n 'Silence of the Lambs, The (1991)',\n 'Dead Man Walking (1995)',\n 'Trainspotting (1996)',\n 'Forrest Gump (1994)',\n 'Scream (1996)',\n 'Twelve Monkeys (1995)',\n 'Jerry Maguire (1996)',\n 'Raising Arizona (1987)',\n 'Godfather, The (1972)',\n 'Rock, The (1996)',\n 'Fugitive, The (1993)']\n```\n\n ### Movie Recommender System using Movie Name\n **Movie Recommendation using KNN with Input as Movie Name and Number of movies you want to get recommended:**\n \n Reshaping model in such a way that each movie has n-dimensional rating space where n is total number of users who could rate.\n\nWe will train the KNN model inorder to find the closely matching similar movies to the movie we give as input and we recommend the top movies which would more closely align to the movie we have given.\n\nFor this section, a separate list for movie names and also case insensitive movie names and a dictionary which maps movie name with the index are created.\n\nBasic output of this recommender system using KNN:\n```\nTop 10 movies which are very much similar to the Movie- 101 Dalmatians (1996) are: \n \nJack (1996)\nTwister (1996)\nWilly Wonka and the Chocolate Factory (1971)\nIndependence Day (ID4) (1996)\nToy Story (1995)\nFather of the Bride Part II (1995)\nHunchback of Notre Dame, The (1996)\nLion King, The (1994)\nMrs. Doubtfire (1993)\nJungle Book, The (1994)\n```\n\n**Key Challenge** which needs to be addressed in this segment is not recommending the similar movie names, *it is to let the user give the movie name with correct spelling*\n\nTo address this challenge, a new functionality has been written.\n\n#### Dynamic movie name Suggestor\n**Dynamic movie name Suggestions for the User (through User Interface)**\nA functionality was designed to *dynamically suggesting movie name* from the existing movie corpus we have, based on the user input using try and except architecture.\n\nA function which outputs movie names as suggestion when the user mis spells the movie name. User might have intended to type any of these movie names.\n\nThis function provides user with movie name suggestions if movie name is mis-spelled or Recommends similar movies to the input movie if the movie name is valid.\n\nResults of the Recommender System built using KNN along with Dynamic Suggestor:\n```\nEnter the Movie name: back\n\nEntered Movie name is not matching with any movie from the dataset . Please check the below suggestions :\n ['Back to the Future (1985)', 'Backbeat (1993)', 'Best of the Best 3: No Turning Back (1995)', 'Empire Strikes Back, The (1980)', 'Hunchback of Notre Dame, The (1996)', 'Switchback (1997)'] \nEnter the Movie name: Empire Strikes Back, The (1980)\n\nEnter Number of movie recommendations needed: 15\n\nTop 15 movies which are very much similar to the Movie- Empire Strikes Back, The (1980) are: \n \nRaiders of the Lost Ark (1981)\nIndiana Jones and the Last Crusade (1989)\nBack to the Future (1985)\nStar Wars (1977)\nTerminator, The (1984)\nReturn of the Jedi (1983)\nTerminator 2: Judgment Day (1991)\nPrincess Bride, The (1987)\nJurassic Park (1993)\nFugitive, The (1993)\nSilence of the Lambs, The (1991)\nE.T. the Extra-Terrestrial (1982)\nStar Trek: The Wrath of Khan (1982)\nAlien (1979)\nBlade Runner (1982)\n```\n\n**Observations:** on above built KNN Recommender System:\n\nAn interesting observation would be that the above KNN model for movies recommends movies that are produced in very similar years of the input movie. However, the cosine distance of all those recommendations are observed to be actually quite small. This might be because there are too many zero values in our movie-user matrix. With too many zero values in our data, the data sparsity becomes a real issue for KNN model and the distance in KNN model starts to fall apart. \n\n\n## [Recommender System using SVD](https://github.com/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Recommender_System_using_SVD.ipynb)\n\nMatrix Factorization is simply a mathematical operation for matrices. It is usually more effective in collaborative filtering, because it allows us to discover the latent (hidden) features underlying the interactions between users and items (movies).\n\nUtility matrix has been formed from the existing merged dataframe and normalized across the entity (movie or user) with which you want find the similarity.\n\nSingular Value Decomposition is done on utility matrix and latent features of rows and columns (movies and users in this case). In SVD decomposition, Where A is a m x n utility matrix, U is a m x r orthogonal left singular matrix, which represents the relationship between users and latent factors, S is a r x r diagonal matrix, which describes the strength of each latent factor and V is a r x n diagonal right singular matrix, which indicates the similarity between items and latent factors. The latent factors here are the characteristics of the items, for example, the genre of the music. The SVD decreases the dimension of the utility matrix A by extracting its latent factors. It maps each user and each item into a r-dimensional latent space. This mapping facilitates a clear representation of relationships between users and items/movies.\n\n**SVD reduces the dimensionality reduction and gets us important latent features which can almost approximate all values in the utility matrix (including null values). Already available values in the utility matrix can be used to evaluate the predictions and tune the parameters/weights in the latent features (if matrix factorization used) or help us to pick the number of latent features from the SVD decomposition. Once number of latent features to be picked are decided, we can populate the null values and use these predicted ratings of a user for movie to recommend the movie with highest predicted rating to that particular user.**\n\nA function is defined to calculate the cosine similarity on the given dataframe and extracting requesting number of closely matched movie indices with the help of numpy einsum which valuates the Einstein summation convention on the operands. Dynamic movie name suggestor discussed above is also used as part of user interactive interface.\n\nMovie Recommendations using SVD giving a movie name as input:\n\n```\nEnter the Movie name: dal\nEntered Movie name is not matching with any movie from the dataset . Please check the below suggestions :\n ['101 Dalmatians (1996)', 'Mrs. Dalloway (1997)']\nEnter the Movie name: 101 Dalmatians (1996)\n\nEnter Number of movie recommendations needed: 10\nTop 10 movies which are very much similar to the Movie- 101 Dalmatians (1996) are: \n \nBlack Beauty (1994)\nFree Willy 2: The Adventure Home (1995)\nEvening Star, The (1996)\nRobin Hood: Men in Tights (1993)\nCool Runnings (1993)\nTurbo: A Power Rangers Movie (1997)\nRemains of the Day, The (1993)\nCity Hall (1996)\nChildren of the Corn: The Gathering (1996)\n```\n\n#### Limitations of Matrix factorization techniques\nSome limitations of matrix factorization include:\n\n * The difficulty of using side features (that is, any features beyond the query ID/item ID). As a result, the model can only be queried with a user or item present in the training set.\n * Relevance of recommendations. Popular items tend to be recommended for everyone, especially when using dot product as a similarity measure. It is better to capture specific user interests.\n * The matrix factorization also had the cold start problem due to the fact that it had no feature vector or embedding for the new items.\n * Matrix factorization works on the simple inner product of the User and item feature embeddings, it is often not enough to capture and represent the complex relations in the user and items.\n \n## [Recommender System using Softmax Deep Neural Networks](https://github.com/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Recommender_System_using_Softmax_DNN.ipynb)\n\n#### Introduction\nThe above mentioned limitations of matrix factorization can be addressed with the help of Deep Neural Network (DNN) models. Due to flexibility of the input layer of network, DNNs can easily incorporate query features and item features which can help capture the specific interests of a user and improve the relevance of recommendations.\n\nThere are different types of Deep Neural Networks applications like DNN with Softmax layer, DNN with Autoencoder architecture or may it be Recommender System with Wide & Deep Neural Networks that can be applied to Recommender Systems for better movies to recommend.\n\nFor this project, **Softmax Deep Neural Networks** are used to recommend movies. Users and Movies are one-hot encoded and fed into the Deep Neural Network as different distinct inputs and ratings are given as output.\n\nDeep Neural Network model was built by extracting the latent features of Users and movies with the help of Embedding layers and then Dense layers with dropouts were stacked in the end and finally a Dense layer with 9 neurons (one for each possible rating from 1 to 5) with a Softmax activation function was added.\n\nHyperparmeters of the model were tuning, many loss functions and optimizers were tried with minimum validation loss as metric to built the model and get the weights.\n\nFinally, 'SGD' for optimizer and **Sparse Categorical Cross entropy** for loss function were picked.\n\n#### Movie Recommendations:\nUser id is taken as input from the User. Then the movie ids which were not already seen by extracted from the available dataframe.\n\nHow this DNN model works is, it takes two inputs, one of the input has user id's and the other has corresponding movie id's. Here DNN model tries to predict the ratings of the user - movie combination. So, we can input a specific user id (broadcasting it with the size of other input) and unseen movie id of the user and expect the model to give the ratings of the movies which would have been the ratings given by the user. Here, the ratings are already normalized and as we need the movies which interest the user more, ratings are not brought back to 0-5 scale.\n\nDNN model is used to predict the ratings of the unseen movies.\n\n**Predicted Ratings:**\n````\n[[6.28711879e-01 3.71125787e-01 1.93846718e-05 ... 2.48171236e-05\n  2.07571484e-05 3.11595759e-05]\n [5.16196430e-01 4.83636826e-01 2.06636632e-05 ... 2.40022491e-05\n  2.14833890e-05 3.09596326e-05]\n ...\n [6.53564811e-01 3.46285373e-01 1.90432311e-05 ... 2.25746426e-05\n  1.92296520e-05 2.91551714e-05]]\n````\nOutput is of shape (1628, 9). We got probability of each possible rating from 1 to 5. We can extract specific rating which user would have given to a movie but it is not useful for these recommendations now.\n````\narray([0.6287119, 0.5161964, 0.8921049, ..., 0.6535648, 0.577208 ,\n       0.6869574], dtype=float32)\n````\nThese predicted pseudo-ratings of the user for the unseen movies are sorted with highest ratings in the first and these labels are inverse transformed to get desired number of Movie names.\n\n**Movie Recommendations using Softmax Deep Neural Network given user id as input:**\n\n````\nEnter user id\n307\nEnter number of movies to be recommended:\n15\nMovie seen by the User:\n['12 Angry Men (1957)',\n '2001: A Space Odyssey (1968)',\n 'Abyss, The (1989)',\n 'Alien (1979)',\n 'Apollo 13 (1995)',\n 'Boot, Das (1981)',\n 'Brady Bunch Movie, The (1995)',\n 'Braveheart (1995)',\n 'Brazil (1985)',\n 'Casablanca (1942)',\n 'Close Shave, A (1995)',\n 'Contact (1997)',\n 'E.T. the Extra-Terrestrial (1982)',\n 'Empire Strikes Back, The (1980)',\n 'English Patient, The (1996)',\n 'Englishman Who Went Up a Hill, But Came Down a Mountain, The (1995)',\n 'Escape from L.A. (1996)',\n 'Fargo (1996)',\n...\n...\n 'Sex, Lies, and Videotape (1989)',\n 'Shadowlands (1993)',\n 'Shawshank Redemption, The (1994)',\n 'Shining, The (1980)',\n 'Sneakers (1992)',\n 'Snow White and the Seven Dwarfs (1937)',\n 'Sound of Music, The (1965)',\n 'Stand by Me (1986)',\n 'Star Trek III: The Search for Spock (1984)',\n 'Star Trek IV: The Voyage Home (1986)',\n 'Star Trek: The Motion Picture (1979)',\n 'Star Trek: The Wrath of Khan (1982)',\n 'Star Wars (1977)',\n 'Stargate (1994)',\n 'Tank Girl (1995)',\n 'Terminator, The (1984)',\n 'This Is Spinal Tap (1984)',\n 'Titanic (1997)',\n 'To Kill a Mockingbird (1962)',\n 'Top Gun (1986)',\n 'Toy Story (1995)',\n 'Wallace & Gromit: The Best of Aardman Animation (1996)',\n 'Wizard of Oz, The (1939)',\n 'Wrong Trousers, The (1993)']\n````\n````\nTop 15 Movie recommendations for the User 307 are:\n['Speed 2: Cruise Control (1997)',\n 'Houseguest (1994)',\n 'Batman & Robin (1997)',\n 'Magic Hour, The (1998)',\n \"Devil's Advocate, The (1997)\",\n 'Gone with the Wind (1939)',\n 'Cobb (1994)',\n 'Cool Runnings (1993)',\n 'Independence Day (ID4) (1996)',\n 'Smoke (1995)',\n 'Once Were Warriors (1994)',\n 'True Romance (1993)',\n 'Red Rock West (1992)',\n 'Third Man, The (1949)',\n 'MatchMaker, The (1997)']\n````\n"
  },
  {
    "path": "Recommender_System_using_SVD.ipynb",
    "content": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Recommender-System-using-SVD.ipynb\",\n      \"provenance\": [],\n      \"collapsed_sections\": [],\n      \"authorship_tag\": \"ABX9TyPOSQ55wsi8de+tmooQGYsg\",\n      \"include_colab_link\": true\n    },\n    \"kernelspec\": {\n      \"name\": \"python3\",\n      \"display_name\": \"Python 3\"\n    }\n  },\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"view-in-github\",\n        \"colab_type\": \"text\"\n      },\n      \"source\": [\n        \"<a href=\\\"https://colab.research.google.com/github/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Recommender_System_using_SVD.ipynb\\\" target=\\\"_parent\\\"><img src=\\\"https://colab.research.google.com/assets/colab-badge.svg\\\" alt=\\\"Open In Colab\\\"/></a>\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"17vYjrcwNXOt\"\n      },\n      \"source\": [\n        \"import os\\n\",\n        \"import numpy as np\\n\",\n        \"import pandas as pd\\n\",\n        \"import matplotlib.pyplot as plt\"\n      ],\n      \"execution_count\": 1,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"RD2CO0eiNoCX\"\n      },\n      \"source\": [\n        \"DATASET_LINK='http://files.grouplens.org/datasets/movielens/ml-100k.zip'\"\n      ],\n      \"execution_count\": 2,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"mD1SZuNdNqV5\",\n        \"outputId\": \"1c69d5ea-7c54-4ee6-8b43-a5730ede0c9d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 622\n        }\n      },\n      \"source\": [\n        \"!wget -nc http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n        \"!unzip -n ml-100k.zip\"\n      ],\n      \"execution_count\": 3,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"--2020-10-29 14:41:19--  http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n            \"Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\\n\",\n            \"Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:80... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 4924029 (4.7M) [application/zip]\\n\",\n            \"Saving to: ‘ml-100k.zip’\\n\",\n            \"\\n\",\n            \"ml-100k.zip         100%[===================>]   4.70M  16.2MB/s    in 0.3s    \\n\",\n            \"\\n\",\n            \"2020-10-29 14:41:19 (16.2 MB/s) - ‘ml-100k.zip’ saved [4924029/4924029]\\n\",\n            \"\\n\",\n            \"Archive:  ml-100k.zip\\n\",\n            \"   creating: ml-100k/\\n\",\n            \"  inflating: ml-100k/allbut.pl       \\n\",\n            \"  inflating: ml-100k/mku.sh          \\n\",\n            \"  inflating: ml-100k/README          \\n\",\n            \"  inflating: ml-100k/u.data          \\n\",\n            \"  inflating: ml-100k/u.genre         \\n\",\n            \"  inflating: ml-100k/u.info          \\n\",\n            \"  inflating: ml-100k/u.item          \\n\",\n            \"  inflating: ml-100k/u.occupation    \\n\",\n            \"  inflating: ml-100k/u.user          \\n\",\n            \"  inflating: ml-100k/u1.base         \\n\",\n            \"  inflating: ml-100k/u1.test         \\n\",\n            \"  inflating: ml-100k/u2.base         \\n\",\n            \"  inflating: ml-100k/u2.test         \\n\",\n            \"  inflating: ml-100k/u3.base         \\n\",\n            \"  inflating: ml-100k/u3.test         \\n\",\n            \"  inflating: ml-100k/u4.base         \\n\",\n            \"  inflating: ml-100k/u4.test         \\n\",\n            \"  inflating: ml-100k/u5.base         \\n\",\n            \"  inflating: ml-100k/u5.test         \\n\",\n            \"  inflating: ml-100k/ua.base         \\n\",\n            \"  inflating: ml-100k/ua.test         \\n\",\n            \"  inflating: ml-100k/ub.base         \\n\",\n            \"  inflating: ml-100k/ub.test         \\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"tkaD_uOCNvjd\"\n      },\n      \"source\": [\n        \"#Loading MovieLens dataset\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"atuOW5TGN0fh\"\n      },\n      \"source\": [\n        \"Loading u.info -- The number of users, items, and ratings in the u data set.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"9_Ok0vy6Nw24\",\n        \"outputId\": \"d4546608-2088-4767-cb5e-57ae5edb3c2c\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"overall_stats = pd.read_csv('ml-100k/u.info', header=None)\\n\",\n        \"print(\\\"Details of users, items and ratings involved in the loaded movielens dataset: \\\",list(overall_stats[0]))\"\n      ],\n      \"execution_count\": 4,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Details of users, items and ratings involved in the loaded movielens dataset:  ['943 users', '1682 items', '100000 ratings']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"xP6_W-3IN60_\"\n      },\n      \"source\": [\n        \"Loading u.data     -- The full u data set, 100000 ratings by 943 users on 1682 items.\\n\",\n        \"\\n\",\n        \"---\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"              Each user has rated at least 20 movies.  Users and items are\\n\",\n        \"              numbered consecutively from 1.  The data is randomly ordered. This is a tab separated list of \\n\",\n        \"\\t         user id | item id | rating | timestamp. \\n\",\n        \"              The time stamps are unix seconds since 1/1/1970 UTC \"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ST78PsBON_2e\",\n        \"outputId\": \"f0dfb38f-763a-4a33-b08b-3a6566a9c2f7\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"## same item id is same as movie id, item id column is renamed as movie id\\n\",\n        \"column_names1 = ['user id','movie id','rating','timestamp']\\n\",\n        \"dataset = pd.read_csv('ml-100k/u.data', sep='\\\\t',header=None,names=column_names1)\\n\",\n        \"dataset.head() \"\n      ],\n      \"execution_count\": 5,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>186</td>\\n\",\n              \"      <td>302</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>891717742</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>22</td>\\n\",\n              \"      <td>377</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>878887116</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>244</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>880606923</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>166</td>\\n\",\n              \"      <td>346</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>886397596</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp\\n\",\n              \"0      196       242       3  881250949\\n\",\n              \"1      186       302       3  891717742\\n\",\n              \"2       22       377       1  878887116\\n\",\n              \"3      244        51       2  880606923\\n\",\n              \"4      166       346       1  886397596\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 5\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"67YQURj2OD-4\",\n        \"outputId\": \"c9fc4320-d84b-4ff9-be67-0aaeca2a3c5a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"len(dataset), max(dataset['movie id']),min(dataset['movie id'])\"\n      ],\n      \"execution_count\": 6,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(100000, 1682, 1)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 6\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3eNaoXfoOG3U\"\n      },\n      \"source\": [\n        \"Loading u.item     -- Information about the items (movies); this is a tab separated\\n\",\n        \"\\n\",\n        \"              list of\\n\",\n        \"              movie id | movie title | release date | video release date |\\n\",\n        \"              IMDb URL | unknown | Action | Adventure | Animation |\\n\",\n        \"              Children's | Comedy | Crime | Documentary | Drama | Fantasy |\\n\",\n        \"              Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |\\n\",\n        \"              Thriller | War | Western |\\n\",\n        \"              The last 19 fields are the genres, a 1 indicates the movie\\n\",\n        \"              is of that genre, a 0 indicates it is not; movies can be in\\n\",\n        \"              several genres at once.\\n\",\n        \"              The movie ids are the ones used in the u.data data set.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"wefeyoigOHO0\",\n        \"outputId\": \"16131173-6a4c-40e0-b3b0-2f6c6b218803\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 54\n        }\n      },\n      \"source\": [\n        \"d = 'movie id | movie title | release date | video release date | IMDb URL | unknown | Action | Adventure | Animation | Children | Comedy | Crime | Documentary | Drama | Fantasy | Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi | Thriller | War | Western'\\n\",\n        \"column_names2 = d.split(' | ')\\n\",\n        \"print(column_names2)\"\n      ],\n      \"execution_count\": 7,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"['movie id', 'movie title', 'release date', 'video release date', 'IMDb URL', 'unknown', 'Action', 'Adventure', 'Animation', 'Children', 'Comedy', 'Crime', 'Documentary', 'Drama', 'Fantasy', 'Film-Noir', 'Horror', 'Musical', 'Mystery', 'Romance', 'Sci-Fi', 'Thriller', 'War', 'Western']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"kKCtFYT6OMwH\",\n        \"outputId\": \"7911a631-e033-45d7-dfc3-62f916b28e81\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 758\n        }\n      },\n      \"source\": [\n        \"items_dataset = pd.read_csv('ml-100k/u.item', sep='|',header=None,names=column_names2,encoding='latin-1')\\n\",\n        \"items_dataset\"\n      ],\n      \"execution_count\": 8,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>release date</th>\\n\",\n              \"      <th>video release date</th>\\n\",\n              \"      <th>IMDb URL</th>\\n\",\n              \"      <th>unknown</th>\\n\",\n              \"      <th>Action</th>\\n\",\n              \"      <th>Adventure</th>\\n\",\n              \"      <th>Animation</th>\\n\",\n              \"      <th>Children</th>\\n\",\n              \"      <th>Comedy</th>\\n\",\n              \"      <th>Crime</th>\\n\",\n              \"      <th>Documentary</th>\\n\",\n              \"      <th>Drama</th>\\n\",\n              \"      <th>Fantasy</th>\\n\",\n              \"      <th>Film-Noir</th>\\n\",\n              \"      <th>Horror</th>\\n\",\n              \"      <th>Musical</th>\\n\",\n              \"      <th>Mystery</th>\\n\",\n              \"      <th>Romance</th>\\n\",\n              \"      <th>Sci-Fi</th>\\n\",\n              \"      <th>Thriller</th>\\n\",\n              \"      <th>War</th>\\n\",\n              \"      <th>Western</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Toy%20Story%2...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?GoldenEye%20(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Four%20Rooms%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Get%20Shorty%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Copycat%20(1995)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>...</th>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"      <td>...</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1677</th>\\n\",\n              \"      <td>1678</td>\\n\",\n              \"      <td>Mat' i syn (1997)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Mat%27+i+syn+...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1678</th>\\n\",\n              \"      <td>1679</td>\\n\",\n              \"      <td>B. Monkey (1998)</td>\\n\",\n              \"      <td>06-Feb-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?B%2E+Monkey+(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1679</th>\\n\",\n              \"      <td>1680</td>\\n\",\n              \"      <td>Sliding Doors (1998)</td>\\n\",\n              \"      <td>01-Jan-1998</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/Title?Sliding+Doors+(1998)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1680</th>\\n\",\n              \"      <td>1681</td>\\n\",\n              \"      <td>You So Crazy (1994)</td>\\n\",\n              \"      <td>01-Jan-1994</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?You%20So%20Cr...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1681</th>\\n\",\n              \"      <td>1682</td>\\n\",\n              \"      <td>Scream of Stone (Schrei aus Stein) (1991)</td>\\n\",\n              \"      <td>08-Mar-1996</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Schrei%20aus%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"<p>1682 rows × 24 columns</p>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"      movie id                                movie title  ... War  Western\\n\",\n              \"0            1                           Toy Story (1995)  ...   0        0\\n\",\n              \"1            2                           GoldenEye (1995)  ...   0        0\\n\",\n              \"2            3                          Four Rooms (1995)  ...   0        0\\n\",\n              \"3            4                          Get Shorty (1995)  ...   0        0\\n\",\n              \"4            5                             Copycat (1995)  ...   0        0\\n\",\n              \"...        ...                                        ...  ...  ..      ...\\n\",\n              \"1677      1678                          Mat' i syn (1997)  ...   0        0\\n\",\n              \"1678      1679                           B. Monkey (1998)  ...   0        0\\n\",\n              \"1679      1680                       Sliding Doors (1998)  ...   0        0\\n\",\n              \"1680      1681                        You So Crazy (1994)  ...   0        0\\n\",\n              \"1681      1682  Scream of Stone (Schrei aus Stein) (1991)  ...   0        0\\n\",\n              \"\\n\",\n              \"[1682 rows x 24 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 8\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"va0LfWdWOPlS\",\n        \"outputId\": \"9ff29312-94fa-4112-b95d-b7439f761818\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"movie_dataset = items_dataset[['movie id','movie title']]\\n\",\n        \"movie_dataset.head()\"\n      ],\n      \"execution_count\": 9,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   movie id        movie title\\n\",\n              \"0         1   Toy Story (1995)\\n\",\n              \"1         2   GoldenEye (1995)\\n\",\n              \"2         3  Four Rooms (1995)\\n\",\n              \"3         4  Get Shorty (1995)\\n\",\n              \"4         5     Copycat (1995)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 9\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"jPAs7eSzOSo3\"\n      },\n      \"source\": [\n        \"Looking at length of original items_dataset and length of unique combination of rows in items_dataset after removing movie id column\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"xGq7uutfOS4n\",\n        \"outputId\": \"a7840282-bc5b-4911-baf4-3ef3fdffe2b6\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"## looking at length of original items_dataset and length of unique combination of rows in items_dataset after removing movie id column\\n\",\n        \"len(items_dataset.groupby(by=column_names2[1:])),len(items_dataset)\"\n      ],\n      \"execution_count\": 10,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(1664, 1682)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 10\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"A2QGg2ccOaIC\"\n      },\n      \"source\": [\n        \"We can see there are 18 extra movie id's for already mapped movie title and the same duplicate movie id is assigned to the user in the user-item dataset.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"LKHTNFPHOdbD\"\n      },\n      \"source\": [\n        \"#Merging required datasets\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"2miH5N1TOY7c\",\n        \"outputId\": \"fb7cb9f5-8fd8-4968-f086-b8ec8c84c2ef\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"merged_dataset = pd.merge(dataset, movie_dataset, how='inner', on='movie id')\\n\",\n        \"merged_dataset.head()\"\n      ],\n      \"execution_count\": 11,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>63</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>875747190</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>226</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>883888671</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>154</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879138235</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>306</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>876503793</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp   movie title\\n\",\n              \"0      196       242       3  881250949  Kolya (1996)\\n\",\n              \"1       63       242       3  875747190  Kolya (1996)\\n\",\n              \"2      226       242       5  883888671  Kolya (1996)\\n\",\n              \"3      154       242       3  879138235  Kolya (1996)\\n\",\n              \"4      306       242       5  876503793  Kolya (1996)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 11\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"OqTRx84wOn8k\"\n      },\n      \"source\": [\n        \"A dataset is created from the existing merged dataset by grouping the unique user id and movie title combination and the ratings by a user to the same movie in different instances (timestamps) are averaged and stored in the new dataset.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"1ZwpiFVyOrM7\"\n      },\n      \"source\": [\n        \"Example of a multiple rating scenario by an user to a specific movie:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"BUP7kGAOOoyY\",\n        \"outputId\": \"50dd79ff-34ce-43d6-f571-d3a91e196baa\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 106\n        }\n      },\n      \"source\": [\n        \"merged_dataset[(merged_dataset['movie title'] == 'Chasing Amy (1997)') & (merged_dataset['user id'] == 894)]\"\n      ],\n      \"execution_count\": 12,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4800</th>\\n\",\n              \"      <td>894</td>\\n\",\n              \"      <td>246</td>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>882404137</td>\\n\",\n              \"      <td>Chasing Amy (1997)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>22340</th>\\n\",\n              \"      <td>894</td>\\n\",\n              \"      <td>268</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879896041</td>\\n\",\n              \"      <td>Chasing Amy (1997)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"       user id  movie id  rating  timestamp         movie title\\n\",\n              \"4800       894       246       4  882404137  Chasing Amy (1997)\\n\",\n              \"22340      894       268       3  879896041  Chasing Amy (1997)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 12\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"JvhzXCA75Vfz\"\n      },\n      \"source\": [\n        \"## Creating a final refined dataset with unique user id, movie name combination and their ratings:\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"6t2LGS8oOv_9\",\n        \"outputId\": \"c95cde04-a43b-4688-9b86-afddcc36230d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"refined_dataset = merged_dataset.groupby(by=['user id','movie title'], as_index=False).agg({\\\"rating\\\":\\\"mean\\\"})\\n\",\n        \"\\n\",\n        \"refined_dataset.head()\"\n      ],\n      \"execution_count\": 13,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>101 Dalmatians (1996)</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>12 Angry Men (1957)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>20,000 Leagues Under the Sea (1954)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>2001: A Space Odyssey (1968)</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Abyss, The (1989)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id                          movie title  rating\\n\",\n              \"0        1                101 Dalmatians (1996)     2.0\\n\",\n              \"1        1                  12 Angry Men (1957)     5.0\\n\",\n              \"2        1  20,000 Leagues Under the Sea (1954)     3.0\\n\",\n              \"3        1         2001: A Space Odyssey (1968)     4.0\\n\",\n              \"4        1                    Abyss, The (1989)     3.0\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 13\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_2XqWYvV5h1d\"\n      },\n      \"source\": [\n        \"## Creating lists for unique user id's and movie names:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"6YV2O4CvOv5u\",\n        \"outputId\": \"81dd1e52-8bdc-4835-eeb3-2a967b97300d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"#list of all users\\n\",\n        \"unique_users = refined_dataset['user id'].unique() \\n\",\n        \"#creating a list of all movie names in it\\n\",\n        \"unique_movies = refined_dataset['movie title'].unique()\\n\",\n        \"len(unique_movies),len(unique_users)\"\n      ],\n      \"execution_count\": 14,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(1664, 943)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 14\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"gBHl_tPZ7oCy\"\n      },\n      \"source\": [\n        \"## Converting user id, movie name column of refined dataset to respective lists:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"CXSqRdqz-4aA\",\n        \"outputId\": \"c50be8a9-296d-4ee9-e450-60d021fcc2a4\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"users_list = refined_dataset['user id'].tolist()\\n\",\n        \"movie_list = refined_dataset['movie title'].tolist()\\n\",\n        \"len(users_list),len(movie_list)\"\n      ],\n      \"execution_count\": 15,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(99693, 99693)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 15\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Gxy-Q_aL754R\"\n      },\n      \"source\": [\n        \"## Extracting ratings into a list:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"KndchZIe0Vp3\",\n        \"outputId\": \"f44614ca-4ad0-4c36-aca4-3c083cb12270\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 70\n        }\n      },\n      \"source\": [\n        \"ratings_list = refined_dataset['rating'].tolist()\\n\",\n        \"print(ratings_list)\\n\",\n        \"len(ratings_list)\"\n      ],\n      \"execution_count\": 16,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"[2.0, 5.0, 3.0, 4.0, 3.0, 3.0, 1.0, 4.0, 4.0, 5.0, 5.0, 1.0, 5.0, 4.0, 5.0, 3.0, 4.0, 2.0, 4.0, 4.0, 1.0, 5.0, 2.0, 3.0, 1.0, 1.0, 1.0, 3.0, 2.0, 3.0, 5.0, 2.0, 4.0, 5.0, 4.0, 5.0, 3.0, 4.0, 5.0, 1.0, 5.0, 4.0, 4.0, 3.0, 3.0, 3.0, 4.0, 5.0, 5.0, ..., 5.0, 1.0, 3.0, 1.0, 4.0, 4.0, 2.0, 5.0, 5.0, 4.0, 3.0, 5.0, 4.0, 5.0, 5.0, 3.0, 3.0, 4.0, 4.0, 3.0, 4.0, 3.0, 5.0, 4.0, 4.0, 3.0, 4.0, 5.0, 5.0, 4.0, 5.0, 3.0, 3.0, 4.0, 4.0, 4.0, 5.0, 4.0, 4.0, 4.0, 5.0, 5.0, 2.0, 2.0, 5.0, 4.0, 4.0, 4.0, 3.0, 3.0, 5.0, 4.0, 5.0, 5.0, 3.0, 4.0, 4.0, 4.0, 5.0, 4.0, 3.0, 5.0, 5.0, 5.0, 3.0, 4.0, 5.0, 5.0, 3.0, 5.0, 5.0, 5.0, 3.0, 5.0, 5.0, 2.0, 4.0, 5.0, 5.0, 5.0, 5.0, 4.0, 4.0, 5.0, 4.0, 4.0, 5.0, 3.0, 4.0, 5.0, 4.0, 5.0, 4.0, 5.0, 3.0, 3.0, 4.0, 5.0, 4.0, 4.0, 5.0, 5.0, 4.0, 5.0, 5.0, 4.0, 4.0, 5.0, 4.0, 4.0, 4.0, 5.0, 4.0, 5.0, 4.0, 5.0, 3.0, 4.0, 5.0, 4.0, 4.0, 3.0, 5.0, 4.0, 4.0, 4.0, 2.0, 4.0, 1.0, 3.0, 4.0, 1.0, 5.0, 3.0, 3.0, 4.0, 4.0, 2.0, 4.0, 4.0, 2.0, 5.0, 3.0, 2.0, 1.0, 3.0, 4.0, 4.0, 1.0, 5.0, 4.0, 4.0, 4.0, 1.0, 4.0, 5.0, 4.0, 4.0, 4.0, 5.0, 5.0, 4.0, 4.0, 2.0, 4.0, 3.0, 5.0, 4.0, 3.0, 4.0, 2.0, 5.0, 4.0, 2.0, 5.0, 2.0, 2.0, 5.0, 1.0, 5.0, 5.0, 4.0, 2.0, 5.0, 5.0, 5.0, 5.0, 5.0, 4.0, 2.0, 2.0, 4.0, 4.0, 4.0, 2.0, 3.0, 4.0, 4.0, 3.0, 3.0, 4.0, 3.0, 4.0, 4.0, 5.0, 2.0, 4.0, 1.0, 3.0, 1.0, 5.0, 2.0, 2.0, 3.0, 4.0, 2.0, 4.0, 2.0, 2.0, 5.0, 3.0, 3.0, 4.0, 3.0, 2.0, 4.0, 3.0, 5.0, 5.0, 4.0, 5.0, 5.0, 4.0, 2.0, 5.0, 4.0, 4.0, 4.0, 4.0, 4.0, 4.0, 1.0, 4.0, 2.0, 4.0, 3.0, 3.0, 4.0, 5.0, 4.0, 5.0, 5.0, 1.0, 3.0, 3.0, 4.0, 2.0, 1.0, 1.0, 1.0, 1.0, 3.0, 4.0, 3.0, 5.0, 3.0, 4.0, 4.0, 4.0, 3.0, 1.0, 5.0, 2.0, 4.0, 4.0, 4.0, 5.0, 4.0, 4.0, 5.0, 4.0, 5.0, 3.0, 5.0, 2.0, 4.0, 2.0, 4.0, 1.0, 3.0, 2.0, 1.0, 4.0, 3.0]\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"99693\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 16\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"pKPESOnj8BFn\"\n      },\n      \"source\": [\n        \"## Creating a dictionary to map movie name to their corresponding index in the unique movie name list\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"IqxEfLEXif6R\",\n        \"outputId\": \"068d9556-810d-4885-c561-1bf242118683\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 70\n        }\n      },\n      \"source\": [\n        \"movies_dict = {unique_movies[i] : i for i in range(len(unique_movies))}\\n\",\n        \"print(movies_dict)\\n\",\n        \"print(len(movies_dict))\"\n      ],\n      \"execution_count\": 17,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"{'101 Dalmatians (1996)': 0, '12 Angry Men (1957)': 1, '20,000 Leagues Under the Sea (1954)': 2, '2001: A Space Odyssey (1968)': 3, 'Abyss, The (1989)': 4, 'Ace Ventura: Pet Detective (1994)': 5, 'Air Bud (1997)': 6, 'Akira (1988)': 7, 'Aladdin (1992)': 8, 'Alien (1979)': 9, 'Aliens (1986)': 10, 'All Dogs Go to Heaven 2 (1996)': 11, 'Amadeus (1984)': 12, 'Angels and Insects (1995)': 13, \\\"Antonia's Line (1995)\\\": 14, 'Apocalypse Now (1979)': 15, ..... , 'Entertaining Angels: The Dorothy Day Story (1996)': 1637, 'Favor, The (1994)': 1638, 'Little City (1998)': 1639, 'Target (1995)': 1640, 'Getting Away With Murder (1996)': 1641, 'Small Faces (1995)': 1642, 'New Age, The (1994)': 1643, 'Rough Magic (1995)': 1644, '8 Heads in a Duffel Bag (1997)': 1645, \\\"Brother's Kiss, A (1997)\\\": 1646, 'MURDER and murder (1996)': 1647, 'Next Step, The (1995)': 1648, 'Nothing Personal (1995)': 1649, 'Ripe (1996)': 1650, 'Tainted (1998)': 1651, 'Wedding Bell Blues (1996)': 1652, 'Further Gesture, A (1996)': 1653, 'Kika (1993)': 1654, 'Mirage (1995)': 1655, 'Mamma Roma (1962)': 1656, 'Sunchaser, The (1996)': 1657, 'War at Home, The (1996)': 1658, 'Sweet Nothing (1995)': 1659, 'B. Monkey (1998)': 1660, \\\"Mat' i syn (1997)\\\": 1661, 'You So Crazy (1994)': 1662, 'Scream of Stone (Schrei aus Stein) (1991)': 1663}\\n\",\n            \"1664\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Dyk5N4CQ8eTG\"\n      },\n      \"source\": [\n        \"## Creating a Utility matrix with rows as movies, columns as users, to make the refined dataframe compatible for SVD operations\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"xQCQFZoFmk9M\",\n        \"outputId\": \"043372bf-07c3-489c-c3c8-52f9a5d5fd98\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 151\n        }\n      },\n      \"source\": [\n        \"## creating a utility matrix for the available data\\n\",\n        \"\\n\",\n        \"## Creating an empty array with (number of rows = number of movies) and (number of columns = number of users) rows as movies, columns as users\\n\",\n        \"\\n\",\n        \"utility_matrix = np.asarray([[np.nan for j in range(len(unique_users))] for i in range(len(unique_movies))])\\n\",\n        \"print(\\\"Shape of Utility matrix: \\\",utility_matrix.shape)\\n\",\n        \"\\n\",\n        \"for i in range(len(ratings_list)):\\n\",\n        \"\\n\",\n        \"  ## ith entry in users list and subtract 1 to get the index, we do the same for movies but we already defined a dictionary to get the index.\\n\",\n        \"  utility_matrix[movies_dict[movie_list[i]]][users_list[i]-1] = ratings_list[i]\\n\",\n        \"\\n\",\n        \"utility_matrix\"\n      ],\n      \"execution_count\": 18,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Shape of Utility matrix:  (1664, 943)\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[ 2., nan, nan, ..., nan, nan, nan],\\n\",\n              \"       [ 5., nan, nan, ..., nan, nan, nan],\\n\",\n              \"       [ 3., nan, nan, ..., nan, nan, nan],\\n\",\n              \"       ...,\\n\",\n              \"       [nan, nan, nan, ..., nan, nan, nan],\\n\",\n              \"       [nan, nan, nan, ..., nan, nan, nan],\\n\",\n              \"       [nan, nan, nan, ..., nan, nan, nan]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 18\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Sbawp-X19TBo\"\n      },\n      \"source\": [\n        \"## Normalizing the utility matrix across movies column\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Kehwev_F-blc\"\n      },\n      \"source\": [\n        \"mask = np.isnan(utility_matrix)\\n\",\n        \"masked_arr = np.ma.masked_array(utility_matrix, mask)\\n\",\n        \"temp_mask = masked_arr.T\\n\",\n        \"rating_means = np.mean(temp_mask, axis=0)\\n\",\n        \"\\n\",\n        \"filled_matrix = temp_mask.filled(rating_means)\\n\",\n        \"filled_matrix = filled_matrix.T\\n\",\n        \"filled_matrix = filled_matrix - rating_means.data[:,np.newaxis]\"\n      ],\n      \"execution_count\": 19,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"WcGCWYTO1kmG\",\n        \"outputId\": \"2b9ae5eb-4529-4bc3-c870-28676256621a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 235\n        }\n      },\n      \"source\": [\n        \"filled_matrix = filled_matrix.T / np.sqrt(len(movies_dict)-1)\\n\",\n        \"filled_matrix\"\n      ],\n      \"execution_count\": 21,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[-0.02227217,  0.01608636, -0.01226094, ...,  0.        ,\\n\",\n              \"         0.        ,  0.        ],\\n\",\n              \"       [ 0.        ,  0.        ,  0.        , ...,  0.        ,\\n\",\n              \"         0.        ,  0.        ],\\n\",\n              \"       [ 0.        ,  0.        ,  0.        , ...,  0.        ,\\n\",\n              \"         0.        ,  0.        ],\\n\",\n              \"       ...,\\n\",\n              \"       [ 0.        ,  0.        ,  0.        , ...,  0.        ,\\n\",\n              \"         0.        ,  0.        ],\\n\",\n              \"       [ 0.        ,  0.        ,  0.        , ...,  0.        ,\\n\",\n              \"         0.        ,  0.        ],\\n\",\n              \"       [ 0.        ,  0.        ,  0.        , ...,  0.        ,\\n\",\n              \"         0.        ,  0.        ]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 21\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"4N4udwv7A_Bv\"\n      },\n      \"source\": [\n        \"Mean values across movies columns are extracted.  \\n\",\n        \"Nan's of utility matrix are imputed with mean values extracted.  \\n\",\n        \"Later the utility matrix has been normalized across movies to get all ratings to a standard/normal scale.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"d8hm0fzFDP77\",\n        \"outputId\": \"402a6331-51b4-46ea-aa75-93548f4ad4e4\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"filled_matrix.shape\"\n      ],\n      \"execution_count\": 22,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(943, 1664)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 22\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"c6DtibCbBelJ\"\n      },\n      \"source\": [\n        \"## Computing SVD (Singular Value Decomposition) of Utility matrix\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"2aTS24TEN9Cv\"\n      },\n      \"source\": [\n        \"## Computing the SVD of the input matrix\\n\",\n        \"\\n\",\n        \"U, S, V = np.linalg.svd(filled_matrix)\"\n      ],\n      \"execution_count\": 23,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"2p2qtdC4Bl7s\"\n      },\n      \"source\": [\n        \"## Creating a list of Case insensitive movie names for further use\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"lxXk1y4f0wxj\"\n      },\n      \"source\": [\n        \"case_insensitive_movies_list = [i.lower() for i in unique_movies]\"\n      ],\n      \"execution_count\": 39,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"gSJ0LSEaBvuu\"\n      },\n      \"source\": [\n        \"## Defining a function to calculate the cosine similarity on the given dataframe and extracting requesting number of closely matched movie indices with the help of numpy einsum which valuates the Einstein summation convention on the operands.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"3GDCTxTDDQco\"\n      },\n      \"source\": [\n        \"#Function to calculate the cosine similarity (sorting by most similar and returning the top N)\\n\",\n        \"def top_cosine_similarity(data, movie_id, top_n=10):\\n\",\n        \"  index = movie_id \\n\",\n        \"  movie_row = data[index, :]\\n\",\n        \"  magnitude = np.sqrt(np.einsum('ij, ij -> i', data, data))\\n\",\n        \"  similarity = np.dot(movie_row, data.T) / (magnitude[index] * magnitude)\\n\",\n        \"  sort_indexes = np.argsort(-similarity)\\n\",\n        \"  return sort_indexes[:top_n]\"\n      ],\n      \"execution_count\": 28,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3VgUlWboC-tU\"\n      },\n      \"source\": [\n        \"## Defining a function to get similar movies for the given movie name\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"YXej0Ynk1HP2\"\n      },\n      \"source\": [\n        \"#k-principal components to represent movies, movie_id to find recommendations, top_n print n results        \\n\",\n        \"def get_similar_movies(movie_name,top_n,k = 50):\\n\",\n        \"  # k = 50\\n\",\n        \"  # movie_id = 1\\n\",\n        \"  # top_n = 10\\n\",\n        \"  \\n\",\n        \"  sliced = V.T[:, :k] # representative data\\n\",\n        \"  movie_id = movies_dict[movie_name]\\n\",\n        \"  indexes = top_cosine_similarity(sliced, movie_id, top_n)\\n\",\n        \"  print(\\\" \\\")\\n\",\n        \"  print(\\\"Top\\\",top_n,\\\"movies which are very much similar to the Movie-\\\",movie_name, \\\"are: \\\")\\n\",\n        \"  print(\\\" \\\")\\n\",\n        \"  for i in indexes[1:]:\\n\",\n        \"    print(unique_movies[i])\"\n      ],\n      \"execution_count\": 49,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"ycb2Ws3jDHuC\"\n      },\n      \"source\": [\n        \"In SVD decomposition, Where A is a m x n utility matrix, U is a m x r orthogonal left singular matrix, which represents the relationship between users and latent factors, S is a r x r diagonal matrix, which describes the strength of each latent factor and V is a r x n diagonal right singular matrix, which indicates the similarity between items and latent factors. The latent factors here are the characteristics of the items, for example, the genre of the music. The SVD decreases the dimension of the utility matrix A by extracting its latent factors. It maps each user and each item into a r-dimensional latent space. This mapping facilitates a clear representation of relationships between users and items. \"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"pMRX3J2wDp_Z\"\n      },\n      \"source\": [\n        \"**Dynamically suggesting** movie name from the existing movie corpus we have, based on the user input using try and except architecture.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"LvjPjBnIDthD\"\n      },\n      \"source\": [\n        \"Defining a function which outputs movie names as suggestion when the user mis spells the movie name. **User might have intended to type any of these movie names.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ou18jV8PQDmA\"\n      },\n      \"source\": [\n        \"# function which takes input and returns suggestions for the user\\n\",\n        \"\\n\",\n        \"def get_possible_movies(movie):\\n\",\n        \"\\n\",\n        \"    temp = ''\\n\",\n        \"    possible_movies = case_insensitive_movies_list.copy()\\n\",\n        \"    for i in movie :\\n\",\n        \"      out = []\\n\",\n        \"      temp += i\\n\",\n        \"      for j in possible_movies:\\n\",\n        \"        if temp in j:\\n\",\n        \"          out.append(j)\\n\",\n        \"      if len(out) == 0:\\n\",\n        \"          return possible_movies\\n\",\n        \"      out.sort()\\n\",\n        \"      possible_movies = out.copy()\\n\",\n        \"\\n\",\n        \"    return possible_movies\"\n      ],\n      \"execution_count\": 50,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"qvhIwdhpDyip\"\n      },\n      \"source\": [\n        \"This function provides user with **movie name suggestions if movie name is mis-spelled** or **Recommends similar movies to the input movie** if the movie name is valid.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"aAght7el0XT3\"\n      },\n      \"source\": [\n        \"class invalid(Exception):\\n\",\n        \"    pass\\n\",\n        \"\\n\",\n        \"def recommender():\\n\",\n        \"    \\n\",\n        \"    try:\\n\",\n        \"\\n\",\n        \"      movie_name = input(\\\"Enter the Movie name: \\\")\\n\",\n        \"      movie_name_lower = movie_name.lower()\\n\",\n        \"      if movie_name_lower not in case_insensitive_movies_list :\\n\",\n        \"        raise invalid\\n\",\n        \"      else :\\n\",\n        \"        # movies_list[case_insensitive_country_names.index(movie_name_lower)]\\n\",\n        \"        num_recom = int(input(\\\"Enter Number of movie recommendations needed: \\\"))\\n\",\n        \"        get_similar_movies(unique_movies[case_insensitive_movies_list.index(movie_name_lower)],num_recom)\\n\",\n        \"\\n\",\n        \"    except invalid:\\n\",\n        \"\\n\",\n        \"      possible_movies = get_possible_movies(movie_name_lower)\\n\",\n        \"\\n\",\n        \"      if len(possible_movies) == len(unique_movies) :\\n\",\n        \"        print(\\\"Movie name entered is does not exist in the list \\\")\\n\",\n        \"      else :\\n\",\n        \"        indices = [case_insensitive_movies_list.index(i) for i in possible_movies]\\n\",\n        \"        print(\\\"Entered Movie name is not matching with any movie from the dataset . Please check the below suggestions :\\\\n\\\",[unique_movies[i] for i in indices])\\n\",\n        \"        print(\\\"\\\")\\n\",\n        \"        recommender()\\n\"\n      ],\n      \"execution_count\": 46,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"VETs7zJu3vFD\",\n        \"outputId\": \"d7b79b0b-b6c1-4ddd-d772-773405d8f3f1\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 319\n        }\n      },\n      \"source\": [\n        \"recommender()\"\n      ],\n      \"execution_count\": 47,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Enter the Movie name: dal\\n\",\n            \"Entered Movie name is not matching with any movie from the dataset . Please check the below suggestions :\\n\",\n            \" ['101 Dalmatians (1996)', 'Mrs. Dalloway (1997)']\\n\",\n            \"Enter the Movie name: 101 Dalmatians (1996)\\n\",\n            \"Enter Number of movie recommendations needed: 10\\n\",\n            \"Top 10 movies which are very much similar to the Movie- 101 Dalmatians (1996) are: \\n\",\n            \" \\n\",\n            \"Black Beauty (1994)\\n\",\n            \"Free Willy 2: The Adventure Home (1995)\\n\",\n            \"Evening Star, The (1996)\\n\",\n            \"Robin Hood: Men in Tights (1993)\\n\",\n            \"Cool Runnings (1993)\\n\",\n            \"Turbo: A Power Rangers Movie (1997)\\n\",\n            \"Remains of the Day, The (1993)\\n\",\n            \"City Hall (1996)\\n\",\n            \"Children of the Corn: The Gathering (1996)\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"/usr/local/lib/python3.6/dist-packages/ipykernel_launcher.py:6: RuntimeWarning: invalid value encountered in true_divide\\n\",\n            \"  \\n\"\n          ],\n          \"name\": \"stderr\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"HE0WgcdUD7RN\"\n      },\n      \"source\": [\n        \"## Conclusion:\\n\",\n        \"\\n\",\n        \"The above built recommender system can suggest movie names similar to the given movie name. The same architecture can be built to get similar users for the given user id and then suggesting movies from those user id's (this would be item-item collaborative filtering). This can be done just by extracting latent factors of U matrix (which corresponds to Users) instead V matrix (which corresponds to Movies) as we did. But a better recommender system can be built only if we could change the axis of normalization of utility matrix to userid from movies.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"G9YUfb5A5Kg3\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"p8sBqW8S5Lz8\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"9IZa7DpF5MGL\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"6Kr6myjW5Ml_\"\n      },\n      \"source\": [\n        \"# Rough Work\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"B5X-Z7D1QDiW\",\n        \"outputId\": \"cb8a352b-0216-4e7b-b9e4-e7374929349d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"movies_dict['101 Dalmatians (1996)']\"\n      ],\n      \"execution_count\": 78,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"0\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 78\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"17hc3lLlDQDe\",\n        \"outputId\": \"75d763d2-ad6c-4a5b-b2bd-e4595879576d\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"len(movie_list)\"\n      ],\n      \"execution_count\": 48,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"99693\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 48\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"VtbcVhCW0ARz\",\n        \"outputId\": \"bffa5c2c-b1c3-466a-8325-e3c4291ca5f7\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 134\n        }\n      },\n      \"source\": [\n        \"util_mat = np.asarray([[np.nan for j in range(4)] for i in range(7)])\\n\",\n        \"util_mat[6][3] = 4\\n\",\n        \"util_mat[2][3] = 12\\n\",\n        \"util_mat[6][0] = 1\\n\",\n        \"util_mat[4][1] = 4\\n\",\n        \"util_mat[0][2] = 8\\n\",\n        \"util_mat[5][1] = 2\\n\",\n        \"util_mat[6][3] = 3\\n\",\n        \"util_mat[3][1] = 6\\n\",\n        \"util_mat[5][0] = 10\\n\",\n        \"util_mat[1][3] = 2\\n\",\n        \"util_mat[0][2] = 7\\n\",\n        \"util_mat[1][0] = 13\\n\",\n        \"util_mat\"\n      ],\n      \"execution_count\": 58,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[nan, nan,  7., nan],\\n\",\n              \"       [13., nan, nan,  2.],\\n\",\n              \"       [nan, nan, nan, 12.],\\n\",\n              \"       [nan,  6., nan, nan],\\n\",\n              \"       [nan,  4., nan, nan],\\n\",\n              \"       [10.,  2., nan, nan],\\n\",\n              \"       [ 1., nan, nan,  3.]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 58\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"5comEfTi0IW3\",\n        \"outputId\": \"69500841-9edf-4351-e63a-49f49c278865\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 134\n        }\n      },\n      \"source\": [\n        \"mask = np.isnan(util_mat)\\n\",\n        \"masked_arr = np.ma.masked_array(util_mat, mask)\\n\",\n        \"transp = masked_arr.T\\n\",\n        \"item_means = np.mean(transp, axis=0)\\n\",\n        \"# np.mean(utility_matrix,axis=0)\\n\",\n        \"s = transp.filled(item_means)\\n\",\n        \"s = s.T\\n\",\n        \"s\"\n      ],\n      \"execution_count\": 59,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[ 7. ,  7. ,  7. ,  7. ],\\n\",\n              \"       [13. ,  7.5,  7.5,  2. ],\\n\",\n              \"       [12. , 12. , 12. , 12. ],\\n\",\n              \"       [ 6. ,  6. ,  6. ,  6. ],\\n\",\n              \"       [ 4. ,  4. ,  4. ,  4. ],\\n\",\n              \"       [10. ,  2. ,  6. ,  6. ],\\n\",\n              \"       [ 1. ,  2. ,  2. ,  3. ]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 59\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"SkPQTEmH96IF\",\n        \"outputId\": \"6427e140-39bf-4f68-bd32-bcf83ccfb3d8\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"e = item_means.data\\n\",\n        \"e\"\n      ],\n      \"execution_count\": 50,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([ 7. ,  7.5, 12. ,  6. ,  4. ,  6. ,  2. ])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 50\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"XC-aG00U9Wqf\"\n      },\n      \"source\": [\n        \"e = e[:,np.newaxis]\"\n      ],\n      \"execution_count\": 56,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"aaIqSo4K8eTJ\",\n        \"outputId\": \"46f64732-6668-4462-b1d6-f486c90282a3\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 134\n        }\n      },\n      \"source\": [\n        \"s.T - e\"\n      ],\n      \"execution_count\": 57,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[ 0. ,  0. ,  0. ,  0. ],\\n\",\n              \"       [ 5.5,  0. ,  0. , -5.5],\\n\",\n              \"       [ 0. ,  0. ,  0. ,  0. ],\\n\",\n              \"       [ 0. ,  0. ,  0. ,  0. ],\\n\",\n              \"       [ 0. ,  0. ,  0. ,  0. ],\\n\",\n              \"       [ 4. , -4. ,  0. ,  0. ],\\n\",\n              \"       [-1. ,  0. ,  0. ,  1. ]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 57\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ZH39mBBy715B\",\n        \"outputId\": \"25641717-d2ed-4e14-d3c3-31a6082cdd11\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 50\n        }\n      },\n      \"source\": [\n        \"d = np.asarray([[2,3,5],[5,6,8]])\\n\",\n        \"d - [[2],[5]]\"\n      ],\n      \"execution_count\": 36,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[0, 1, 3],\\n\",\n              \"       [0, 1, 3]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 36\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"dQVerReH9POv\",\n        \"outputId\": \"e7b1bfe4-d30e-4ca3-8dc2-ab8da38ba7ea\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"f = np.asarray([2,5])\\n\",\n        \"f.T\"\n      ],\n      \"execution_count\": 44,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([2, 5])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 44\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Khl0RiRc9lax\",\n        \"outputId\": \"94c20cb8-758b-4036-e68d-76612c3f4263\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 67\n        }\n      },\n      \"source\": [\n        \"k = np.asarray([[2,3,5],[5,6,8],[6,3,1]])\\n\",\n        \"k\"\n      ],\n      \"execution_count\": 37,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([[2, 3, 5],\\n\",\n              \"       [5, 6, 8],\\n\",\n              \"       [6, 3, 1]])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 37\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"MjWvWZPCDoNH\",\n        \"outputId\": \"c5812bc0-4345-42d8-f85d-4542d979d25c\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"np.einsum('ij, ij -> i', k, k)\"\n      ],\n      \"execution_count\": 38,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([ 38, 125,  46])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 38\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"j-rpqWG7e30t\",\n        \"outputId\": \"e9b54a7e-78c5-46b9-f4ae-5b037fe38d17\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"np.einsum('ii, ii', k, k)\"\n      ],\n      \"execution_count\": 45,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"41\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 45\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Z9saWfdsfBMz\",\n        \"outputId\": \"6e78d305-1bba-44c8-afc7-3cf724c1383e\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 34\n        }\n      },\n      \"source\": [\n        \"a = [[1,3],[4,6]]\\n\",\n        \"np.einsum('ij, ij -> i', a, a)\"\n      ],\n      \"execution_count\": 46,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([10, 52])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 46\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"GWpvRta3fQr3\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    }\n  ]\n}\n"
  },
  {
    "path": "Recommender_System_using_Softmax_DNN.ipynb",
    "content": "{\n  \"nbformat\": 4,\n  \"nbformat_minor\": 0,\n  \"metadata\": {\n    \"colab\": {\n      \"name\": \"Recommender-System-using-Softmax-DNN.ipynb\",\n      \"provenance\": [],\n      \"collapsed_sections\": [],\n      \"authorship_tag\": \"ABX9TyNEZIZ1oRmoZXi5mI4AT+Ue\",\n      \"include_colab_link\": true\n    },\n    \"kernelspec\": {\n      \"name\": \"python3\",\n      \"display_name\": \"Python 3\"\n    }\n  },\n  \"cells\": [\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"view-in-github\",\n        \"colab_type\": \"text\"\n      },\n      \"source\": [\n        \"<a href=\\\"https://colab.research.google.com/github/rposhala/Recommender-System-on-MovieLens-dataset/blob/main/Recommender_System_using_Softmax_DNN.ipynb\\\" target=\\\"_parent\\\"><img src=\\\"https://colab.research.google.com/assets/colab-badge.svg\\\" alt=\\\"Open In Colab\\\"/></a>\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"f4dpxTTFCNQi\"\n      },\n      \"source\": [\n        \"## Loading the libraries\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"pK__TGE8ABxK\"\n      },\n      \"source\": [\n        \"import os\\n\",\n        \"import numpy as np\\n\",\n        \"import pandas as pd\\n\",\n        \"import matplotlib.pyplot as plt\\n\",\n        \"from sklearn.model_selection import train_test_split\\n\",\n        \"from sklearn.preprocessing import LabelEncoder\"\n      ],\n      \"execution_count\": 1,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"uKKckGQngZKP\"\n      },\n      \"source\": [\n        \"# from keras.models import Model\\n\",\n        \"# from keras.layers import Input, Reshape, Dot\\n\",\n        \"# from keras.layers.embeddings import Embedding\\n\",\n        \"# from keras.optimizers import Adam\\n\",\n        \"# from keras.regularizers import l2\\n\",\n        \"# from keras.layers import Concatenate, Dense, Dropout\\n\",\n        \"# from keras.layers import Add, Activation, Lambda\\n\",\n        \"\\n\",\n        \"import tensorflow as tf\\n\",\n        \"import keras\\n\",\n        \"from pprint import pprint\"\n      ],\n      \"execution_count\": 22,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"CEwzA81KOtn8\"\n      },\n      \"source\": [\n        \"DATASET_LINK='http://files.grouplens.org/datasets/movielens/ml-100k.zip'\"\n      ],\n      \"execution_count\": 2,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"_toQkgU7Ot8r\",\n        \"outputId\": \"e9ca5b39-c7b4-487d-8e0c-f22dbd46787b\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"!wget -nc http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n        \"!unzip -n ml-100k.zip\"\n      ],\n      \"execution_count\": 3,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"--2020-11-14 13:56:35--  http://files.grouplens.org/datasets/movielens/ml-100k.zip\\n\",\n            \"Resolving files.grouplens.org (files.grouplens.org)... 128.101.65.152\\n\",\n            \"Connecting to files.grouplens.org (files.grouplens.org)|128.101.65.152|:80... connected.\\n\",\n            \"HTTP request sent, awaiting response... 200 OK\\n\",\n            \"Length: 4924029 (4.7M) [application/zip]\\n\",\n            \"Saving to: ‘ml-100k.zip’\\n\",\n            \"\\n\",\n            \"ml-100k.zip         100%[===================>]   4.70M  16.1MB/s    in 0.3s    \\n\",\n            \"\\n\",\n            \"2020-11-14 13:56:35 (16.1 MB/s) - ‘ml-100k.zip’ saved [4924029/4924029]\\n\",\n            \"\\n\",\n            \"Archive:  ml-100k.zip\\n\",\n            \"   creating: ml-100k/\\n\",\n            \"  inflating: ml-100k/allbut.pl       \\n\",\n            \"  inflating: ml-100k/mku.sh          \\n\",\n            \"  inflating: ml-100k/README          \\n\",\n            \"  inflating: ml-100k/u.data          \\n\",\n            \"  inflating: ml-100k/u.genre         \\n\",\n            \"  inflating: ml-100k/u.info          \\n\",\n            \"  inflating: ml-100k/u.item          \\n\",\n            \"  inflating: ml-100k/u.occupation    \\n\",\n            \"  inflating: ml-100k/u.user          \\n\",\n            \"  inflating: ml-100k/u1.base         \\n\",\n            \"  inflating: ml-100k/u1.test         \\n\",\n            \"  inflating: ml-100k/u2.base         \\n\",\n            \"  inflating: ml-100k/u2.test         \\n\",\n            \"  inflating: ml-100k/u3.base         \\n\",\n            \"  inflating: ml-100k/u3.test         \\n\",\n            \"  inflating: ml-100k/u4.base         \\n\",\n            \"  inflating: ml-100k/u4.test         \\n\",\n            \"  inflating: ml-100k/u5.base         \\n\",\n            \"  inflating: ml-100k/u5.test         \\n\",\n            \"  inflating: ml-100k/ua.base         \\n\",\n            \"  inflating: ml-100k/ua.test         \\n\",\n            \"  inflating: ml-100k/ub.base         \\n\",\n            \"  inflating: ml-100k/ub.test         \\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"o7aPc6R_O1S9\"\n      },\n      \"source\": [\n        \"#Loading MovieLens dataset\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"FZ-rNaLsO8Mj\"\n      },\n      \"source\": [\n        \"Loading u.info -- The number of users, items, and ratings in the u data set.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"1IV3uY7hOvvF\",\n        \"outputId\": \"76a13a9a-6b1b-471c-ecc1-d96e21265fc3\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"overall_stats = pd.read_csv('ml-100k/u.info', header=None)\\n\",\n        \"print(\\\"Details of users, items and ratings involved in the loaded movielens dataset: \\\",list(overall_stats[0]))\"\n      ],\n      \"execution_count\": 4,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Details of users, items and ratings involved in the loaded movielens dataset:  ['943 users', '1682 items', '100000 ratings']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"pm6F7DFUPPWP\"\n      },\n      \"source\": [\n        \"Loading u.data     -- The full u data set, 100000 ratings by 943 users on 1682 items.\\n\",\n        \"\\n\",\n        \"---\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"\\n\",\n        \"              Each user has rated at least 20 movies.  Users and items are\\n\",\n        \"              numbered consecutively from 1.  The data is randomly ordered. This is a tab separated list of \\n\",\n        \"\\t         user id | item id | rating | timestamp. \\n\",\n        \"              The time stamps are unix seconds since 1/1/1970 UTC \"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"_Dm64PwPO89K\",\n        \"outputId\": \"0ae36ed1-adf8-4dd7-ac16-8c9473e20eba\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"## same item id is same as movie id, item id column is renamed as movie id\\n\",\n        \"column_names1 = ['user id','movie id','rating','timestamp']\\n\",\n        \"ratings_dataset = pd.read_csv('ml-100k/u.data', sep='\\\\t',header=None,names=column_names1)\\n\",\n        \"ratings_dataset.head() \"\n      ],\n      \"execution_count\": 5,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>186</td>\\n\",\n              \"      <td>302</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>891717742</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>22</td>\\n\",\n              \"      <td>377</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>878887116</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>244</td>\\n\",\n              \"      <td>51</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>880606923</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>166</td>\\n\",\n              \"      <td>346</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>886397596</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp\\n\",\n              \"0      196       242       3  881250949\\n\",\n              \"1      186       302       3  891717742\\n\",\n              \"2       22       377       1  878887116\\n\",\n              \"3      244        51       2  880606923\\n\",\n              \"4      166       346       1  886397596\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 5\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"PAp4VVTwR6Pz\"\n      },\n      \"source\": [\n        \"Loading u.item     -- Information about the items (movies); this is a tab separated\\n\",\n        \"\\n\",\n        \"              list of\\n\",\n        \"              movie id | movie title | release date | video release date |\\n\",\n        \"              IMDb URL | unknown | Action | Adventure | Animation |\\n\",\n        \"              Children's | Comedy | Crime | Documentary | Drama | Fantasy |\\n\",\n        \"              Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi |\\n\",\n        \"              Thriller | War | Western |\\n\",\n        \"              The last 19 fields are the genres, a 1 indicates the movie\\n\",\n        \"              is of that genre, a 0 indicates it is not; movies can be in\\n\",\n        \"              several genres at once.\\n\",\n        \"              The movie ids are the ones used in the u.data data set.\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"1qxF6i4zRMGj\",\n        \"outputId\": \"efd387b6-12e4-4520-f634-16143d3e874e\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"d = 'movie id | movie title | release date | video release date | IMDb URL | unknown | Action | Adventure | Animation | Children | Comedy | Crime | Documentary | Drama | Fantasy | Film-Noir | Horror | Musical | Mystery | Romance | Sci-Fi | Thriller | War | Western'\\n\",\n        \"column_names2 = d.split(' | ')\\n\",\n        \"print(column_names2)\"\n      ],\n      \"execution_count\": 6,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"['movie id', 'movie title', 'release date', 'video release date', 'IMDb URL', 'unknown', 'Action', 'Adventure', 'Animation', 'Children', 'Comedy', 'Crime', 'Documentary', 'Drama', 'Fantasy', 'Film-Noir', 'Horror', 'Musical', 'Mystery', 'Romance', 'Sci-Fi', 'Thriller', 'War', 'Western']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"fZKhPm9dRqvR\",\n        \"outputId\": \"44f3ae94-9e6d-4da4-d9d0-1596f6de2699\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 366\n        }\n      },\n      \"source\": [\n        \"items_dataset = pd.read_csv('ml-100k/u.item', sep='|',header=None,names=column_names2,encoding='latin-1')\\n\",\n        \"items_dataset.head()\"\n      ],\n      \"execution_count\": 7,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>release date</th>\\n\",\n              \"      <th>video release date</th>\\n\",\n              \"      <th>IMDb URL</th>\\n\",\n              \"      <th>unknown</th>\\n\",\n              \"      <th>Action</th>\\n\",\n              \"      <th>Adventure</th>\\n\",\n              \"      <th>Animation</th>\\n\",\n              \"      <th>Children</th>\\n\",\n              \"      <th>Comedy</th>\\n\",\n              \"      <th>Crime</th>\\n\",\n              \"      <th>Documentary</th>\\n\",\n              \"      <th>Drama</th>\\n\",\n              \"      <th>Fantasy</th>\\n\",\n              \"      <th>Film-Noir</th>\\n\",\n              \"      <th>Horror</th>\\n\",\n              \"      <th>Musical</th>\\n\",\n              \"      <th>Mystery</th>\\n\",\n              \"      <th>Romance</th>\\n\",\n              \"      <th>Sci-Fi</th>\\n\",\n              \"      <th>Thriller</th>\\n\",\n              \"      <th>War</th>\\n\",\n              \"      <th>Western</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Toy%20Story%2...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?GoldenEye%20(...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Four%20Rooms%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Get%20Shorty%...</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"      <td>01-Jan-1995</td>\\n\",\n              \"      <td>NaN</td>\\n\",\n              \"      <td>http://us.imdb.com/M/title-exact?Copycat%20(1995)</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   movie id        movie title release date  ...  Thriller War  Western\\n\",\n              \"0         1   Toy Story (1995)  01-Jan-1995  ...         0   0        0\\n\",\n              \"1         2   GoldenEye (1995)  01-Jan-1995  ...         1   0        0\\n\",\n              \"2         3  Four Rooms (1995)  01-Jan-1995  ...         1   0        0\\n\",\n              \"3         4  Get Shorty (1995)  01-Jan-1995  ...         0   0        0\\n\",\n              \"4         5     Copycat (1995)  01-Jan-1995  ...         1   0        0\\n\",\n              \"\\n\",\n              \"[5 rows x 24 columns]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 7\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"zjMViWz_SDlJ\",\n        \"outputId\": \"3fa38eec-61c4-41c7-c363-cbcbaebee253\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"movie_dataset = items_dataset[['movie id','movie title']]\\n\",\n        \"movie_dataset.head()\"\n      ],\n      \"execution_count\": 8,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Toy Story (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>2</td>\\n\",\n              \"      <td>GoldenEye (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>Four Rooms (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>Get Shorty (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>Copycat (1995)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   movie id        movie title\\n\",\n              \"0         1   Toy Story (1995)\\n\",\n              \"1         2   GoldenEye (1995)\\n\",\n              \"2         3  Four Rooms (1995)\\n\",\n              \"3         4  Get Shorty (1995)\\n\",\n              \"4         5     Copycat (1995)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 8\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"hEsztTxjSiZA\"\n      },\n      \"source\": [\n        \"Looking at length of original items_dataset and length of unique combination of rows in items_dataset after removing movie id column\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"sdzz8nUySG_q\",\n        \"outputId\": \"a0fe00d3-23c4-4125-89fa-b3be9bea9c2e\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"## looking at length of original items_dataset and length of unique combination of rows in items_dataset after removing movie id column\\n\",\n        \"len(items_dataset.groupby(by=column_names2[1:])),len(items_dataset)\"\n      ],\n      \"execution_count\": 9,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(1664, 1682)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 9\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"zcsMvVNrS82A\"\n      },\n      \"source\": [\n        \"We can see there are 18 extra movie id's for already mapped movie title and the same duplicate movie id is assigned to the user in the user-item dataset.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"V1vln0JRTA9J\"\n      },\n      \"source\": [\n        \"#Merging required datasets\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"IBOXHTmvS6Ex\",\n        \"outputId\": \"c9995cf4-c7fd-47b0-afb7-c57b7fce007c\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"merged_dataset = pd.merge(ratings_dataset, movie_dataset, how='inner', on='movie id')\\n\",\n        \"merged_dataset.head()\"\n      ],\n      \"execution_count\": 10,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>196</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>881250949</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>63</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>875747190</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>226</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>883888671</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>154</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879138235</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>306</td>\\n\",\n              \"      <td>242</td>\\n\",\n              \"      <td>5</td>\\n\",\n              \"      <td>876503793</td>\\n\",\n              \"      <td>Kolya (1996)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id  movie id  rating  timestamp   movie title\\n\",\n              \"0      196       242       3  881250949  Kolya (1996)\\n\",\n              \"1       63       242       3  875747190  Kolya (1996)\\n\",\n              \"2      226       242       5  883888671  Kolya (1996)\\n\",\n              \"3      154       242       3  879138235  Kolya (1996)\\n\",\n              \"4      306       242       5  876503793  Kolya (1996)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 10\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"qlTqLn-mTUCV\"\n      },\n      \"source\": [\n        \"A dataset is created from the existing merged dataset by grouping the unique user id and movie title combination and the ratings by a user to the same movie in different instances (timestamps) are averaged and stored in the new dataset.\"\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"U6wjxXe7TeIO\"\n      },\n      \"source\": [\n        \"Example of a multiple rating scenario by an user to a specific movie:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"xKgq_aXmTDft\",\n        \"outputId\": \"a2c48fbb-150a-4765-c54c-7be66c36751c\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 106\n        }\n      },\n      \"source\": [\n        \"merged_dataset[(merged_dataset['movie title'] == 'Chasing Amy (1997)') & (merged_dataset['user id'] == 894)]\"\n      ],\n      \"execution_count\": 11,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie id</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>timestamp</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4800</th>\\n\",\n              \"      <td>894</td>\\n\",\n              \"      <td>246</td>\\n\",\n              \"      <td>4</td>\\n\",\n              \"      <td>882404137</td>\\n\",\n              \"      <td>Chasing Amy (1997)</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>22340</th>\\n\",\n              \"      <td>894</td>\\n\",\n              \"      <td>268</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"      <td>879896041</td>\\n\",\n              \"      <td>Chasing Amy (1997)</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"       user id  movie id  rating  timestamp         movie title\\n\",\n              \"4800       894       246       4  882404137  Chasing Amy (1997)\\n\",\n              \"22340      894       268       3  879896041  Chasing Amy (1997)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 11\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"kuXOfYN-UQrP\"\n      },\n      \"source\": [\n        \"## Creating a final refined dataset with unique user id, movie name combination and their ratings:\\n\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"gSybgvihTkgE\",\n        \"outputId\": \"e43e9262-bca7-4c1c-c238-a47ca4d01303\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"refined_dataset = merged_dataset.groupby(by=['user id','movie title'], as_index=False).agg({\\\"rating\\\":\\\"mean\\\"})\\n\",\n        \"\\n\",\n        \"refined_dataset.head()\"\n      ],\n      \"execution_count\": 12,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>101 Dalmatians (1996)</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>12 Angry Men (1957)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>20,000 Leagues Under the Sea (1954)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>2001: A Space Odyssey (1968)</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Abyss, The (1989)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id                          movie title  rating\\n\",\n              \"0        1                101 Dalmatians (1996)     2.0\\n\",\n              \"1        1                  12 Angry Men (1957)     5.0\\n\",\n              \"2        1  20,000 Leagues Under the Sea (1954)     3.0\\n\",\n              \"3        1         2001: A Space Odyssey (1968)     4.0\\n\",\n              \"4        1                    Abyss, The (1989)     3.0\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 12\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"OVuuEkazUn20\"\n      },\n      \"source\": [\n        \"## Encoding users and movie titles to make sure that the sequence has no missing values when dealing with Deep Neural Networks.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"-X1Fvj3AUTjt\"\n      },\n      \"source\": [\n        \"user_enc = LabelEncoder()\\n\",\n        \"refined_dataset['user'] = user_enc.fit_transform(refined_dataset['user id'].values)\\n\",\n        \"n_users = refined_dataset['user'].nunique()\"\n      ],\n      \"execution_count\": 13,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"3f2vtjifW662\"\n      },\n      \"source\": [\n        \"item_enc = LabelEncoder()\\n\",\n        \"refined_dataset['movie'] = item_enc.fit_transform(refined_dataset['movie title'].values)\\n\",\n        \"n_movies = refined_dataset['movie'].nunique()\"\n      ],\n      \"execution_count\": 14,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"OeQb6BDbXUzI\",\n        \"outputId\": \"9db3aaae-b877-4ce0-8e39-726b3de57384\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"refined_dataset['rating'] = refined_dataset['rating'].values.astype(np.float32)\\n\",\n        \"min_rating = min(refined_dataset['rating'])\\n\",\n        \"max_rating = max(refined_dataset['rating'])\\n\",\n        \"n_users, n_movies, min_rating, max_rating\"\n      ],\n      \"execution_count\": 15,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(943, 1664, 1.0, 5.0)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 15\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"2NLsO6VSXOD4\",\n        \"outputId\": \"2ad334e6-8823-4104-bfe4-5b3554063252\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"refined_dataset.head()\"\n      ],\n      \"execution_count\": 16,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>user</th>\\n\",\n              \"      <th>movie</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>101 Dalmatians (1996)</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>12 Angry Men (1957)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>20,000 Leagues Under the Sea (1954)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>6</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>2001: A Space Odyssey (1968)</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>7</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Abyss, The (1989)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>16</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id                          movie title  rating  user  movie\\n\",\n              \"0        1                101 Dalmatians (1996)     2.0     0      2\\n\",\n              \"1        1                  12 Angry Men (1957)     5.0     0      3\\n\",\n              \"2        1  20,000 Leagues Under the Sea (1954)     3.0     0      6\\n\",\n              \"3        1         2001: A Space Odyssey (1968)     4.0     0      7\\n\",\n              \"4        1                    Abyss, The (1989)     3.0     0     16\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 16\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"3Vrfgd7TZ08C\"\n      },\n      \"source\": [\n        \"## Splitting the data into training and testing\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"9q04V-GnXPFs\",\n        \"outputId\": \"efadf08a-206e-4d4f-dd06-17b44fa8f693\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"X = refined_dataset[['user', 'movie']].values\\n\",\n        \"y = refined_dataset['rating'].values\\n\",\n        \"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.1, random_state=50)\\n\",\n        \"X_train.shape, X_test.shape, y_train.shape, y_test.shape\"\n      ],\n      \"execution_count\": 17,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"((89723, 2), (9970, 2), (89723,), (9970,))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 17\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"y3s3cccxgGPy\"\n      },\n      \"source\": [\n        \"## Defining number of factors which are to be considered by the Embedding layer\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"zA39k64MaEfs\"\n      },\n      \"source\": [\n        \"n_factors = 150\"\n      ],\n      \"execution_count\": 23,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"fcqGOsdZgaFY\"\n      },\n      \"source\": [\n        \"Columns in the input array are split into two separate arrays. As Keras considers them as two distinct inputs, each input needs to be fed in as its own array.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"83v-ulEIgS1l\"\n      },\n      \"source\": [\n        \"X_train_array = [X_train[:, 0], X_train[:, 1]]\\n\",\n        \"X_test_array = [X_test[:, 0], X_test[:, 1]]\"\n      ],\n      \"execution_count\": 19,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"OpCiDWkexTkf\",\n        \"outputId\": \"1a4a2766-39ef-4fd8-e9f0-535947aae7dd\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"X_train, X_train_array, X_train_array[0].shape\"\n      ],\n      \"execution_count\": 20,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(array([[ 180, 1152],\\n\",\n              \"        [ 487,  389],\\n\",\n              \"        [ 177,  302],\\n\",\n              \"        ...,\\n\",\n              \"        [ 431, 1588],\\n\",\n              \"        [ 232,  399],\\n\",\n              \"        [ 138,  612]]),\\n\",\n              \" [array([180, 487, 177, ..., 431, 232, 138]),\\n\",\n              \"  array([1152,  389,  302, ..., 1588,  399,  612])],\\n\",\n              \" (89723,))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 20\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"fgdqWxK1IDAg\"\n      },\n      \"source\": [\n        \"## Normalizing the labels\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"4POYLlXTIP7G\"\n      },\n      \"source\": [\n        \"\\n\",\n        \"y_train = (y_train - min_rating)/(max_rating - min_rating)\\n\",\n        \"y_test = (y_test - min_rating)/(max_rating - min_rating)\"\n      ],\n      \"execution_count\": 21,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"C_sQMkI-m-i-\"\n      },\n      \"source\": [\n        \"## Building a Softmax Deep Neural Network\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"PRBTogiuhpmV\"\n      },\n      \"source\": [\n        \"## Initializing a input layer for users\\n\",\n        \"user = tf.keras.layers.Input(shape = (1,))\\n\",\n        \"\\n\",\n        \"## Embedding layer for n_factors of users\\n\",\n        \"u = keras.layers.embeddings.Embedding(n_users, n_factors, embeddings_initializer = 'he_normal', embeddings_regularizer = tf.keras.regularizers.l2(1e-6))(user)\\n\",\n        \"u = tf.keras.layers.Reshape((n_factors,))(u)\\n\",\n        \"\\n\",\n        \"## Initializing a input layer for movies\\n\",\n        \"movie = tf.keras.layers.Input(shape = (1,))\\n\",\n        \"\\n\",\n        \"## Embedding layer for n_factors of movies\\n\",\n        \"m = keras.layers.embeddings.Embedding(n_movies, n_factors, embeddings_initializer = 'he_normal', embeddings_regularizer=tf.keras.regularizers.l2(1e-6))(movie)\\n\",\n        \"m = tf.keras.layers.Reshape((n_factors,))(m)\\n\",\n        \"\\n\",\n        \"## stacking up both user and movie embeddings\\n\",\n        \"x = tf.keras.layers.Concatenate()([u,m])\\n\",\n        \"x = tf.keras.layers.Dropout(0.05)(x)\\n\",\n        \"\\n\",\n        \"## Adding a Dense layer to the architecture\\n\",\n        \"x = tf.keras.layers.Dense(32, kernel_initializer='he_normal')(x)\\n\",\n        \"x = tf.keras.layers.Activation(activation='relu')(x)\\n\",\n        \"x = tf.keras.layers.Dropout(0.05)(x)\\n\",\n        \"\\n\",\n        \"x = tf.keras.layers.Dense(16, kernel_initializer='he_normal')(x)\\n\",\n        \"x = tf.keras.layers.Activation(activation='relu')(x)\\n\",\n        \"x = tf.keras.layers.Dropout(0.05)(x)\\n\",\n        \"\\n\",\n        \"## Adding an Output layer with Sigmoid activation funtion which gives output between 0 and 1\\n\",\n        \"x = tf.keras.layers.Dense(9)(x)\\n\",\n        \"x = tf.keras.layers.Activation(activation='softmax')(x)\\n\",\n        \"\\n\",\n        \"## Adding a Lambda layer to convert the output to rating by scaling it with the help of available rating information\\n\",\n        \"# x = tf.keras.layers.Lambda(lambda x: x*(max_rating - min_rating) + min_rating)(x)\\n\",\n        \"\\n\",\n        \"## Defining the model\\n\",\n        \"model = tf.keras.models.Model(inputs=[user,movie], outputs=x)\\n\",\n        \"# optimizer = tf.keras.optimizers.Adam(lr=0.001)\\n\",\n        \"# optimizer = tf.keras.optimizers.RMSprop(learning_rate=0.005,\\n\",\n        \"    # rho=0.9, momentum=0.01, epsilon=1e-07)\\n\",\n        \"\\n\",\n        \"## Compiling the model\\n\",\n        \"# model.compile(loss='binary_crossentropy', optimizer = optimizer)\\n\",\n        \"# model.compile(loss='mean_squared_error', optimizer = optimizer,metrics=['accuracy'])\\n\",\n        \"model.compile(optimizer='sgd', loss=tf.keras.losses.SparseCategoricalCrossentropy(), metrics=['accuracy'])\\n\"\n      ],\n      \"execution_count\": 30,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"7rMMb03YpJt-\",\n        \"outputId\": \"4a55230d-c639-4c04-c997-4317d3dd8693\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"model.summary()\"\n      ],\n      \"execution_count\": 31,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Model: \\\"functional_5\\\"\\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"Layer (type)                    Output Shape         Param #     Connected to                     \\n\",\n            \"==================================================================================================\\n\",\n            \"input_5 (InputLayer)            [(None, 1)]          0                                            \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"input_6 (InputLayer)            [(None, 1)]          0                                            \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"embedding_4 (Embedding)         (None, 1, 150)       141450      input_5[0][0]                    \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"embedding_5 (Embedding)         (None, 1, 150)       249600      input_6[0][0]                    \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"reshape_4 (Reshape)             (None, 150)          0           embedding_4[0][0]                \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"reshape_5 (Reshape)             (None, 150)          0           embedding_5[0][0]                \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"concatenate_2 (Concatenate)     (None, 300)          0           reshape_4[0][0]                  \\n\",\n            \"                                                                 reshape_5[0][0]                  \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"dropout_6 (Dropout)             (None, 300)          0           concatenate_2[0][0]              \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"dense_6 (Dense)                 (None, 32)           9632        dropout_6[0][0]                  \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"activation_6 (Activation)       (None, 32)           0           dense_6[0][0]                    \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"dropout_7 (Dropout)             (None, 32)           0           activation_6[0][0]               \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"dense_7 (Dense)                 (None, 16)           528         dropout_7[0][0]                  \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"activation_7 (Activation)       (None, 16)           0           dense_7[0][0]                    \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"dropout_8 (Dropout)             (None, 16)           0           activation_7[0][0]               \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"dense_8 (Dense)                 (None, 9)            153         dropout_8[0][0]                  \\n\",\n            \"__________________________________________________________________________________________________\\n\",\n            \"activation_8 (Activation)       (None, 9)            0           dense_8[0][0]                    \\n\",\n            \"==================================================================================================\\n\",\n            \"Total params: 401,363\\n\",\n            \"Trainable params: 401,363\\n\",\n            \"Non-trainable params: 0\\n\",\n            \"__________________________________________________________________________________________________\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Ky7cKIGDuSgy\",\n        \"outputId\": \"636e86b7-702a-4047-d8c0-d30c8e47df47\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"reduce_lr = tf.keras.callbacks.ReduceLROnPlateau(monitor='val_loss', factor=0.75, patience=3, min_lr=0.000001, verbose=1)\\n\",\n        \"\\n\",\n        \"history = model.fit(x = X_train_array, y = y_train, batch_size=128, epochs=70, verbose=1, validation_data=(X_test_array, y_test)\\n\",\n        \",shuffle=True,callbacks=[reduce_lr])\\n\"\n      ],\n      \"execution_count\": 32,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Epoch 1/70\\n\"\n          ],\n          \"name\": \"stdout\"\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/indexed_slices.py:432: UserWarning: Converting sparse IndexedSlices to a dense Tensor of unknown shape. This may consume a large amount of memory.\\n\",\n            \"  \\\"Converting sparse IndexedSlices to a dense Tensor of unknown shape. \\\"\\n\"\n          ],\n          \"name\": \"stderr\"\n        },\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"701/701 [==============================] - 4s 5ms/step - loss: 0.8508 - accuracy: 0.0608 - val_loss: 0.5331 - val_accuracy: 0.0617\\n\",\n            \"Epoch 2/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5358 - accuracy: 0.0609 - val_loss: 0.5159 - val_accuracy: 0.0617\\n\",\n            \"Epoch 3/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5253 - accuracy: 0.0609 - val_loss: 0.5125 - val_accuracy: 0.0617\\n\",\n            \"Epoch 4/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5222 - accuracy: 0.0609 - val_loss: 0.5114 - val_accuracy: 0.0617\\n\",\n            \"Epoch 5/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5207 - accuracy: 0.0609 - val_loss: 0.5114 - val_accuracy: 0.0617\\n\",\n            \"Epoch 6/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5201 - accuracy: 0.0609 - val_loss: 0.5106 - val_accuracy: 0.0617\\n\",\n            \"Epoch 7/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5193 - accuracy: 0.0609 - val_loss: 0.5102 - val_accuracy: 0.0617\\n\",\n            \"Epoch 8/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5187 - accuracy: 0.0609 - val_loss: 0.5112 - val_accuracy: 0.0617\\n\",\n            \"Epoch 9/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5188 - accuracy: 0.0609 - val_loss: 0.5098 - val_accuracy: 0.0617\\n\",\n            \"Epoch 10/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5181 - accuracy: 0.0609 - val_loss: 0.5097 - val_accuracy: 0.0617\\n\",\n            \"Epoch 11/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5180 - accuracy: 0.0609 - val_loss: 0.5091 - val_accuracy: 0.0617\\n\",\n            \"Epoch 12/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5176 - accuracy: 0.0609 - val_loss: 0.5088 - val_accuracy: 0.0617\\n\",\n            \"Epoch 13/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5171 - accuracy: 0.0609 - val_loss: 0.5096 - val_accuracy: 0.0617\\n\",\n            \"Epoch 14/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5168 - accuracy: 0.0609 - val_loss: 0.5082 - val_accuracy: 0.0617\\n\",\n            \"Epoch 15/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5162 - accuracy: 0.0609 - val_loss: 0.5076 - val_accuracy: 0.0617\\n\",\n            \"Epoch 16/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5157 - accuracy: 0.0609 - val_loss: 0.5066 - val_accuracy: 0.0617\\n\",\n            \"Epoch 17/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5149 - accuracy: 0.0609 - val_loss: 0.5058 - val_accuracy: 0.0617\\n\",\n            \"Epoch 18/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5141 - accuracy: 0.0609 - val_loss: 0.5051 - val_accuracy: 0.0617\\n\",\n            \"Epoch 19/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5129 - accuracy: 0.0609 - val_loss: 0.5035 - val_accuracy: 0.0617\\n\",\n            \"Epoch 20/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5117 - accuracy: 0.0609 - val_loss: 0.5021 - val_accuracy: 0.0617\\n\",\n            \"Epoch 21/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5101 - accuracy: 0.0609 - val_loss: 0.5005 - val_accuracy: 0.0617\\n\",\n            \"Epoch 22/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5077 - accuracy: 0.0609 - val_loss: 0.4976 - val_accuracy: 0.0617\\n\",\n            \"Epoch 23/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5057 - accuracy: 0.0609 - val_loss: 0.4945 - val_accuracy: 0.0617\\n\",\n            \"Epoch 24/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.5025 - accuracy: 0.0609 - val_loss: 0.4908 - val_accuracy: 0.0617\\n\",\n            \"Epoch 25/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4982 - accuracy: 0.0609 - val_loss: 0.4862 - val_accuracy: 0.0617\\n\",\n            \"Epoch 26/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4935 - accuracy: 0.0609 - val_loss: 0.4806 - val_accuracy: 0.0617\\n\",\n            \"Epoch 27/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4880 - accuracy: 0.0609 - val_loss: 0.4744 - val_accuracy: 0.0617\\n\",\n            \"Epoch 28/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4817 - accuracy: 0.0609 - val_loss: 0.4689 - val_accuracy: 0.0617\\n\",\n            \"Epoch 29/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4748 - accuracy: 0.0609 - val_loss: 0.4629 - val_accuracy: 0.0617\\n\",\n            \"Epoch 30/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4688 - accuracy: 0.0609 - val_loss: 0.4558 - val_accuracy: 0.0617\\n\",\n            \"Epoch 31/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4627 - accuracy: 0.0610 - val_loss: 0.4506 - val_accuracy: 0.0617\\n\",\n            \"Epoch 32/70\\n\",\n            \"701/701 [==============================] - 4s 5ms/step - loss: 0.4574 - accuracy: 0.0619 - val_loss: 0.4464 - val_accuracy: 0.0617\\n\",\n            \"Epoch 33/70\\n\",\n            \"701/701 [==============================] - 4s 5ms/step - loss: 0.4526 - accuracy: 0.0657 - val_loss: 0.4426 - val_accuracy: 0.0617\\n\",\n            \"Epoch 34/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4492 - accuracy: 0.0759 - val_loss: 0.4395 - val_accuracy: 0.0736\\n\",\n            \"Epoch 35/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4447 - accuracy: 0.0835 - val_loss: 0.4368 - val_accuracy: 0.0790\\n\",\n            \"Epoch 36/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4414 - accuracy: 0.0870 - val_loss: 0.4344 - val_accuracy: 0.0896\\n\",\n            \"Epoch 37/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4386 - accuracy: 0.0946 - val_loss: 0.4328 - val_accuracy: 0.0962\\n\",\n            \"Epoch 38/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4355 - accuracy: 0.0986 - val_loss: 0.4309 - val_accuracy: 0.0964\\n\",\n            \"Epoch 39/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4332 - accuracy: 0.1010 - val_loss: 0.4303 - val_accuracy: 0.1120\\n\",\n            \"Epoch 40/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4310 - accuracy: 0.1053 - val_loss: 0.4281 - val_accuracy: 0.1036\\n\",\n            \"Epoch 41/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4297 - accuracy: 0.1076 - val_loss: 0.4276 - val_accuracy: 0.1107\\n\",\n            \"Epoch 42/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4276 - accuracy: 0.1085 - val_loss: 0.4259 - val_accuracy: 0.1131\\n\",\n            \"Epoch 43/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4261 - accuracy: 0.1131 - val_loss: 0.4272 - val_accuracy: 0.1214\\n\",\n            \"Epoch 44/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4243 - accuracy: 0.1109 - val_loss: 0.4242 - val_accuracy: 0.1104\\n\",\n            \"Epoch 45/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4231 - accuracy: 0.1139 - val_loss: 0.4235 - val_accuracy: 0.1058\\n\",\n            \"Epoch 46/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4217 - accuracy: 0.1168 - val_loss: 0.4230 - val_accuracy: 0.1102\\n\",\n            \"Epoch 47/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4211 - accuracy: 0.1168 - val_loss: 0.4227 - val_accuracy: 0.1225\\n\",\n            \"Epoch 48/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4202 - accuracy: 0.1204 - val_loss: 0.4225 - val_accuracy: 0.1203\\n\",\n            \"Epoch 49/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4183 - accuracy: 0.1194 - val_loss: 0.4211 - val_accuracy: 0.1154\\n\",\n            \"Epoch 50/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4174 - accuracy: 0.1211 - val_loss: 0.4212 - val_accuracy: 0.1232\\n\",\n            \"Epoch 51/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4173 - accuracy: 0.1208 - val_loss: 0.4205 - val_accuracy: 0.1214\\n\",\n            \"Epoch 52/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4167 - accuracy: 0.1222 - val_loss: 0.4203 - val_accuracy: 0.1234\\n\",\n            \"Epoch 53/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4149 - accuracy: 0.1230 - val_loss: 0.4198 - val_accuracy: 0.1237\\n\",\n            \"Epoch 54/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4141 - accuracy: 0.1252 - val_loss: 0.4194 - val_accuracy: 0.1188\\n\",\n            \"Epoch 55/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4136 - accuracy: 0.1235 - val_loss: 0.4189 - val_accuracy: 0.1170\\n\",\n            \"Epoch 56/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4136 - accuracy: 0.1245 - val_loss: 0.4187 - val_accuracy: 0.1176\\n\",\n            \"Epoch 57/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4130 - accuracy: 0.1239 - val_loss: 0.4185 - val_accuracy: 0.1178\\n\",\n            \"Epoch 58/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4116 - accuracy: 0.1247 - val_loss: 0.4182 - val_accuracy: 0.1237\\n\",\n            \"Epoch 59/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4107 - accuracy: 0.1257 - val_loss: 0.4181 - val_accuracy: 0.1244\\n\",\n            \"Epoch 60/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4111 - accuracy: 0.1265 - val_loss: 0.4182 - val_accuracy: 0.1281\\n\",\n            \"Epoch 61/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4107 - accuracy: 0.1258 - val_loss: 0.4176 - val_accuracy: 0.1157\\n\",\n            \"Epoch 62/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4098 - accuracy: 0.1264 - val_loss: 0.4178 - val_accuracy: 0.1183\\n\",\n            \"Epoch 63/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4097 - accuracy: 0.1267 - val_loss: 0.4174 - val_accuracy: 0.1254\\n\",\n            \"Epoch 64/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4096 - accuracy: 0.1277 - val_loss: 0.4180 - val_accuracy: 0.1314\\n\",\n            \"Epoch 65/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4084 - accuracy: 0.1289 - val_loss: 0.4170 - val_accuracy: 0.1220\\n\",\n            \"Epoch 66/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4087 - accuracy: 0.1274 - val_loss: 0.4174 - val_accuracy: 0.1254\\n\",\n            \"Epoch 67/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4078 - accuracy: 0.1277 - val_loss: 0.4172 - val_accuracy: 0.1268\\n\",\n            \"Epoch 68/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4070 - accuracy: 0.1287 - val_loss: 0.4169 - val_accuracy: 0.1194\\n\",\n            \"Epoch 69/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4071 - accuracy: 0.1287 - val_loss: 0.4170 - val_accuracy: 0.1273\\n\",\n            \"Epoch 70/70\\n\",\n            \"701/701 [==============================] - 3s 5ms/step - loss: 0.4063 - accuracy: 0.1286 - val_loss: 0.4171 - val_accuracy: 0.1305\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"Ia_EsnKTur47\",\n        \"outputId\": \"6e91d112-687e-49a5-9cf3-83395510bfa2\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 295\n        }\n      },\n      \"source\": [\n        \"plt.plot(history.history[\\\"loss\\\"][5:])\\n\",\n        \"plt.plot(history.history[\\\"val_loss\\\"][5:])\\n\",\n        \"plt.title(\\\"model loss\\\")\\n\",\n        \"plt.ylabel(\\\"loss\\\")\\n\",\n        \"plt.xlabel(\\\"epoch\\\")\\n\",\n        \"plt.legend([\\\"train\\\", \\\"test\\\"], loc=\\\"upper left\\\")\\n\",\n        \"plt.show()\"\n      ],\n      \"execution_count\": 33,\n      \"outputs\": [\n        {\n          \"output_type\": \"display_data\",\n          \"data\": {\n            \"image/png\": \"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\\n\",\n            \"text/plain\": [\n              \"<Figure size 432x288 with 1 Axes>\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": [],\n            \"needs_background\": \"light\"\n          }\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"2VpBSnCPILno\"\n      },\n      \"source\": [\n        \"## Getting movies for given User\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"qRgSHldIJMLu\",\n        \"outputId\": \"63f27ff6-1c88-4d8f-ddfa-18e84971bb58\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\",\n          \"height\": 195\n        }\n      },\n      \"source\": [\n        \"refined_dataset.head()\"\n      ],\n      \"execution_count\": 34,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/html\": [\n              \"<div>\\n\",\n              \"<style scoped>\\n\",\n              \"    .dataframe tbody tr th:only-of-type {\\n\",\n              \"        vertical-align: middle;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe tbody tr th {\\n\",\n              \"        vertical-align: top;\\n\",\n              \"    }\\n\",\n              \"\\n\",\n              \"    .dataframe thead th {\\n\",\n              \"        text-align: right;\\n\",\n              \"    }\\n\",\n              \"</style>\\n\",\n              \"<table border=\\\"1\\\" class=\\\"dataframe\\\">\\n\",\n              \"  <thead>\\n\",\n              \"    <tr style=\\\"text-align: right;\\\">\\n\",\n              \"      <th></th>\\n\",\n              \"      <th>user id</th>\\n\",\n              \"      <th>movie title</th>\\n\",\n              \"      <th>rating</th>\\n\",\n              \"      <th>user</th>\\n\",\n              \"      <th>movie</th>\\n\",\n              \"    </tr>\\n\",\n              \"  </thead>\\n\",\n              \"  <tbody>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>0</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>101 Dalmatians (1996)</td>\\n\",\n              \"      <td>2.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>2</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>1</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>12 Angry Men (1957)</td>\\n\",\n              \"      <td>5.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>3</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>2</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>20,000 Leagues Under the Sea (1954)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>6</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>3</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>2001: A Space Odyssey (1968)</td>\\n\",\n              \"      <td>4.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>7</td>\\n\",\n              \"    </tr>\\n\",\n              \"    <tr>\\n\",\n              \"      <th>4</th>\\n\",\n              \"      <td>1</td>\\n\",\n              \"      <td>Abyss, The (1989)</td>\\n\",\n              \"      <td>3.0</td>\\n\",\n              \"      <td>0</td>\\n\",\n              \"      <td>16</td>\\n\",\n              \"    </tr>\\n\",\n              \"  </tbody>\\n\",\n              \"</table>\\n\",\n              \"</div>\"\n            ],\n            \"text/plain\": [\n              \"   user id                          movie title  rating  user  movie\\n\",\n              \"0        1                101 Dalmatians (1996)     2.0     0      2\\n\",\n              \"1        1                  12 Angry Men (1957)     5.0     0      3\\n\",\n              \"2        1  20,000 Leagues Under the Sea (1954)     3.0     0      6\\n\",\n              \"3        1         2001: A Space Odyssey (1968)     4.0     0      7\\n\",\n              \"4        1                    Abyss, The (1989)     3.0     0     16\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 34\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Xdmw3s6eJjSz\"\n      },\n      \"source\": [\n        \"**How this DNN model works is, it takes two inputs, one of the input has user id's and the other has corresponding movie id's. Here DNN model tries to predict the ratings of the user - movie combination. So, we can input a specific user id (broadcasting it with the size of other input) and unseen movie id of the user and expect the model to give the ratings of the movies which would have been the ratings given by the user. Here, the ratings are already normalized and as we need the movies which interest the user more, ratings are not brought back to 0-5 scale.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"A9pFADxRM-SX\",\n        \"outputId\": \"094cda8f-f537-40f8-a4bb-081f1609debc\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"X_train_array\"\n      ],\n      \"execution_count\": 40,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"[array([180, 487, 177, ..., 431, 232, 138]),\\n\",\n              \" array([1152,  389,  302, ..., 1588,  399,  612])]\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 40\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_5Orqr2yatoT\"\n      },\n      \"source\": [\n        \"Above is the model input shape\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"bKuwDF7pxEgA\",\n        \"outputId\": \"d87ddc00-2d77-467b-e969-a178b6915885\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"\\n\",\n        \"user_id = [777]\\n\",\n        \"encoded_user_id = user_enc.transform(user_id)\\n\",\n        \"\\n\",\n        \"seen_movies = list(refined_dataset[refined_dataset['user id'] == user_id[0]]['movie'])\\n\",\n        \"print(seen_movies)\"\n      ],\n      \"execution_count\": 62,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"[7, 55, 87, 113, 313, 337, 389, 390, 399, 411, 432, 460, 498, 528, 580, 604, 612, 643, 666, 783, 996, 1005, 1032, 1102, 1132, 1157, 1190, 1208, 1251, 1260, 1284, 1302, 1342, 1523, 1558, 1615]\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"_qMqFifba4Yj\"\n      },\n      \"source\": [\n        \"Id's of movies which are already seen by the user are extracted.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"IjXFgDR4NTkO\",\n        \"outputId\": \"5d0f7e81-0a74-4937-9d5f-e6bae0b1a710\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"len(refined_dataset['movie'].unique()), min(refined_dataset['movie']), max(refined_dataset['movie'])\"\n      ],\n      \"execution_count\": 67,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(1664, 0, 1663)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 67\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"Np6LcHMwYTD-\"\n      },\n      \"source\": [\n        \"We can understand that the labels are from 0 to 1663. So the movie id's which are not seen by the user can be pciked just by excluding the 'seen_movies' list from the first 1663 natural numbers.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"i_rRA2ScWFLF\",\n        \"outputId\": \"91e243ff-bb18-40ca-ca25-b6bbdcbdaa6a\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"unseen_movies = [i for i in range(min(refined_dataset['movie']), max(refined_dataset['movie'])+1) if i not in seen_movies]\\n\",\n        \"print(unseen_movies)\"\n      ],\n      \"execution_count\": 72,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"[0, 1, 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,....., 1637, 1638, 1639, 1640, 1641, 1642, 1643, 1644, 1645, 1646, 1647, 1648, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663]\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"KcspS9SMdJef\"\n      },\n      \"source\": [\n        \"Movies which are not seen by the user.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"mtCDRu3WYCZa\",\n        \"outputId\": \"48021904-8448-4a42-8503-12ac87cca357\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"len(unseen_movies) + len(seen_movies)\"\n      ],\n      \"execution_count\": 74,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"1664\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 74\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"qmS6oeujY6fo\",\n        \"outputId\": \"c0bb5729-431b-47ff-f80c-a5ce7a204206\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"model_input = [np.asarray(list(encoded_user_id)*len(unseen_movies)), np.asarray(unseen_movies)]\\n\",\n        \"len(model_input), len(model_input[0])\"\n      ],\n      \"execution_count\": 92,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(2, 1628)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 92\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"PyRgI_vJdsAp\"\n      },\n      \"source\": [\n        \"**DNN model is used to predict the ratings of the unseen movies.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"mmtIZjAgZSax\"\n      },\n      \"source\": [\n        \"predicted_ratings = model.predict(model_input)\"\n      ],\n      \"execution_count\": 84,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"OfKQOn9CZhi9\",\n        \"outputId\": \"22732ec9-ab60-4e1b-fd1c-778be5710790\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"print(predicted_ratings.shape)\"\n      ],\n      \"execution_count\": 90,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"(1628, 9)\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"y1IGrVJBaKwb\",\n        \"outputId\": \"6a5c70e9-c5b5-4364-ec36-2587c40559a4\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"print(predicted_ratings)\"\n      ],\n      \"execution_count\": 91,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"[[6.28711879e-01 3.71125787e-01 1.93846718e-05 ... 2.48171236e-05\\n\",\n            \"  2.07571484e-05 3.11595759e-05]\\n\",\n            \" [5.16196430e-01 4.83636826e-01 2.06636632e-05 ... 2.40022491e-05\\n\",\n            \"  2.14833890e-05 3.09596326e-05]\\n\",\n            \" [8.92104924e-01 1.07851624e-01 4.90856564e-06 ... 8.67088238e-06\\n\",\n            \"  4.84645898e-06 9.25974837e-06]\\n\",\n            \" ...\\n\",\n            \" [6.53564811e-01 3.46285373e-01 1.90432311e-05 ... 2.25746426e-05\\n\",\n            \"  1.92296520e-05 2.91551714e-05]\\n\",\n            \" [5.77207983e-01 4.22657400e-01 1.69154791e-05 ... 1.97136451e-05\\n\",\n            \"  1.75365039e-05 2.56826916e-05]\\n\",\n            \" [6.86957419e-01 3.12936485e-01 1.36032540e-05 ... 1.61753997e-05\\n\",\n            \"  1.37795878e-05 2.07246703e-05]]\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"4Uqrx92hd1Yl\"\n      },\n      \"source\": [\n        \"Output is of shape (1628, 9). We got probability of each possible rating from 1 to 5. We can extract specific rating which user would have given to a movie but it is not useful for these recommendations now.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"KNOAYhR0e6-h\",\n        \"outputId\": \"5f6aea9d-d39f-47f5-99c2-6d6fda8e047b\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"predicted_ratings = np.max(predicted_ratings, axis=1)\\n\",\n        \"predicted_ratings\"\n      ],\n      \"execution_count\": 98,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([0.6287119, 0.5161964, 0.8921049, ..., 0.6535648, 0.577208 ,\\n\",\n              \"       0.6869574], dtype=float32)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 98\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"X_AitEdxe7UB\",\n        \"outputId\": \"ff5bee9d-73ab-4d84-f94d-c3ded15bf273\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"predicted_ratings.shape\"\n      ],\n      \"execution_count\": 99,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(1628,)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 99\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"nMyRRTncgMbf\"\n      },\n      \"source\": [\n        \"Index of ratings sorted by descending order.\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ouBCeCapf-UK\",\n        \"outputId\": \"a0fd1203-cead-4ceb-9035-5a125a967cb3\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"sorted_index = np.argsort(predicted_ratings)[::-1]\\n\",\n        \"print(sorted_index)\"\n      ],\n      \"execution_count\": 110,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"[1445  135  962 ... 1030  460  159]\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"1wKHCeFTkROY\"\n      },\n      \"source\": [\n        \"**Movie names have been extracted from the available indices we got.**\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"p6KxPoScf-d6\",\n        \"outputId\": \"35e94fd4-35e0-4492-a579-7fa51df0a76b\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"recommended_movies = item_enc.inverse_transform(sorted_index)\\n\",\n        \"recommended_movies\"\n      ],\n      \"execution_count\": 124,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array(['Sword in the Stone, The (1963)', 'Baton Rouge (1988)',\\n\",\n              \"       'Meet Wally Sparks (1997)', ..., 'My Favorite Year (1982)',\\n\",\n              \"       'English Patient, The (1996)', 'Beverly Hillbillies, The (1993)'],\\n\",\n              \"      dtype=object)\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 124\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"HaKPES74keEW\"\n      },\n      \"source\": [\n        \"## Movies recommended with the help of Softmax Deep Neural Networks\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"CIIumPFPf-mS\",\n        \"outputId\": \"0c5edf6d-6ac6-4a14-e669-7b9ddf8b65a2\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"from pprint import pprint\\n\",\n        \"pprint(list(recommended_movies[:20]))\"\n      ],\n      \"execution_count\": 130,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"['Sword in the Stone, The (1963)',\\n\",\n            \" 'Baton Rouge (1988)',\\n\",\n            \" 'Meet Wally Sparks (1997)',\\n\",\n            \" 'Grosse Fatigue (1994)',\\n\",\n            \" 'In the Line of Duty 2 (1987)',\\n\",\n            \" 'Conspiracy Theory (1997)',\\n\",\n            \" 'Red Firecracker, Green Firecracker (1994)',\\n\",\n            \" 'Striking Distance (1993)',\\n\",\n            \" 'Two or Three Things I Know About Her (1966)',\\n\",\n            \" 'Phat Beach (1996)',\\n\",\n            \" 'Diva (1981)',\\n\",\n            \" 'Getaway, The (1994)',\\n\",\n            \" 'Jaws 2 (1978)',\\n\",\n            \" 'Welcome to the Dollhouse (1995)',\\n\",\n            \" 'Basic Instinct (1992)',\\n\",\n            \" 'Saint, The (1997)',\\n\",\n            \" 'Critical Care (1997)',\\n\",\n            \" 'Jude (1996)',\\n\",\n            \" 'Mediterraneo (1991)',\\n\",\n            \" 'Month by the Lake, A (1995)']\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"SoXBhPMiku38\"\n      },\n      \"source\": [\n        \"## Summing up the entire code into a recommender system function:\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"MwBUv7TlkuDn\"\n      },\n      \"source\": [\n        \"def recommender_system(user_id, model, n_movies):\\n\",\n        \"\\n\",\n        \"  print(\\\"\\\")\\n\",\n        \"  print(\\\"Movie seen by the User:\\\")\\n\",\n        \"  pprint(list(refined_dataset[refined_dataset['user id'] == user_id]['movie title']))\\n\",\n        \"  print(\\\"\\\")\\n\",\n        \"\\n\",\n        \"  encoded_user_id = user_enc.transform([user_id])\\n\",\n        \"\\n\",\n        \"  seen_movies = list(refined_dataset[refined_dataset['user id'] == user_id]['movie'])\\n\",\n        \"  unseen_movies = [i for i in range(min(refined_dataset['movie']), max(refined_dataset['movie'])+1) if i not in seen_movies]\\n\",\n        \"  model_input = [np.asarray(list(encoded_user_id)*len(unseen_movies)), np.asarray(unseen_movies)]\\n\",\n        \"  predicted_ratings = model.predict(model_input)\\n\",\n        \"  predicted_ratings = np.max(predicted_ratings, axis=1)\\n\",\n        \"  sorted_index = np.argsort(predicted_ratings)[::-1]\\n\",\n        \"  recommended_movies = item_enc.inverse_transform(sorted_index)\\n\",\n        \"  print(\\\"---------------------------------------------------------------------------------\\\")\\n\",\n        \"  print(\\\"Top \\\"+str(n_movies)+\\\" Movie recommendations for the User \\\"+str(user_id)+ \\\" are:\\\")\\n\",\n        \"  pprint(list(recommended_movies[:n_movies]))\"\n      ],\n      \"execution_count\": 141,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"-qAd6yrukuK_\",\n        \"outputId\": \"da16c604-2b70-4da3-eff1-9e01d38e4db7\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"print(\\\"Enter user id\\\")\\n\",\n        \"user_id= int(input())\\n\",\n        \"\\n\",\n        \"print(\\\"Enter number of movies to be recommended:\\\")\\n\",\n        \"n_movies = int(input())\\n\",\n        \"recommender_system(user_id,model,n_movies)\\n\"\n      ],\n      \"execution_count\": 139,\n      \"outputs\": [\n        {\n          \"output_type\": \"stream\",\n          \"text\": [\n            \"Enter user id\\n\",\n            \"307\\n\",\n            \"Enter number of movies to be recommended:\\n\",\n            \"15\\n\",\n            \"Movie seen by the User:\\n\",\n            \"['12 Angry Men (1957)',\\n\",\n            \" '2001: A Space Odyssey (1968)',\\n\",\n            \" 'Abyss, The (1989)',\\n\",\n            \" 'Alien (1979)',\\n\",\n            \" 'Apollo 13 (1995)',\\n\",\n            \" 'Boot, Das (1981)',\\n\",\n            \" 'Brady Bunch Movie, The (1995)',\\n\",\n            \" 'Braveheart (1995)',\\n\",\n            \" 'Brazil (1985)',\\n\",\n            \" 'Casablanca (1942)',\\n\",\n            \" 'Close Shave, A (1995)',\\n\",\n            \" 'Contact (1997)',\\n\",\n            \" 'E.T. the Extra-Terrestrial (1982)',\\n\",\n            \" 'Empire Strikes Back, The (1980)',\\n\",\n            \" 'English Patient, The (1996)',\\n\",\n            \" 'Englishman Who Went Up a Hill, But Came Down a Mountain, The (1995)',\\n\",\n            \" 'Escape from L.A. (1996)',\\n\",\n            \" 'Fargo (1996)',\\n\",\n            \"...\\n\",\n            \"...\\n\",\n            \" 'Sex, Lies, and Videotape (1989)',\\n\",\n            \" 'Shadowlands (1993)',\\n\",\n            \" 'Shawshank Redemption, The (1994)',\\n\",\n            \" 'Shining, The (1980)',\\n\",\n            \" 'Sneakers (1992)',\\n\",\n            \" 'Snow White and the Seven Dwarfs (1937)',\\n\",\n            \" 'Sound of Music, The (1965)',\\n\",\n            \" 'Stand by Me (1986)',\\n\",\n            \" 'Star Trek III: The Search for Spock (1984)',\\n\",\n            \" 'Star Trek IV: The Voyage Home (1986)',\\n\",\n            \" 'Star Trek: The Motion Picture (1979)',\\n\",\n            \" 'Star Trek: The Wrath of Khan (1982)',\\n\",\n            \" 'Star Wars (1977)',\\n\",\n            \" 'Stargate (1994)',\\n\",\n            \" 'Tank Girl (1995)',\\n\",\n            \" 'Terminator, The (1984)',\\n\",\n            \" 'This Is Spinal Tap (1984)',\\n\",\n            \" 'Titanic (1997)',\\n\",\n            \" 'To Kill a Mockingbird (1962)',\\n\",\n            \" 'Top Gun (1986)',\\n\",\n            \" 'Toy Story (1995)',\\n\",\n            \" 'Wallace & Gromit: The Best of Aardman Animation (1996)',\\n\",\n            \" 'Wizard of Oz, The (1939)',\\n\",\n            \" 'Wrong Trousers, The (1993)']\\n\",\n            \"\\n\",\n            \"--------------------------------------------------------------\\n\",\n            \"Top 15 Movie recommendations for the User 307 are:\\n\",\n            \"['Speed 2: Cruise Control (1997)',\\n\",\n            \" 'Houseguest (1994)',\\n\",\n            \" 'Batman & Robin (1997)',\\n\",\n            \" 'Magic Hour, The (1998)',\\n\",\n            \" \\\"Devil's Advocate, The (1997)\\\",\\n\",\n            \" 'Gone with the Wind (1939)',\\n\",\n            \" 'Cobb (1994)',\\n\",\n            \" 'Cool Runnings (1993)',\\n\",\n            \" 'Independence Day (ID4) (1996)',\\n\",\n            \" 'Smoke (1995)',\\n\",\n            \" 'Once Were Warriors (1994)',\\n\",\n            \" 'True Romance (1993)',\\n\",\n            \" 'Red Rock West (1992)',\\n\",\n            \" 'Third Man, The (1949)',\\n\",\n            \" 'MatchMaker, The (1997)']\\n\",\n            \"--------------------------------------------------------------\\n\"\n          ],\n          \"name\": \"stdout\"\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"tsUcbpEfktjP\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"bwlRm9Hie7Fd\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"MjLN1Dd_m14L\"\n      },\n      \"source\": [\n        \"\"\n      ],\n      \"execution_count\": null,\n      \"outputs\": []\n    },\n    {\n      \"cell_type\": \"markdown\",\n      \"metadata\": {\n        \"id\": \"XkbzKD0Om2VM\"\n      },\n      \"source\": [\n        \"# Rough Work\"\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"ICIiS-jwfCdL\",\n        \"outputId\": \"ec9052d4-c5f9-46d8-a186-a24463234218\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"a = np.asarray([[2,3,14,6],[3,5,7,2],[6,8,4,1]])\\n\",\n        \"a, a.shape\"\n      ],\n      \"execution_count\": 102,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(array([[ 2,  3, 14,  6],\\n\",\n              \"        [ 3,  5,  7,  2],\\n\",\n              \"        [ 6,  8,  4,  1]]), (3, 4))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 102\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"1Sv1WMgdfOkj\",\n        \"outputId\": \"9750cdcc-0663-41c8-a8d4-81c22815d339\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"b=np.max(a, axis=1)\\n\",\n        \"b, b.shape\"\n      ],\n      \"execution_count\": 103,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"(array([14,  7,  8]), (3,))\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 103\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"67xRASFNfu2p\",\n        \"outputId\": \"1b812c33-04e1-477e-97bd-d626fa4a4669\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"np.argsort(b)[::-1]\"\n      ],\n      \"execution_count\": 106,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([0, 2, 1])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 106\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"PfTQmi93Q7X4\",\n        \"outputId\": \"fd48d1c0-ef59-4e6c-b78c-98b2acfb37db\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"\\n\",\n        \"user_enc.transform([1])\"\n      ],\n      \"execution_count\": 56,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"array([0])\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 56\n        }\n      ]\n    },\n    {\n      \"cell_type\": \"code\",\n      \"metadata\": {\n        \"id\": \"5VPBNYx3Rlub\",\n        \"outputId\": \"6edd0f33-c3a5-4296-a744-6e2ccca4fbb0\",\n        \"colab\": {\n          \"base_uri\": \"https://localhost:8080/\"\n        }\n      },\n      \"source\": [\n        \"max(refined_dataset['user'])\"\n      ],\n      \"execution_count\": 52,\n      \"outputs\": [\n        {\n          \"output_type\": \"execute_result\",\n          \"data\": {\n            \"text/plain\": [\n              \"942\"\n            ]\n          },\n          \"metadata\": {\n            \"tags\": []\n          },\n          \"execution_count\": 52\n        }\n      ]\n    }\n  ]\n}\n"
  }
]