{ "cells": [ { "cell_type": "markdown", "id": "322a393e-ee13-445d-93e1-338d824e6219", "metadata": {}, "source": [ "# FILM RECOMMENDATION SYSTEM" ] }, { "cell_type": "code", "execution_count": 1, "id": "f7135c09-f799-4d79-b0c3-fba4a3a048b0", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Importing libraries\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "import seaborn as sns\n", "import missingno as msno\n", "from sklearn.impute import KNNImputer\n", "from sklearn.preprocessing import MinMaxScaler\n", "from sklearn.metrics.pairwise import cosine_similarity\n", "import joblib\n", "from joblib import dump, load\n", "import time\n", "\n", "from tensorflow.keras.preprocessing.text import Tokenizer\n", "from tensorflow.keras.layers import Input, Dense\n", "from tensorflow.keras.models import Model\n", "\n", "pd.set_option('display.max_rows', 500)\n", "pd.set_option('display.max_columns', None)\n", "pd.set_option('display.width', 1000)\n", "import warnings\n", "warnings.filterwarnings('ignore')" ] }, { "cell_type": "code", "execution_count": 2, "id": "cfe9b983-c2c6-426e-89c5-7b7ee1838b31", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Importing data\n", "\n", "# titles data\n", "netflix_titles = pd.read_csv('../data/Netflix/titles.csv')\n", "netflix_titles = netflix_titles[netflix_titles['type']=='MOVIE']\n", "\n", "amazon_titles = pd.read_csv('../data/Amazon_prime/titles.csv')\n", "amazon_titles = amazon_titles[amazon_titles['type']=='MOVIE']\n", "\n", "# credits data\n", "netflix_credits = pd.read_csv('../data/Netflix/credits.csv')\n", "netflix_credits = netflix_credits.loc[:, ('id', 'name')][netflix_credits['role']=='ACTOR']\n", "netflix_credits = netflix_credits.groupby('id')['name'].apply(', '.join).reset_index()\n", "\n", "amazon_credits = pd.read_csv('../data/Amazon_prime/credits.csv')\n", "amazon_credits = amazon_credits.loc[:, ('id', 'name')][amazon_credits['role']=='ACTOR']\n", "amazon_credits = amazon_credits.groupby('id')['name'].apply(', '.join).reset_index()" ] }, { "cell_type": "code", "execution_count": 3, "id": "8f15ccaa-c740-44e8-b136-5a93f7a43f4d", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Merging data for each plateform\n", "netflix = netflix_titles.merge(netflix_credits, on='id', how='left')\n", "amazon = amazon_titles.merge(amazon_credits, on='id', how='left')" ] }, { "cell_type": "code", "execution_count": 4, "id": "f771e728-27dd-4b99-b0b3-1f80ab1d561a", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Concatenating data\n", "dataset = pd.concat([netflix, amazon], axis=0).reset_index()" ] }, { "cell_type": "code", "execution_count": 5, "id": "8242540d-fb36-4655-a521-1b6eab3a4567", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "(13153, 17)" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset.shape" ] }, { "cell_type": "code", "execution_count": 6, "id": "7fc15ea3-4e67-42ec-a7ca-0528778f2327", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indexidtitletypedescriptionrelease_yearage_certificationruntimegenresproduction_countriesseasonsimdb_idimdb_scoreimdb_votestmdb_popularitytmdb_scorename
00tm82169RockyMOVIEWhen world heavyweight boxing champion, Apollo...1976PG119['drama', 'sport']['US']NaNtt00751488.1588100.0106.3617.782Sylvester Stallone, Talia Shire, Burt Young, C...
11tm17823GreaseMOVIEAustralian good girl Sandy and greaser Danny f...1978PG110['romance', 'comedy']['US']NaNtt00776317.2283316.033.1607.406John Travolta, Olivia Newton-John, Stockard Ch...
\n", "
" ], "text/plain": [ " index id title type description release_year age_certification runtime genres production_countries seasons imdb_id imdb_score imdb_votes tmdb_popularity tmdb_score name\n", "0 0 tm82169 Rocky MOVIE When world heavyweight boxing champion, Apollo... 1976 PG 119 ['drama', 'sport'] ['US'] NaN tt0075148 8.1 588100.0 106.361 7.782 Sylvester Stallone, Talia Shire, Burt Young, C...\n", "1 1 tm17823 Grease MOVIE Australian good girl Sandy and greaser Danny f... 1978 PG 110 ['romance', 'comedy'] ['US'] NaN tt0077631 7.2 283316.0 33.160 7.406 John Travolta, Olivia Newton-John, Stockard Ch..." ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset.head(2)" ] }, { "cell_type": "code", "execution_count": 7, "id": "d84823ed-b408-4658-8553-87ade8e82b79", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 13153 entries, 0 to 13152\n", "Data columns (total 17 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 index 13153 non-null int64 \n", " 1 id 13153 non-null object \n", " 2 title 13153 non-null object \n", " 3 type 13153 non-null object \n", " 4 description 13032 non-null object \n", " 5 release_year 13153 non-null int64 \n", " 6 age_certification 4209 non-null object \n", " 7 runtime 13153 non-null int64 \n", " 8 genres 13153 non-null object \n", " 9 production_countries 13153 non-null object \n", " 10 seasons 0 non-null float64\n", " 11 imdb_id 12315 non-null object \n", " 12 imdb_score 11941 non-null float64\n", " 13 imdb_votes 11916 non-null float64\n", " 14 tmdb_popularity 12670 non-null float64\n", " 15 tmdb_score 11217 non-null float64\n", " 16 name 12019 non-null object \n", "dtypes: float64(5), int64(3), object(9)\n", "memory usage: 1.7+ MB\n" ] } ], "source": [ "dataset.info()" ] }, { "cell_type": "code", "execution_count": 8, "id": "22c2e0da-7117-422d-91f3-06bb63e98e84", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
indexrelease_yearruntimeseasonsimdb_scoreimdb_votestmdb_popularitytmdb_score
count19455.00000019455.00000019455.0000000.017372.0000001.731500e+0418926.00000017050.000000
mean2966.4872272003.04379392.343922NaN6.0596712.717334e+0410.7703416.108614
std2567.45970725.63839230.800705NaN1.2446231.123930e+0543.9424641.332341
min0.0000001901.0000001.000000NaN1.1000005.000000e+000.0001530.500000
25%960.0000001999.00000078.000000NaN5.3000002.020000e+021.6710005.400000
50%2087.0000002015.00000092.000000NaN6.2000001.044000e+033.7130006.200000
75%4457.5000002019.000000107.000000NaN7.0000007.266500e+039.7737507.000000
max9321.0000002023.000000940.000000NaN9.9000002.684317e+063187.53100010.000000
\n", "
" ], "text/plain": [ " index release_year runtime seasons imdb_score imdb_votes tmdb_popularity tmdb_score\n", "count 19455.000000 19455.000000 19455.000000 0.0 17372.000000 1.731500e+04 18926.000000 17050.000000\n", "mean 2966.487227 2003.043793 92.343922 NaN 6.059671 2.717334e+04 10.770341 6.108614\n", "std 2567.459707 25.638392 30.800705 NaN 1.244623 1.123930e+05 43.942464 1.332341\n", "min 0.000000 1901.000000 1.000000 NaN 1.100000 5.000000e+00 0.000153 0.500000\n", "25% 960.000000 1999.000000 78.000000 NaN 5.300000 2.020000e+02 1.671000 5.400000\n", "50% 2087.000000 2015.000000 92.000000 NaN 6.200000 1.044000e+03 3.713000 6.200000\n", "75% 4457.500000 2019.000000 107.000000 NaN 7.000000 7.266500e+03 9.773750 7.000000\n", "max 9321.000000 2023.000000 940.000000 NaN 9.900000 2.684317e+06 3187.531000 10.000000" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset.describe()" ] }, { "cell_type": "code", "execution_count": 8, "id": "1d43e6f7-8e86-488d-ab73-51aa31beeed8", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "index 0.000000\n", "id 0.000000\n", "title 0.000000\n", "type 0.000000\n", "description 0.009199\n", "release_year 0.000000\n", "age_certification 0.679997\n", "runtime 0.000000\n", "genres 0.000000\n", "production_countries 0.000000\n", "seasons 1.000000\n", "imdb_id 0.063712\n", "imdb_score 0.092146\n", "imdb_votes 0.094047\n", "tmdb_popularity 0.036722\n", "tmdb_score 0.147191\n", "name 0.086216\n", "dtype: float64" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset.isnull().sum()/dataset.shape[0]" ] }, { "cell_type": "code", "execution_count": 9, "id": "8d504a43-1d71-479d-baa6-fcadd362072d", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAACAsAAAQECAYAAAAWdgClAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzddXgUV9sG8Hs2bhAhxAiQYEGLFNdCobhTXIIV9+L2FktxCG4JGtylQNDgLsGKu4cQCCGy+3x/5NthlyRAW0iA3L/r4mIzc2b2zM7O7MyZ5zxHEREBERERERERERERERERERERpRqalK4AERERERERERERERERERERJS8GCxAREREREREREREREREREaUyDBYgIiIiIiIiIiIiIiIiIiJKZRgsQERERERERERERERERERElMowWICIiIiIiIiIiIiIiIiIiCiVYbAAERERERERERERERERERFRKsNgASIiIiIiIiIiIiIiIiIiolSGwQJERERERERERERERERERESpDIMFiIiIiIiIiIiIiIiIiIiIUhkGCxAREREREaUSiqJAURQMHz48pavySQIDA9U637p1K8H8cuXKQVEUlCtXLtnr9l8MHz5c3S56JzQ0FM2aNYOnpyfMzc3Vz+jMmTMpXTVV5syZoSgKWrVqldJVAQDcunVL/ZwCAwNTujrfjY+de4iIiIiIiL4XDBYgIiIiIiL6yuzdu1d9UGX4z9TUFI6OjvDy8kKZMmXQs2dPrFmzBjExMSldZaL/5OTJkyhSpAiWLl2Ke/fuITY29l+tRx9Aov83YsSIT1pu1KhRRst9awEo37oxY8aon31AQMA/Wvb69evqstWrV/9CNSQiIiIiIvo+MViAiIiIiIjoG6HVavHixQvcunULISEhmDx5MurXr48MGTJg5MiRiIuLS5F6fas9/D8n9kT+bwYMGICoqCikSZMGM2bMwLFjx3D+/HmcP38ePj4+/3q9ixcv/qRyS5Ys+dfvQf9ds2bNoNHEN1F96j7TM9x3zZs3/6z1IiIiIiIi+t6ZpnQFiIiIiIiIKGkdO3ZEp06d1L9fv36NFy9e4Ny5c9i1axeCg4Px9OlTDBkyBJs2bcLmzZvh7Oyc6LpEJLmq/Vm0atXqq0n3/jkNHz78mxkKIjnExsZi3759AID27dujY8eO/3mdlpaWePv2La5evYqjR4+i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VAmjRo3C5cuXE2z75cuX4e/vj9q1ayNXrlxwcnKCqakpHBwcUKxYMQwfPhxXrlxBpUqV/vP2EhERERHR90kRSaEBJYmIiIiIiIiI6LsQGxuLtGnTIioqCoMHD8aIESNSukpERERERET0EcwsQERERERERERE/8n69esRFRUFAChWrFgK14aIiIiIiIg+BTMLEBERERERERHRB127dg1Zs2ZNdN6tW7dQunRp3Lt3Dy4uLrh3796/HhaFiIiIiIiIkg/v3IiIiIiIiIiI6IN8fHxQtWpVVK9eHblz54aNjQ2ePHmCPXv2YNasWQgPDwcAjB8/noECRERERERE3whmFiAiIiIiIiIiog9SFOWD8zUaDUaOHIkBAwYkU42IiIiIiIjov2KoNxERERERERERfdCmTZuwbds2HDp0CI8fP8bz589hYWEBDw8PlCtXDp07d0aePHlSuppERERERET0DzCzABERERERERERERERERERUSqjSekKEBERERERERERERERERERUfJisAAREREREREREREREREREVEqw2ABIiIiIiIiIiIiIiIiIiKiVIbBAkRERERERERERERERERERKkMgwWIiIiIiIiIiIiIiIiIiIhSGQYLEBERERERERERERERERERpTIMFiAiIiIiIiIiIiIiIiIiIkplGCxAREREREREREREBEBEPmkaEREREdH3gMECRERERERERERElOqJCBRFAQCcO3cOgYGBiIyMVKcREREREX1vGCxAREREREREREREqZpOp1ODAtatW4cGDRqgdevW6NWrF2JjY1O4dkREREREX4ZpSleAiIiIiIiIiIiIKKWICDSa+D5VCxYsQNu2bQEAf/zxB6pVqwZTUzahEhEREdH3SREOukVERERERERERESp3Jo1a9CgQQOkT58eEydORJMmTVK6SkREREREXxSDBYiIiIiIiIiIiChVu3HjBurVq4ezZ89iyZIlaqCAVquFiYkJAOD58+cwMzODlZUVzMzMUrK6RERERESfhSalK0BERERERERERESUkl6+fImbN2+ibt26RhkFYmJicPHiRdSpUwelSpVC0aJFMWDAAFy7di0Fa0tERERE9HlwwC0iIiIiIiIiIiJK1W7duoWIiAhERETg6dOncHZ2RmhoKFasWIEFCxbg4cOHcHJyQkREBCZNmoR79+7B398f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REQpTlEUREZGYvny5di4cSOioqJgahqfGHXu3LmoXbs2Nm7cCADo06cPRo4cCQBYvnw5li5dmuQ69QEDtWvXxvTp03H48GE4ODio04mIiIiIUisGCxAREREREREREdFX4dy5c5g4cSK6deuGFStWAAAWLlyI3377DS9evICDg4Na9vfff8e4ceMAAD169MCcOXMSXadhwECVKlXg6uoKnU5nNLQBEREREVFqxGABIiIiIiIiIiIi+ip4eXmhdOnSCAsLw4QJE+Dr6wtfX194enpiypQpKF26NID4oQoAoHfv3hg/fjwAoEOHDh8MGDCkH8KAiIiIiCg1U4T5toiIiIiIiIiIiOgrcffuXSxcuBCjRo1CdHQ07O3tMWfOHNSvXx8AICJQFAU6nU596D9x4kT06dMHADBr1iy0b98+xepPRERERPStYAgtERERERERERERfTU8PT0RExOD6OhomJqawtraGiKCuLg4o3IajQY6nQ4A0KtXL6MMA/PmzUv2ehMRERERfWsYLEBERERERERERERfBX0S1NOnTwMAatSogZcvX2LIkCFYtGgRYmJioCiKWi6pgIH27dtj6dKlKbAFRERERPH01yh6TPZOXyMGCxAREREREREREdFXQd+IvmnTJpw9exYLFy5E586dce/ePfz5559YtmxZgoABQ7169cKwYcOQLl06lCpVKrmrT0RERKTSD5d04cIFAICiKClZHaJEKcIwFiIiIiIiIqKPMhwbOzY2FrGxsbCwsICJiUkK14yI6NslIh9tOL916xZmzpyJ6dOnw8PDAwMGDECTJk1gbm6O2NhYmJmZAQDOnj2LH374AQDw6tUr2NnZIS4uDqampl98O4iIiIgSM2PGDHTp0gXBwcEoX758SleHKAFmFiAiIiIiIiL6CBFRAwXWr18PX19fFCtWDE2bNuW42ERE/5JOp1MDBUJDQ7Fz505s2LAB9+7dMyqXOXNmdOnSBZ07d8b9+/cxZswYLFu2DG/evIGZmRni4uIwePBgtG3bFhs3bgQA2NnZQUQYKEBEREQp6sqVKwDir3WAhEMTEKU0ZhYgIiIiIiIi+kQLFy6Er69vgundu3fH77//Dnd39xSoFRHRt8cwo8CSJUvQp08fPHnyBADg4OCA4cOHo1q1avD29laXuXv3LqZNm6ZmGOjQoQNatGiB0aNHY9KkSXB3d8eJEyfg6uqaIttERERE9L7NmzejZs2a8PDwwJEjR+Dh4ZHSVSIywmABIiIiIiIiok9w7NgxVKpUCRqNBiNGjECWLFlw7do19O3bF2/fvkXz5s3xxx9/IFOmTCldVSKib8bKlSvRqFEjAEDlypXx6tUrHDx4EFZWVmjWrBm6du2KPHnyqOXv3r2L2bNnY9asWQgLC4OLiwseP36MLFmyIDg4GJkyZTIaNoaIiIgopdWsWRObN2/GyJEj0b9/fwDgtQp9NfhNJCIiIiIiIkrE++khQ0NDERERgZkzZ6Jz586oXLkyunTpgnXr1iF37txYvHgxhg4ditu3b6dQjYmIvn6G/ZbevHmDKVOmIF26dFi5ciW2bt2KkJAQTJs2DdmzZ8eCBQswfvx4NW0vAHh6eqJr166YPHkyfHx84OjoiLp162Lfvn3IlCkTtFotG9+JiIjoq6DVagEAnTp1Qpo0aRAcHAyNRgONRgP25aavBTMLEBEREREREX1AQEAA7OzscP78eezYsQOHDx8GAMTFxaljYe/duxfdunVDaGgomjVrhhEjRjDDABHRB9y8eRM6nQ4FChTAsGHD0Lt3b6OhCTZt2gQ/Pz8cO3YMTZs2RZ8+fYwyDABATEwM3rx5AysrK1hYWECr1cLExCQlNoeIiIhSqcQyGr1/TfLgwQPUqFEDp0+fhr+/Pzp37pzc1SRKEsNsiYiIiIiIiJJw4sQJtGnTBr/++iu2bt0KBwcHdZ6pqanaG6RcuXKYOnUq8uTJgyVLlmDIkCHMMEBElISAgACULFkSGzduhJ2dHcqUKQMgPuuA/rxao0YNDBgwAIULF8bSpUsTZBiIi4uDubk57O3tYWFhARFhoAARERElO32gwNatW7FgwQIAUK9JdDodRATu7u4YOnQoACA4OBivXr1iZgH6ajBYgIiIiIiIiCgJP/74I3r27AkAOHnyJG7evIm///5bna8oSpIBA//73/9w48aNFKk3EdHXKjo6GkePHsWjR48wZswYPHz4EG/evAEQ39hueF6tXr06Bg4ciCJFimDp0qWYMGECLly4AABqZhc9fUYCIiIiouRg+LB/69atqF69Otq2bYtKlSohMDAQd+7cUa9tACBv3rwoWLAgNmzYgOPHj/Pahb4aDBYgIiIiIiIiSoR+fMkJEyagd+/eAIDr169j165dRuXeDxjw9/dHgQIFEBgYiClTpqjrISIiwMLCAn/88Qd69uwJMzMzAMC8efPw/PlztUxSAQPLly/H4MGDcfny5RSpOxEREaU++muSuLg4dVpsbKz6sP/x48fw9PTEnDlzkDdvXuzatQutW7dG2bJlERgYiDNnzgAAvL290aBBAwDAuHHjEBYWlrwbQpQEBgsQERERERER/T/D3iEmJiaIiYkBEN+Y07dvX8TFxaFnz55YvXq10XKGD7bKli0LPz8/VKhQAb169WJabCJKtQzPqS9fvlRfp0+fHv369UODBg3g4OCAPXv2YMOGDYiMjFTLGJ5Xq1WrhkGDBsHLywunTp1C+vTpk28jiIiIKFVTFAWvXr3CxIkTERQUBABqwKO/vz88PDzw4sULtG3bFjt37sTSpUtRu3Zt3L59G23btkWNGjXQv39/3L17F82bN0fFihVx6tQpPHz4EED8UAVEKUkRDopBREREREREqZiIGKWAjImJgZmZWaJpIQcMGIA///wT5ubmWLp0KerVq5fkumJiYmBubo64uLgE6bKJiFKTefPmYffu3Rg0aBBy586tTn/69ClGjx6N2bNnw8PDAyNGjEDNmjVhbW2tljE8r+7atQt58uSBi4sLdDqdOkYwERER0Zd08eJF/PTTT3j69CmmTZuGTp06Yd68eWjfvj2sra2xYsUKVKtWzWiZtWvX4sCBA5gxYwZiYmLg7e2NfPnyISYmBlu3bkWjRo2wbNmyFNoioncYLEBERERERESpluHDpt27d2P79u3YunUr0qZNCy8vLzRo0AAlS5aEk5OTuszAgQPh5+f3SQEDRESp3d27d1GpUiVcuXIFbdu2Rc+ePZEzZ051vj5gYNasWciQIQP++OMP1KpVK8mAAQAMFCAiIqJkodVq1UxxM2bMQJcuXQAAjRs3RlBQEDw8PODv74/atWsnugwAnDp1CitWrMC6detw7do1dXqOHDmwePFi/Pjjj7yHpBTFYAEiIiIiIiJKlQwbZAIDA9GhQwd12AEzMzPExsYiffr0KFeuHP78809kypRJXfZjAQNERPTOxo0bMWbMGBw9ehS+vr7o06fPPw4YICIiIkouwcHBKFasGGxtbREbG6sOO7B27VrUr18fJiYmsLOzw/r161GmTBkAiQcz6u85RQSvXr3C+PHjcezYMezYsQMAMHr0aPTv3z95N47oPQzBJSIi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DRqk//3vf9q5c6fHse4JA/fffz8JA8mc07Hz9NNPyxij0aNHa+3atapWrZpXosClS5ckXe94dwa9uJb6l/v6rgxMpTzu19ZVq1bpgw8+0Ndff61Tp055HOckPMZPGHAS6+Li4uzgyJUrV+y5+m8S7/DfLF68WL1791azZs300UcfaevWrV7HnD592qsz3dGyZUsZY/T5559L4nz2hU8//VTly5fXhg0bvH7fzrn56quvyhij3r17S0o4LmvXrlXZsmVljNG9995LwoCfuV9X586dq3r16il//vxe1cb69Oljr6ujRo3yqpgUFxen9u3byxijp59+WufPn/dJ+5G48+fPq3Tp0sqYMaNmzpxpt588eVKffPKJcuXKJWOMqlWrpgULFmjLli06dOiQWrVqJWOMypQpk2AiAW6vcePGaciQIXrsscdUv359uz02NtbjOeWrr75SunTplClTJltNiaSO5GPLli3KnTu3jDGaNGmS3e48yzixchJ5rl27psuXL2vo0KHq0KGDHnnkEbVr107jx4/XyZMn7TFIeUgWAAAAgM+4d6wdP35cd999t7Jly+bxUrJ9+3YNHDhQ2bNnt0kE7i5duqRJkyapUaNGKleunF566SVb5oyXEv9YtmyZIiMjFR4erh9//NFj36hRo2xp3uHDh9/U97nH8YMPPrCVIzZv3pyk7U7r3M/HCRMm2BLXzp8CBQroo48+8vjM77//TsJACuF07Pz888+KiIhQxYoVVb58eRlj1LZtW3tcTEyM/ftTTz0lY4xd0gX+sWrVKnXr1k0zZszwd1NwC+JXT4qKipIxRk899ZTWrl0ryXOwP6GEAfd9xYsX165du3zSdniaMmWKgoKCPO6NERERmjBhgsfsV/eYuw+AdO/e3SY7Hjx40KdtT6tOnz6tqlWr2ueU/fv3J3jct99+K2OMWrVqJSnxd4iRI0fa2N99990aOXIkg1x+4H6OjR492iaMN27cWD///LMkz3Ovc+fONm7t27fXxIkT9eeff2r9+vU2ibJEiRK2Kh3JH/7jnHtOcniLFi089h8/flwDBw5UmTJlZIxRaGioQkJClDFjRhtH5zzn3PSdtWvX2kSNokWLqmbNmrp48aJHDNz/3rp1axljVLVqVZ09e9YfTUYinGVA3njjDY/tcXFxOnLkiDp06KDnn39ejRo10uLFi70+H/+8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rytXrthn0GPHjtkyruXKldMff/zh9fk33nhDxhi9/PLLunz5MvdFH3n77bftdXLKlCl2++LFixUeHq5s2bJp4MCBWrNmjebPn6/nn39e+fLlkzFGNWvWvOmk1YQGRIKDg+1SMfhviGPqQBxTrq+++kp58+bV2LFjExxovuuuu5Q+fXpVqFBB+fLl0/HjxyV5Psc4cVu3bp0iIiIUGRmptWvXev23GGC+fYhj2hMbG2vj9/333ysgIMAmY7Vv394e5z5JuWPHjraSZPx3ln+LZAHgH9zopfDw4cNasWKF8uTJo8yZM6tz586qXr26ChYs6JE8kC1bNlvmBQDSEvdr6Lx589ShQweVLVtWtWvX1jPPPKONGzd6zdhC8jZu3Di7huvQoUMTPe7YsWMkDCRzO3bs0F133aWQkBCNGTPGbv/4449ljFFERITKlSsnY4zuuecer8THJk2aqEiRIurevbt9MWUgJHk6ceKExo4da9fQDggI8HhWrVixoq0QQgxvnytXrmj//v0eS3hI1ztd3WeRjxo1SoGBgTedMPDLL7+QMJAMbN++XWfOnFGuXLnUs2dPu91JBtiyZYvKly8vY4wqV66snTt36ty5c4qNjdW5c+fsMhMlSpSwiTvcL33H/XcdExOjQYMGKU+ePMqRI4fee+89r863GTNm2ISBxx9/XAsWLJB0/Tx1Ou169+5tj2ew2XcmT56siIgIO9i/evVqe/104rB8+XJVqlRJxhjlypVLn332maZPn67169frlVdekTFGefPmpR/HR9yfPT788EP7fDJp0iRJ0qeffipjjCZOnOjxuRMnTtgBE2OMTdC52f8WJZaTFnFMHYhjynbmzBm9/PLLCggIULly5TRu3LgEB5rvvvtur9jGFxsbq0uXLun++++XMUbTpk3z2u9w/r/CAHPSII5pw+7du7V48WItW7bMa9mr/fv3q0WLFgoICFCWLFk0a9Ysr893795dxhiVLl3aLu36X5AsALiJ/wIfGxvr1fHmdPY4Tp48qaioKGXPnl179uzR1atXdfHiRS1fvlzTp09X586dtXPnztvedgBIbtyvqd9//72CgoLsILMzwzVz5sz64IMPtGfPHj+2FDdr/fr1uuOOOxJ8EUmoE9w9YSBnzpz66quvGIhMRkaPHi1jjD777DO7rW/fvgoICFCGDBm0detWHTlyRGXL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pImMMcqbN2+iCQNOEl78ZV7gGzfbQdqyZUsZY5QzZ04tXbo0wWNq166te+65R2fPnrWllbk/+s60adPsbFfnT+bMmdW8eXP7DuGedBw/9m+//baMMSpZsqSio6N92nZ4GzlypIKCghQYGKgHH3xQL730kipVqqSsWbPahMaEBih79Ohh4//NN99I+r+4cz76HnFMHYhjyubExqny+P7770tK+Blo/fr1dnnQ6tWrew00O4if7xHH1GXKlCkyxmjo0KF224ULF/T555+rUKFCypgxo3r06HHDhIGJEyd6VSC4XUgWQJqxZcsWOxMrfsKAdP2iW7duXds5EL8D3b1M76uvvipjjN59910y0YF/4FTtiF963r20bnR0tLJly6a8efPqypUr2r59e4KJAs4LibNuevwBMPiO+4Pq5MmTVbt2bWXNmlV33HGHihQpom+//VYbNmywxwwePFgFCxa069Z98cUXWrt2rWbOnKkGDRrIGKMCBQrYRAJmL/ve/PnzFRYWpoiICI+y5IlVebh8+bJGjx6tWrVqKW/evIqMjFSNGjX09ttvM7jsA7t27Uqwsodj586dSpcunZ5++mmP7StWrLAvlO+++26i3x9/BjSx9B0nnp07d5YxRgMHDvTYv3btWjvT580337yp70woUSBTpkwkCtxmTueA+5+QkBB98sknXmUE9+3bp1deeUXBwcEqWrSoOnbsaCu1pE+fXlu3bvXTT4GVK1fq5MmTKl++vLp27eq1/9y5czZWiSUMfP755ypcuLCt0gLfcX+mXLt2rQYPHqyWLVuqXbt2GjlypHbt2mX379+/X48//riMMQoMDNT48ePtGqExMTF2RnqbNm1ueA/G7eFe3ePtt9/WihUrNHv2bOXJk0cBAQGqU6eOjh07JsnzvvfXX39pxYoVevjhh2WMUf78+fX777/768fA//frr7/axEX3EsuHDx/W7NmzlTdvXlsh9EYl0DNlyqTLly/z/ugnxDF1II6px8CBA2XM9SUHpcTf48eMGWPvqeXLl9eIESOIWzJCHFO2yZMn68MPP1Tr1q1177332u3OOOLFixdtP3lkZOQ/Jgz4CskCSBOcF/iNGzfal/8aNWpo4cKFHifehg0bVKxYMZtpnhCnxFLlypXt2ksAbmzq1KkKDQ1NNGFAkk3m6dSpk6pUqWI74hzupSMfeughZcqU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77nnHpuABd8gjqkDcUzZbrZPzv3+ePjwYVtZp2DBgpo2bVqC33ejbUhaxDH1cpbHioyMVJcuXex2J5br16+3S+02adLEYxm0S5cu6cyZM5ozZ4527NiRYvvkSBZAijB27FgZY9S3b1+P7TNmzLBZ5q1bt06wTItzgf3rr7/UtWtXMtH9KLE4duzYUcYY3X333VqxYoXdHhsba2dGnjhxQlFRUfr000/VtWtXbdu2zadth7Rz5077EOSUZnV/wEmIe8LAyJEjfdRSJMZ5ORwzZoydvRoSEqJffvnFY39Cn3EsWLBAn3/+uZ3Fdd9999nBEx5ofe/EiRPKli2bsmfPbl/ynZi5v5w8+uijiQ6IOMcTP/8ZMGCAfvzxR/Xt21c1atSw269du2bjsmTJEoWHh8sYo7p166pXr16aP3++fvzxR1tBomDBgraznUEt33MGs9yXXvrkk09kjFGGDBm0bNkyjR07VlmyZFHWrFnVuXPnm5rN8+6779oZldHR0bfzR0jznGVAevXqpUqVKmnx4sWS5FGpwz1hoH379goMDFRwcLDCw8PtvTFXrlwpruRganP06FFlzpxZOXLk0MmTJyUlfH988sknuT8mYwMGDNDEiRP12WefqXLlyna7+3l49epVzZ07V8WLF1doaKi++uorxcXFeVQ06927901Vw0LS27t3ryIjI3Xfffd5bL906ZL27NmjJk2a6K677lL69On15ptv2mtnTEyMtmzZot9++01Xr171qlAH3+vfv7/69OnjsW369OkqXry4jDF6+eWXdfDgQa/POdfSnTt36o477lBAQACzmf2IOKYOxDFlupU+uX870IzbjzimPk4/QN++fVWzZk07PuX0AzgxSixhILX0v5EsgBRh9erVdoDyyy+/9Ng3a9Ysu7ZkmzZtbpgwQAkX/0osjmvWrFHt2rXtWjDu68I62rdvL2NMiizhklqcPn1an3zyiaZOnar3339fxhiFhoba9ZkS4yQMGGM8ZlrCP5xZj0WKFFHDhg1t4sc/lWaN/+Czd+9elS1bVsYYWy4dvnfu3Dnly5dPuXPntskC7i8azn3v4MGDKl26tM14jj8gAv85fPiwvUYWK1ZMtWrV8jrGOf/WrFmjKlWqKH369B7LwoSEhOjBBx+0HUI87/je5cuX1axZMz355JN22/Dhw5UxY0alT59e69atkyQd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AAAAAAAAqIxrCAAAAAAAqILx52XQRwBIQ1gAAAAAAGAKNigB4PXato2u6/ougzk0TbP83sZ7nHrNFRZ49tln49FHH41HH300Nm/eHJs3b47nn38+IiKuvfba2LBhwz6/xl/+8pf49a9/HZs3b44//vGP8eyzz8auXbviwAMPjKOOOipOP/30uOqqq+KSSy6JAw444C2/zu7du+Pxxx9/XT07duyIiIjjjjtu+dd7s2PHjjjhhBOm+db3+v099thj8dBDD8XmzZtjy5Yt8dxzz8W//vWveMc73hFHH310fPKTn4y1a9fG+eefP9XfBQAAAAAMhw2RPK3cDNHDfOljGWxOlkcfIW9zhQWOOuqo/f6Lv/71r8c999zzpr+3ffv22L59e/zwhz+Mc889N+699944/PDD3/TPXnzxxTGZTPa7nhS+9KUvxcMPP/yGf79nz57YunVrbN26Ne6+++64/PLL4+67746maXqoEgAAAACgTja1yqCPAJDGfl9DcOyxx8bJJ58c999//2x/8dJSnHnmmbFmzZo49dRTY/Xq1XHkkUfGCy+8EH/961/jjjvuiD/96U/x0EMPxcUXXxy//e1vYzQaveHrvPbaa8u/Puyww+ITn/hEbNq0KXbv3j3X9/O1r30tPvOZz7zl7x922GFv+XurVq2Kc889N84666w4+eSTY/Xq1XHEEUfEc889F7///e/ju9/9bmzfvj1+9KMfxWg0iu9///tz1QgAAAAAAAAA+2OusMAtt9wSp59+epx++ulx1FFHzTTG/7/WrVsXS0tv/tdfeOGFccMNN8QVV1wR9957bzzyyCPxi1/8Ii6++OI3/Nmrrroqrr/++jjjjDPixBNPjIiI448/fu6wwHvf+9445ZRT5nr2l7/85Vt+TxdddFHceOONccEFF8SmTZviBz/4QXzlK1+JU089da6/CwAAAACA2Rhfny/XEJRhZR8B6N9cYYFbb711///it9hU/68DDzwwbr755rj33nsjIuI3v/nNm4YFrr/++v2uJZV9fU/vfOc746abbopNmzZFxH++J2EBAAAAAIDFsElZBn0EgDTeONd/QN71rnct/7qUlGCJ3xMAAAAAAAAAeZlrssCifO9731v+9Qc+8IEeK0mnxO8JAAAAACAHxtfnyzUEZXANAcCwDC4ssGvXrnjiiSdi3bp1sX79+oiIOOKII+Lqq69eyN9/2223xa233hpPP/10NE0TxxxzTJxzzjlx/fXXx8c+9rGZv96rr74azz33XPz5z3+O2267Le67776IiHj/+98fF110UeLqAQAAAAAAhk/oI1/CO2XQx/JMJpOZnxlEWOC8886Lhx566E1/7/DDD4977703/u///m8htTz++OPLv96zZ09s2bIltmzZEnfccUd84QtfiG9961uxatWqfX6d448/Pp588sk3/b3jjjsufvKTn8TS0iD+7wcAAAAAAACgMge89tprr+3vF9mxY0eccMIJERFx7bXXxoYNG2Z6/q3CAjfeeGN89atfjfe85z0zfb3/btQfd9xxsWPHjn3++R07dsRHP/rRuPTSS+O8886Lk046KZqmiX/84x9x//33x5133hm7d++OiIirrroq7rnnnqlrWGlpaSluueWWuOmmm+LQQw+d6XsCAAAAAAAAgFQGERbYvn17vPTSS/Haa6/Fv//973jsscfi9ttvj7/97W/xqU99KtatWxdHHXXU1F9v1rDAnj174pVXXomDDjroTX//iSeeiAsvvDCeeuqpiIj46U9/Gpdccslev+bWrVtjz5498eqrr8bzzz8fDz/8cNx+++2xa9euuPLKK+M73/lOHHzwwVN/TwAAAAAAAACQyiDCAm+m67q4/PLL4+c//3kce+yx8cgjj8Qxxxwz1bOzhgWmsXHjxjjnnHMiIuLCCy+MX/3qVzN/jRdeeCEuuuii2Lx5c5x22mmxcePGOOSQQ5LUBwAAAAAAAADTGvVdwFtpmibWr18fBx10UPz973+Pm2++udd6zj777PjQhz4UEf8JDrz66qszf43DDjss7rrrroiI+MMf/hDf+MY3ktYIAAAAAAAAANMYbFggIuLd7353rFmzJiL+M/r/lVde6bWeD37wgxHxn6kHzz///Fxf4+STT46TTjopIiJ+/OMfJ6sNAAAAAAAAAKY16LBARMSRRx4ZEREvv/xyPPfcc73WkuDGhoj4/9/Tk08+meTrAQAAAAAAAMAsBh8W2Llz5/KvDz744B4ridiyZUtERKxatSqOOOKIub/Of7+nvr8fAAAAAAAAAOo06LDAzp07Y9OmTRERcdxxx8UhhxzSWy0bN25cDgucffbZMRrN93/d5s2blycKnHrqqcnqAwAAAAAAAIBp9RIW2Lp1azzwwAN7/TMvvvhifO5zn4s9e/ZERMQ111zzttVz33337fWKgW3btsXVV1+9/M9f/OIX3/BnHn300Xj88cf3+vfs3Lkzrr322uV/fju/JwAAAAAAAAB4K0vzPLRx48bYtm3b8j/v2rVr+dfbtm2LDRs2vO7Pr1279nX//PTTT8cFF1wQH/7wh+Ozn/1sfPzjH4/Vq1fH0tJSPPPMM/Hwww/HnXfeGc8880xERJxyyinx5S9/+U1r2bZtW2zcuPF1/2737t3L//u/tbRtG6tXr37dv7v00kvjxBNPjMsuuyzOOOOMOOaYY2LVqlXx9NNPx/333x/r1q2Ll156KSIirrjiirjsssveUMeWLVviuuuui7POOisuvvji+MhHPhJHHnlkRPwnJPDggw/G+vXr48UXX4yIiAsvvDCuu+66N/2eAAAAAAAAAODtdMBreztS/xbWrl0bd91119R//n//islkEueff/5Uz37605+O9evXL2+8/68NGzbMtOn+4IMPxnnnnfe6f3fAAQdM9ewNN9wQ3/zmN2PVqlX7VcfatWvj29/+dhx00EFT/XkAAAAAAAAASGmuyQL7a82aNfHQQw/FAw88EBs3boynnnoq/vnPf8bLL78chx56aJxwwglx5plnxlVXXRVr1qx52+v52c9+Fps2bYrf/e538eSTT8auXbvipZdeikMPPTTe9773xTnnnBOf//zn45RTTnnLr3HllVfG0UcfHQ888EA88sgjsXPnznj22Wdjz549ceihh8ZJJ50Ua9asiWuuuSZOO+20t/17AgAAAAAAAIC3MtdkAQAAAAAAAAAgX6O+CwAAAAAAAAAAFktYAAAAAAAAAAAqIywAAAAAAAAAAJURFgAAAAAAAACAyggLAAAAAAAAAEBlhAUAAAAAAAAAoDLCAgAAAAAAAABQGWEBAAAAAAAAAKiMsAAAAAAAAAAAVEZYAAAAAAAAAAAqIywAAAAAAAAAAJURFgAAAAAAAACAyggLAAAAAAAAAEBlhAUAAAAAAAAAoDL/D5PGaMXURZhoAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(8,5))\n", "msno.matrix(dataset, sparkline=False)\n", "plt.title('Distribution of Missing Values', size=20)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 10, "id": "a2d071bb-3390-459b-8624-0f81454098a5", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "0" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking data duplicates\n", "dataset.duplicated().sum()" ] }, { "cell_type": "code", "execution_count": 11, "id": "2102e2a3-edf6-4c08-aa2c-6c8401eea99f", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "87" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking id duplicates\n", "dataset['id'].duplicated().sum()" ] }, { "cell_type": "code", "execution_count": 12, "id": "c77d5092-4a7b-45bb-838d-b966869dcd09", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "278" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking title duplicates\n", "dataset['title'].duplicated().sum()" ] }, { "cell_type": "markdown", "id": "8c202099-e6e8-4312-be98-79d87a9d052e", "metadata": {}, "source": [ "## PREPROCESSING DATA" ] }, { "cell_type": "code", "execution_count": 13, "id": "c155d745-9212-4c54-8988-b5a50d037128", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Dropping 'index', 'type', 'seasons' and 'imdb_id' columns\n", "dataset.drop(['index', 'type', 'seasons', 'imdb_id'], axis=1, inplace=True)" ] }, { "cell_type": "code", "execution_count": 14, "id": "ae627626-53eb-49a8-9b27-ff7b4be2d0d4", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Removing duplicates\n", "dataset = dataset.drop_duplicates(subset=['title'], keep='first').reset_index()" ] }, { "cell_type": "markdown", "id": "8bcf5e01-c7b7-468a-8ed2-03f20758c93c", "metadata": {}, "source": [ "### release_year" ] }, { "cell_type": "code", "execution_count": 15, "id": "f94f7dc7-b6ab-4a52-b055-4308a78f5bbc", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "count 12875.000000\n", "mean 2006.637670\n", "std 23.435384\n", "min 1912.000000\n", "25% 2007.000000\n", "50% 2017.000000\n", "75% 2020.000000\n", "max 2023.000000\n", "Name: release_year, dtype: float64" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# film release year range from 1901 to 2023\n", "dataset['release_year'].describe()" ] }, { "cell_type": "code", "execution_count": 16, "id": "16b71394-165f-4c79-aba8-20e4af210019", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Inspecting release year distribution\n", "plt.figure(figsize=(5,3))\n", "sns.histplot(dataset['release_year'])\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 17, "id": "28c6a584-cf1e-4458-912c-5fa55bd02845", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Regrouping film release year into 2 groups\n", "dataset['release_year'] = dataset['release_year'].apply(lambda x: 0 if x<2015 else 1)" ] }, { "cell_type": "code", "execution_count": 18, "id": "6e15aa62-616d-4b33-b60e-72be319351c4", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Converting release year into dummy variables\n", "dataset = pd.get_dummies(dataset, columns=['release_year'], prefix='year', drop_first=True)" ] }, { "cell_type": "markdown", "id": "ae6352f3-fd10-44b0-b579-82069328d0f9", "metadata": {}, "source": [ "### age_certification" ] }, { "cell_type": "code", "execution_count": 19, "id": "144579a3-dfc0-415c-9bfd-9f7d3cfe8cc2", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "R 1795\n", "PG-13 1090\n", "PG 817\n", "G 370\n", "NC-17 25\n", "Name: age_certification, dtype: int64" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset['age_certification'].value_counts()\n", "# an R rating means that no one under 17 can see this movie unless the parent is with them\n", "# PG-13 means that this movie may not be suitable for kids under 13\n", "# PG means parental guidance. The movie is likely for children, but parents should watch the movie with their children\n", "# A movie that is meant for children will likely be rated as G\n", "# NC-17 as an “adults alone” rating that signifies that no one under the age of 17 can see the film" ] }, { "cell_type": "code", "execution_count": 20, "id": "61912093-0fa2-4346-957f-7b0fdd5373f5", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Replacing null values by NR (not rated)\n", "dataset['age_certification'].fillna('NR', inplace=True)" ] }, { "cell_type": "code", "execution_count": 21, "id": "ee9dbd1e-ec5f-48fc-a473-6a040200f33a", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Encoding age certification\n", "dataset = pd.get_dummies(dataset, columns=['age_certification'], prefix='age', drop_first=True)" ] }, { "cell_type": "markdown", "id": "84f83b2a-d895-4191-b9ac-53e7a8a6c935", "metadata": {}, "source": [ "### runtime" ] }, { "cell_type": "code", "execution_count": 22, "id": "9e978beb-83e8-43e7-b17f-a94478ed2610", "metadata": { "tags": [] }, "outputs": [ { "data": { "image/png": "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n3zyiRwOhxwOh3JyciT5Xr7+6quv5HA49J//+Z+68cYbFRERoWuvvVafffaZCgsLlZycrPPOO08333yzvvvuO596r127Vpdffrn69OmjH/3oR3r++ee7+lABtkYoA0EiNzdXTqdT//d//6d33nmnzZ9btGiRli9frl27dsnpdOree++VdGaC+3nz5unKK69UcXGxiouLfSa9b2rx4sV6/PHH9dFHH8npdOruu+/WggUL9Nxzz+mvf/2r/v73v+vJJ5+0yr/00ktatGiRnnrqKR04cECZmZl64oknlJub2/GDAPRwXL4GgsQll1yiZcuWSTrTem2rp556SmPHjpUkPfbYY7r11lt18uRJRURE6LzzzpPT6WzT5er58+dr8uTJkqRHH31Ud999t7Zs2aLrr79ekjRr1iyrpS1Jv/nNb7R8+XJNmzZN0pm5jD/99FO9+OKLSk1NbXP9gWBCKANBIjk5uUOfu+qqq6yfGyavLy0t1dChQzu8ndjYWElSUlKSz7LS0lJJ0nfffacjR45o1qxZuv/++60yp0+fltvtbv9OAEGCUAaCRFRUlPVzr15n7kw1npn11KlTLX4uLCzM+tnhcEiS6uvr2/37W9pO02UN223470svvaRRo0b5bKd3797t/t1AsCCUgSB0wQUXSDrz6NKIESMkyafTV1uFh4errq7On1WTdKbVfOGFF+rLL7/UzJkz/b59oKcilIEgFBERoeuuu05PP/20hg8frn/+8596/PHH272d4cOH69ChQ9q9e7cGDx6s6OhouVwuv9QxIyNDjzzyiGJiYnTLLbfI6/Vq165dKisrU3p6ul9+B9DT0PsaCFKvvPKKTp06peTkZD366KP67W9/2+5t/OxnP9PNN9+s8ePH64ILLtBrr73mt/rdd999+uMf/6icnBwlJSVp7NixysnJUXx8vN9+B9DTOEzjm04AACBgaCkDAGAThDIAADZBKAMAYBOEMgAANkEoAwBgE4QyAAA2QSgDAGAThDIAADZBKAMAYBOEMgAANkEoAwBgE4QyAAA28f8AFb93oGQK9ssAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize=(5,3))\n", "sns.histplot(dataset['runtime'])\n", "plt.xlim(10, 300)\n", "plt.show()" ] }, { "cell_type": "code", "execution_count": 23, "id": "cd8be29f-930a-4e33-919f-123c30f93b28", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "191" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# How much film shorter than 30 minutes?\n", "len(dataset[dataset['runtime']<30])" ] }, { "cell_type": "code", "execution_count": 24, "id": "b031a61e-e733-4bff-a891-10cf50c4bac5", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Regulate short film duration to 30 minutes for avoiding outliers\n", "dataset['runtime'] = dataset['runtime'].apply(lambda x: 30 if x<30 else x)" ] }, { "cell_type": "markdown", "id": "240bcab4-8784-4968-b2db-57fc0f82f4e8", "metadata": {}, "source": [ "### genre" ] }, { "cell_type": "code", "execution_count": 25, "id": "b10595d3-3f73-42bb-a991-76809d37f4bd", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Cleaning text\n", "dataset['genres'] = dataset['genres'].str.replace('[', '')\n", "dataset['genres'] = dataset['genres'].str.replace(']', '')\n", "dataset['genres'] = dataset['genres'].str.replace(\"'\", \"\")\n", "dataset['genres'] = dataset['genres'].str.replace(' ', '')" ] }, { "cell_type": "code", "execution_count": 26, "id": "09f0d86c-22eb-442e-8d81-4071f8961017", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Getting genres list for each film\n", "dataset['genres']=dataset['genres'].str.split(',')" ] }, { "cell_type": "code", "execution_count": 27, "id": "718e7a33-bdfd-4f37-a0da-4460d8583db6", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Retrieving genres list of all films\n", "genres_list = [j for i in dataset['genres'] for j in i]\n", "genres_set = set(genres_list)\n", "genres_set.discard('')" ] }, { "cell_type": "code", "execution_count": 28, "id": "0d221ff1-ff33-4774-8350-749dbefcdbce", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "19" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking number of all genres\n", "len(genres_set)" ] }, { "cell_type": "code", "execution_count": 29, "id": "59e02576-63ce-4350-9bce-c3e5265f39a9", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Creating new columns corresponding to each genre\n", "\n", "## Building function to get dummies genres\n", "def get_dummies_genres(data):\n", " unique_genres = list(genres_set)\n", " unique_genres.sort()\n", " dummy_matrix = []\n", " for d in data:\n", " row = [int(genre in d) for genre in unique_genres]\n", " dummy_matrix.append(row)\n", " dummies = {}\n", " for i, col_name in enumerate(unique_genres):\n", " col_values = [row[i] for row in dummy_matrix]\n", " dummies[col_name] = col_values\n", " return dummies\n", "\n", "## Getting the genre dummies data\n", "dummies_genres = get_dummies_genres(dataset['genres'])\n", "\n", "## Adding new genre columns to dataset\n", "for key in dummies_genres.keys():\n", " col = 'genre_'+str(key)\n", " dataset[col] = dummies_genres[key]\n", "\n", "## Removing original genres column\n", "dataset.drop(['genres'], axis=1, inplace=True)" ] }, { "cell_type": "markdown", "id": "eabfc81c-0f48-4daf-96f3-afe7fd70f73e", "metadata": {}, "source": [ "### production_countries" ] }, { "cell_type": "code", "execution_count": 30, "id": "7c013c0c-0f91-4052-aafd-1a1525b666ca", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "703" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking number of films with no production country recorded\n", "len(dataset[dataset['production_countries']=='[]'])" ] }, { "cell_type": "code", "execution_count": 31, "id": "faea79c6-3a60-4299-9566-3879994ed22b", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Replacing missing records by most frequent value (US)\n", "dataset['production_countries'].replace(to_replace=\"[]\", value=\"['US']\", inplace=True)" ] }, { "cell_type": "code", "execution_count": 32, "id": "c40d2877-b0c1-4f81-8360-38be9384dbe7", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Cleaning text\n", "dataset['production_countries'] = dataset['production_countries'].str.replace('[', '')\n", "dataset['production_countries'] = dataset['production_countries'].str.replace(']', '')\n", "dataset['production_countries'] = dataset['production_countries'].str.replace(\"'\", \"\")" ] }, { "cell_type": "code", "execution_count": 33, "id": "785a7951-f660-418a-864b-67ed1dac36e2", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Getting countries list for each film\n", "dataset['production_countries']=dataset['production_countries'].str.split(', ')" ] }, { "cell_type": "code", "execution_count": 34, "id": "ae99de7c-680f-453a-920a-bae788d15a88", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Retrieving countries list of all films\n", "countries_list = [j for i in dataset['production_countries'] for j in i]\n", "countries_set = set(countries_list)" ] }, { "cell_type": "code", "execution_count": 35, "id": "4f59f0fb-219c-4109-8379-271756aa3423", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "145" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking number of all countries\n", "len(countries_set)" ] }, { "cell_type": "code", "execution_count": 36, "id": "f85c1721-0090-4501-b4fe-093889a56a99", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Creating new columns corresponding to each country\n", "\n", "## Building function to get dummies countries\n", "def get_dummies_countries(data):\n", " unique_countries = list(countries_set)\n", " unique_countries.sort()\n", " dummy_matrix = []\n", " for d in data:\n", " row = [int(country in d) for country in unique_countries]\n", " dummy_matrix.append(row)\n", " dummies = {}\n", " for i, col_name in enumerate(unique_countries):\n", " col_values = [row[i] for row in dummy_matrix]\n", " dummies[col_name] = col_values\n", " return dummies\n", "\n", "## Getting the genre dummies data\n", "dummies_countries = get_dummies_countries(dataset['production_countries'])\n", "\n", "## Adding new genre columns to dataset\n", "for key in dummies_countries.keys():\n", " col = 'country_'+str(key)\n", " dataset[col] = dummies_countries[key]\n", "\n", "## Removing original genres column\n", "dataset.drop(['production_countries'], axis=1, inplace=True)" ] }, { "cell_type": "markdown", "id": "b7ccf6ed-c8e5-4e90-8786-5e2b143bbf7d", "metadata": {}, "source": [ "### name" ] }, { "cell_type": "code", "execution_count": 37, "id": "477c29e2-3829-4327-8f0d-fe6610daa4f8", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Replacing missing values\n", "dataset['name'].fillna('NoName', inplace=True)" ] }, { "cell_type": "code", "execution_count": 38, "id": "5fdf52d2-f8b7-467d-a552-3c389ceb1466", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Getting actors list for each film\n", "dataset['name']=dataset['name'].str.split(', ')" ] }, { "cell_type": "code", "execution_count": 39, "id": "54ffff42-b3de-42b3-ac93-c4fe1d639b00", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Retrieving actors list of all films\n", "actors_list = [j for i in dataset['name'] for j in i]\n", "actors_set = set(actors_list)" ] }, { "cell_type": "code", "execution_count": 40, "id": "3c7f4e23-1665-4cce-898a-fad84006fbe1", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/plain": [ "111043" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Checking number of all actors\n", "len(actors_set)" ] }, { "cell_type": "code", "execution_count": 41, "id": "af784919-0705-4b5e-8508-972c2be10584", "metadata": { "tags": [] }, "outputs": [], "source": [ "# The actors list is to large, we decide to limit this list into 200 (100 Greatest Actors and 100 Greatest Actresses \n", "# of All Time following IMDB selection\n", "# (reference links: https://www.imdb.com/list/ls050274118/ ; https://www.imdb.com/list/ls000055475/)\n", "greatest_actors = ['Jack Nicholson', 'Marlon Brando', 'Robert De Niro', 'Al Pacino', 'Daniel Day-Lewis', 'Dustin Hoffman', 'Tom Hanks', \n", " 'Anthony Hopkins', 'Paul Newman', 'Denzel Washington', 'Spencer Tracy', 'Laurence Olivier', 'Jack Lemmon', \n", " 'Michael Caine', 'James Stewart', 'Robin Williams', 'Robert Duvall', 'Sean Penn', 'Morgan Freeman', 'Jeff Bridges', \n", " 'Sidney Poitier', 'Peter OToole', 'Clint Eastwood', 'Gene Hackman', 'Charles Chaplin', 'Ben Kingsley', \n", " 'Philip Seymour Hoffman', 'Leonardo DiCaprio', 'Russell Crowe', 'Kevin Spacey', 'Humphrey Bogart', 'Gregory Peck', \n", " 'Clark Gable', 'Gary Cooper', 'George C. Scott', 'Jason Robards', 'Charles Laughton', 'Anthony Quinn', 'Peter Sellers', \n", " 'James Cagney', 'Peter Finch', 'Henry Fonda', 'Cary Grant', 'Richard Burton', 'Burt Lancaster', 'William Holden', \n", " 'John Wayne', 'Kirk Douglas', 'Alec Guinness', 'Christopher Plummer', 'Tommy Lee Jones', 'Sean Connery', 'Alan Arkin', \n", " 'Christopher Walken', 'Joe Pesci', 'Ian McKellen', 'Michael Douglas', 'Jon Voight', 'Albert Finney', 'Geoffrey Rush', \n", " 'Jeremy Irons', 'Javier Bardem', 'Heath Ledger', 'Christoph Waltz', 'Ralph Fiennes', 'Johnny Depp', 'Benicio Del Toro', \n", " 'Jamie Foxx', 'Joaquin Phoenix', 'Colin Firth', 'Matthew McConaughey', 'Christian Bale', 'Gary Oldman', 'Edward Norton', \n", " 'Brad Pitt', 'Tom Cruise', 'Matt Damon', 'Hugh Jackman', 'Robert Downey Jr.', 'Liam Neeson', 'Mel Gibson', 'Harrison Ford',\n", " 'Woody Allen', 'Steve McQueen', 'Orson Welles', 'Robert Redford', 'James Dean', 'Charlton Heston', 'Gene Kelly', \n", " 'Robert Mitchum', 'Bill Murray', 'Samuel L. Jackson', 'Jim Carrey', 'Don Cheadle', 'Martin Sheen', 'Alan Rickman', \n", " 'Edward G. Robinson', 'Will Smith', 'John Goodman', 'Buster Keaton', 'Meryl Streep', 'Ingrid Bergman', 'Vivien Leigh', \n", " 'Bette Davis', 'Jodie Foster', 'Katharine Hepburn', 'Elizabeth Taylor', 'Kate Winslet', 'Hilary Swank', 'Naomi Watts', \n", " 'Shirley MacLaine', 'Natalie Portman', 'Jennifer Connelly', 'Susan Sarandon', 'Charlize Theron', 'Cate Blanchett', \n", " 'Rachel Weisz', 'Diane Lane', 'Sharon Stone', 'Scarlett Johansson', 'Juliette Lewis', 'Gwyneth Paltrow', 'Helen Mirren', \n", " 'Judi Dench', 'Monica Bellucci', 'Angelina Jolie', 'Nicole Kidman', 'Anjelica Huston', 'Romy Schneider', 'Ashley Judd', \n", " 'Grace Kelly', 'Patricia Clarkson', 'Simone Signoret', 'Isabelle Adjani', 'Marion Cotillard', 'Sigourney Weaver', \n", " 'Jane Fonda', 'Helen Hunt', 'Frances McDormand', 'Jessica Lange', 'Catherine Deneuve', 'Barbara Stanwyck', 'Holly Hunter', \n", " 'Kathy Bates', 'Sissy Spacek', 'Sally Field', 'Diane Keaton', 'Faye Dunaway', 'Penélope Cruz', 'Laura Dern', 'Sophia Loren', \n", " 'Ellen Burstyn', 'Julie Christie', 'Olivia de Havilland', 'Greer Garson', 'Helena Bonham Carter', 'Geena Davis', \n", " 'Audrey Tautou', 'Rachel McAdams', 'Tilda Swinton', 'Elisabeth Shue', 'Maggie Gyllenhaal', 'Maria Bello', 'Franka Potente', \n", " 'Kristin Scott Thomas', 'Barbra Streisand', 'Juliette Binoche', 'Kathleen Turner', 'Lauren Bacall', 'Ellen Barkin', \n", " 'Shelley Winters', 'Vanessa Redgrave', 'Audrey Hepburn', 'Greta Garbo', 'Glenn Close', 'Catherine Zeta-Jones', \n", " 'Emmanuelle Béart', 'Marisa Tomei', 'Geraldine Chaplin', 'Jennifer Jason Leigh', 'Birgit Minichmayr', 'Deborah Kerr', \n", " 'Julianne Moore', 'Emmanuelle Seigner', 'Isabelle Huppert', 'Brittany Murphy', 'Uma Thurman', 'Michelle Pfeiffer', \n", " 'Evan Rachel Wood', 'Toni Collette', 'Whoopi Goldberg', 'Charlotte Rampling', 'Demi Moore', 'Sibel Kekilli', 'Rita Hayworth', \n", " 'Amanda Seyfried', 'Sophie Marceau', 'Victoria Abril', 'Giulietta Masina', 'Doris Day']" ] }, { "cell_type": "code", "execution_count": 42, "id": "eee6e04f-e821-46a2-b553-d4af0a1fb76e", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Creating new columns corresponding to each actor\n", "\n", "## Building function to get dummies actors\n", "def get_dummies_actors(data):\n", " greatest_actors.sort()\n", " dummy_matrix = []\n", " for d in data:\n", " row = [int(actor in d) for actor in greatest_actors]\n", " dummy_matrix.append(row)\n", " dummies = {}\n", " for i, col_name in enumerate(greatest_actors):\n", " col_values = [row[i] for row in dummy_matrix]\n", " dummies[col_name] = col_values\n", " return dummies\n", "\n", "## Getting the actors dummies matrix\n", "dummies_actors = get_dummies_actors(dataset['name'])\n", "\n", "## Adding new columns corresponding to actor in the list\n", "for actor in dummies_actors.keys():\n", " col = 'actor_'+str(actor)\n", " dataset[col] = dummies_actors[actor]\n", "\n", "## Removing original genres column\n", "dataset.drop(['name'], axis=1, inplace=True)" ] }, { "cell_type": "markdown", "id": "c61e2123-9a71-46af-bb06-2cdaf75ec7cb", "metadata": {}, "source": [ "### imdb_score, imdb_votes, tmdb_popularity, tmdb_score" ] }, { "cell_type": "code", "execution_count": 43, "id": "615dc07e-da4c-4abd-94c0-510856d3e120", "metadata": { "tags": [] }, "outputs": [], "source": [ "# processing missing values\n", "\n", "## imdb_votes, tmdb_popularity: replace missing values using column's mean\n", "dataset['imdb_votes'].fillna(int(dataset['imdb_votes'].mean()), inplace=True)\n", "dataset['tmdb_popularity'].fillna(dataset['tmdb_popularity'].mean(), inplace=True)\n", "\n", "# imdb_score, tmdb_score: fill missing values using KNN Imputation\n", "imputer = KNNImputer(n_neighbors=10, weights='distance', metric='nan_euclidean')\n", "\n", "dataset['imdb_score'] = imputer.fit_transform(np.array(dataset['imdb_score']).reshape(-1, 1))\n", "dataset['imdb_score'] = dataset['imdb_score'].apply(lambda x: round(x, 1))\n", "\n", "dataset['tmdb_score'] = imputer.fit_transform(np.array(dataset['tmdb_score']).reshape(-1, 1))\n", "dataset['tmdb_score'] = dataset['tmdb_score'].apply(lambda x: round(x, 1))" ] }, { "cell_type": "markdown", "id": "a1adf6e6-8272-4a80-aea4-b88a92f50884", "metadata": {}, "source": [ "### Rescaling data" ] }, { "cell_type": "code", "execution_count": 44, "id": "4f3d31d5-fbd4-4376-85a1-d2ac6c62b81d", "metadata": { "tags": [] }, "outputs": [], "source": [ "scaler = MinMaxScaler()\n", "dataset['runtime'] = scaler.fit_transform(np.array(dataset['runtime']).reshape(-1, 1))\n", "dataset['imdb_score'] = scaler.fit_transform(np.array(dataset['imdb_score']).reshape(-1, 1))\n", "dataset['imdb_votes'] = scaler.fit_transform(np.array(dataset['imdb_votes']).reshape(-1, 1))\n", "dataset['tmdb_score'] = scaler.fit_transform(np.array(dataset['tmdb_score']).reshape(-1, 1))\n", "dataset['tmdb_popularity'] = scaler.fit_transform(np.array(dataset['tmdb_popularity']).reshape(-1, 1))" ] }, { "cell_type": "markdown", "id": "0d055f08-f94b-4360-9f7a-a7b9a8abae43", "metadata": {}, "source": [ "### description" ] }, { "cell_type": "code", "execution_count": 45, "id": "5db57c76-0fda-4bb3-842c-12eb136f2a32", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Removing cell with description missing values\n", "dataset.dropna(axis=0, inplace=True)" ] }, { "cell_type": "markdown", "id": "ad03ecad-4a32-4970-bafa-34e1430cd523", "metadata": {}, "source": [ "## MODELLING" ] }, { "cell_type": "code", "execution_count": 47, "id": "2fec25e4-3952-4914-aaf0-7c03df50b670", "metadata": {}, "outputs": [], "source": [ "# We will caculate movies similarities based on 1.movies characteristic features and 2.movies description " ] }, { "cell_type": "code", "execution_count": 46, "id": "3d90d259-92a1-4e27-8a3d-ebb9aaa1ce6e", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Retrieving data for models building\n", "data_text = dataset.loc[:, ('title', 'description')]\n", "data_characteristics = dataset.drop(['index', 'id', 'description'], axis=1)" ] }, { "cell_type": "markdown", "id": "47378e6b-8a4a-497f-bfbe-96aef36d73c1", "metadata": {}, "source": [ "### Calculating movies similarity basing on movies characteristics" ] }, { "cell_type": "code", "execution_count": 47, "id": "e06fe451-6c1e-4d3a-99d5-bc142146b33c", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Creating movies dictionnary\n", "movies_dict = data_characteristics.set_index('title').T.to_dict('list')\n", "# Building movies characteristics matrix\n", "movie_matrix = np.array(list(movies_dict.values()))\n", "# Building movies similarity matrix\n", "similarity_matrix_char = cosine_similarity(movie_matrix)" ] }, { "cell_type": "markdown", "id": "a6d70718-7fc3-459d-b9f5-a6211330674b", "metadata": {}, "source": [ "### Calculating movies similarity basing on movies description" ] }, { "cell_type": "code", "execution_count": null, "id": "b16c2c26-762f-4e29-ab7c-73b3ec35261b", "metadata": {}, "outputs": [], "source": [ "# Here we will implement AutoEncoders model to capture text similarity" ] }, { "cell_type": "code", "execution_count": 48, "id": "0009e687-736e-42eb-bba5-a63d3878bcf4", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Set model parameters\n", "max_words = 1000\n", "latent_dim = 100\n", "#sequence_length = 10\n", "batch_size = 6\n", "epochs = 20" ] }, { "cell_type": "code", "execution_count": 49, "id": "ceb8c0b1-6c71-4cb3-9766-597a4e5c7518", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Create tokenizer for converting text\n", "tokenizer = Tokenizer(num_words=max_words)\n", "tokenizer.fit_on_texts(list(data_text['description']))\n", "sequences = tokenizer.texts_to_sequences(list(data_text['description']))" ] }, { "cell_type": "code", "execution_count": 50, "id": "64a48dce-ab2b-4cab-8560-893cb8007771", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Convert text sequences into one-hot vectors\n", "input_data = tokenizer.sequences_to_matrix(sequences, mode='binary') # use binary mode since data values are all 0 or 1" ] }, { "cell_type": "code", "execution_count": 51, "id": "5ebbae96-396a-45bf-a32c-8dfd1b50ea62", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Create model architecture\n", "input_dim = input_data.shape[1]\n", "\n", "# Encoder\n", "inputs = Input(shape=(input_dim,))\n", "encoded = Dense(256, activation='relu')(inputs)\n", "encoded = Dense(128, activation='relu')(encoded)\n", "encoded = Dense(latent_dim, activation='relu')(encoded)\n", "\n", "# Define Encoder model\n", "encoder = Model(inputs, encoded)\n", "\n", "# Decoder\n", "decoded = Dense(128, activation='relu')(encoded)\n", "decoded = Dense(256, activation='relu')(decoded)\n", "decoded = Dense(input_dim, activation='sigmoid')(decoded)\n", "\n", "# Define AutoEncoder model\n", "autoencoder = Model(inputs, decoded)" ] }, { "cell_type": "code", "execution_count": 52, "id": "cccc32bf-9b11-4819-bb61-413fb38ed414", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model: \"model_1\"\n", "_________________________________________________________________\n", " Layer (type) Output Shape Param # \n", "=================================================================\n", " input_1 (InputLayer) [(None, 1000)] 0 \n", " \n", " dense (Dense) (None, 256) 256256 \n", " \n", " dense_1 (Dense) (None, 128) 32896 \n", " \n", " dense_2 (Dense) (None, 100) 12900 \n", " \n", " dense_3 (Dense) (None, 128) 12928 \n", " \n", " dense_4 (Dense) (None, 256) 33024 \n", " \n", " dense_5 (Dense) (None, 1000) 257000 \n", " \n", "=================================================================\n", "Total params: 605,004\n", "Trainable params: 605,004\n", "Non-trainable params: 0\n", "_________________________________________________________________\n" ] } ], "source": [ "# Get model summary\n", "autoencoder.summary()" ] }, { "cell_type": "code", "execution_count": 53, "id": "999d1c3c-8af9-4551-bbeb-ada875f5f2fb", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Epoch 1/20\n", "2126/2126 [==============================] - 26s 10ms/step - loss: 0.0849\n", "Epoch 2/20\n", "2126/2126 [==============================] - 19s 9ms/step - loss: 0.0690\n", "Epoch 3/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0627\n", "Epoch 4/20\n", "2126/2126 [==============================] - 18s 9ms/step - loss: 0.0590\n", "Epoch 5/20\n", "2126/2126 [==============================] - 18s 9ms/step - loss: 0.0563\n", "Epoch 6/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0542\n", "Epoch 7/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0523\n", "Epoch 8/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0507\n", "Epoch 9/20\n", "2126/2126 [==============================] - 18s 9ms/step - loss: 0.0494\n", "Epoch 10/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0481\n", "Epoch 11/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0471\n", "Epoch 12/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0460\n", "Epoch 13/20\n", "2126/2126 [==============================] - 19s 9ms/step - loss: 0.0451\n", "Epoch 14/20\n", "2126/2126 [==============================] - 18s 8ms/step - loss: 0.0443\n", "Epoch 15/20\n", "2126/2126 [==============================] - 19s 9ms/step - loss: 0.0436\n", "Epoch 16/20\n", "2126/2126 [==============================] - 19s 9ms/step - loss: 0.0429\n", "Epoch 17/20\n", "2126/2126 [==============================] - 18s 9ms/step - loss: 0.0422\n", "Epoch 18/20\n", "2126/2126 [==============================] - 18s 9ms/step - loss: 0.0416\n", "Epoch 19/20\n", "2126/2126 [==============================] - 20s 9ms/step - loss: 0.0411\n", "Epoch 20/20\n", "2126/2126 [==============================] - 20s 9ms/step - loss: 0.0406\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Train model\n", "autoencoder.compile(optimizer='adam', loss='binary_crossentropy')\n", "autoencoder.fit(input_data, input_data, epochs=epochs, batch_size=batch_size)" ] }, { "cell_type": "code", "execution_count": 54, "id": "7dc181ed-281c-41ad-ba30-1935a9768d3d", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "399/399 [==============================] - 3s 7ms/step\n" ] } ], "source": [ "# Recuperate encoded version of input data\n", "encoded_texts = encoder.predict(input_data) " ] }, { "cell_type": "code", "execution_count": 55, "id": "bd4f41f4-97dc-4d1a-bc3a-fbe4edc08d31", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Recuperate similarity matrix\n", "similarity_matrix_ae = cosine_similarity(encoded_texts)" ] }, { "cell_type": "markdown", "id": "2b7b0d89-9e17-44a5-ae5d-f27394d75803", "metadata": {}, "source": [ "### Generate final similarity matrix" ] }, { "cell_type": "code", "execution_count": 56, "id": "44b7766a-dd5a-4bfb-b29d-e8b898a92765", "metadata": { "tags": [] }, "outputs": [], "source": [ "# Generate similarity matrix\n", "similarity_matrix = (np.array(similarity_matrix_char) + np.array(similarity_matrix_ae))/2\n", "# Create similarity dataframe\n", "movies_list = [movie for movie in dataset['title']]\n", "similarity_frame = pd.DataFrame(data=similarity_matrix, index=movies_list, columns=movies_list)" ] }, { "cell_type": "code", "execution_count": 57, "id": "0d87e15b-8786-4764-a229-40ece3ed8967", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Raw dump duration: 3.323s\n" ] } ], "source": [ "pickle_file = 'pickle_frame.joblib'\n", "start = time.time()\n", "with open(pickle_file, 'wb') as f:\n", " dump(similarity_frame, f)\n", "raw_dump_duration = time.time() - start\n", "print(\"Raw dump duration: %0.3fs\" % raw_dump_duration)" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.9" } }, "nbformat": 4, "nbformat_minor": 5 }