Skip to content

Instantly share code, notes, and snippets.

@guilhermebene
Last active May 7, 2021 13:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save guilhermebene/7ceeae528ef003b8a2c5901da6ee9c99 to your computer and use it in GitHub Desktop.
Save guilhermebene/7ceeae528ef003b8a2c5901da6ee9c99 to your computer and use it in GitHub Desktop.
Content-based Filtering
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Content-based Filtering",
"provenance": [],
"collapsed_sections": [],
"authorship_tag": "ABX9TyM2PvcUxBHqBR0Kgg6logiI",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/guilhermebene/7ceeae528ef003b8a2c5901da6ee9c99/content-based-filtering.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "code",
"metadata": {
"id": "klZyzzbOEW_a",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 469
},
"outputId": "64055770-e634-41d8-847c-56b7e9b73503"
},
"source": [
"!pip install sklearn\n",
"!pip install matplotlib\n",
"!pip install ml_metrics"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Requirement already satisfied: sklearn in /usr/local/lib/python3.6/dist-packages (0.0)\n",
"Requirement already satisfied: scikit-learn in /usr/local/lib/python3.6/dist-packages (from sklearn) (0.22.2.post1)\n",
"Requirement already satisfied: scipy>=0.17.0 in /usr/local/lib/python3.6/dist-packages (from scikit-learn->sklearn) (1.4.1)\n",
"Requirement already satisfied: numpy>=1.11.0 in /usr/local/lib/python3.6/dist-packages (from scikit-learn->sklearn) (1.18.5)\n",
"Requirement already satisfied: joblib>=0.11 in /usr/local/lib/python3.6/dist-packages (from scikit-learn->sklearn) (0.16.0)\n",
"Requirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (3.2.2)\n",
"Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (1.2.0)\n",
"Requirement already satisfied: pyparsing!=2.0.4,!=2.1.2,!=2.1.6,>=2.0.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (2.4.7)\n",
"Requirement already satisfied: numpy>=1.11 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (1.18.5)\n",
"Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (0.10.0)\n",
"Requirement already satisfied: python-dateutil>=2.1 in /usr/local/lib/python3.6/dist-packages (from matplotlib) (2.8.1)\n",
"Requirement already satisfied: six in /usr/local/lib/python3.6/dist-packages (from cycler>=0.10->matplotlib) (1.12.0)\n",
"Collecting ml_metrics\n",
" Downloading https://files.pythonhosted.org/packages/c1/e7/c31a2dd37045a0c904bee31c2dbed903d4f125a6ce980b91bae0c961abb8/ml_metrics-0.1.4.tar.gz\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from ml_metrics) (1.18.5)\n",
"Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (from ml_metrics) (1.0.5)\n",
"Requirement already satisfied: python-dateutil>=2.6.1 in /usr/local/lib/python3.6/dist-packages (from pandas->ml_metrics) (2.8.1)\n",
"Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.6/dist-packages (from pandas->ml_metrics) (2018.9)\n",
"Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil>=2.6.1->pandas->ml_metrics) (1.12.0)\n",
"Building wheels for collected packages: ml-metrics\n",
" Building wheel for ml-metrics (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
" Created wheel for ml-metrics: filename=ml_metrics-0.1.4-cp36-none-any.whl size=7850 sha256=d6d404fb7cc21699de988380978695f01e91ecc323a7d536aaecd4c6d94805b5\n",
" Stored in directory: /root/.cache/pip/wheels/b3/61/2d/776be7b8a4f14c5db48c8e5451451cabc58dc6aa7ee3801163\n",
"Successfully built ml-metrics\n",
"Installing collected packages: ml-metrics\n",
"Successfully installed ml-metrics-0.1.4\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "NFp0Fo4B5oTC",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 124
},
"outputId": "6dd4f7a1-ee7f-4f6f-fd48-fcfa0a50607e"
},
"source": [
"from google.colab import drive\n",
"drive.mount('/gdrive/',force_remount=True)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Go to this URL in a browser: https://accounts.google.com/o/oauth2/auth?client_id=947318989803-6bn6qk8qdgf4n4g3pfee6491hc0brc4i.apps.googleusercontent.com&redirect_uri=urn%3aietf%3awg%3aoauth%3a2.0%3aoob&response_type=code&scope=email%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdocs.test%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive%20https%3a%2f%2fwww.googleapis.com%2fauth%2fdrive.photos.readonly%20https%3a%2f%2fwww.googleapis.com%2fauth%2fpeopleapi.readonly\n",
"\n",
"Enter your authorization code:\n",
"··········\n",
"Mounted at /gdrive/\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "LOtNnikUEhMd",
"colab_type": "code",
"colab": {}
},
"source": [
"import os\n",
"os.chdir(\"/gdrive/My Drive/BIOMED/Content-Based Filtering/Code\")\n",
"\n",
"from sklearn.model_selection import train_test_split\n",
"from sklearn.datasets import make_classification\n",
"from sklearn.metrics import confusion_matrix\n",
"import numpy as np\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from sklearn.naive_bayes import BernoulliNB, MultinomialNB\n",
"from sklearn.model_selection import train_test_split\n",
"from random import randint\n",
"import ml_metrics\n",
"%matplotlib inline"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "markdown",
"metadata": {
"id": "ioRkUIyR0a2q",
"colab_type": "text"
},
"source": [
"# Dealing with the data"
]
},
{
"cell_type": "code",
"metadata": {
"id": "qBLwekj8-b4R",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 459
},
"outputId": "173bc4ca-d93d-4ec3-f8f5-d17ae6ac3d58"
},
"source": [
"%%time\n",
"movies = pd.read_csv('movies.csv')\n",
"\n",
"# Removing no-genre movies\n",
"movies.drop(movies[movies['genres'].str.contains(\"no genres\")].index,inplace=True)\n",
"\n",
"genres = ['Action','Adventure','Animation','Children','Comedy','Crime','Documentary','Drama','Fantasy','Film-Noir','Horror','Musical','Mystery','Romance','Sci-Fi','Thriller','War','Western','IMAX']\n",
"frequency = []\n",
"for genre in genres:\n",
" genre_occurance = []\n",
" for index, row in movies.iterrows():\n",
" if genre in row['genres']:\n",
" genre_occurance.append(True)\n",
" else:\n",
" genre_occurance.append(False)\n",
"\n",
" movies[genre] = np.asarray(genre_occurance,dtype=np.int32)\n",
" frequency.append(np.sum(genre_occurance))\n",
" \n",
"# Removing the genres column\n",
"movies.drop('genres',inplace=True,axis=1)\n",
"display(movies)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>movieId</th>\n",
" <th>title</th>\n",
" <th>Action</th>\n",
" <th>Adventure</th>\n",
" <th>Animation</th>\n",
" <th>Children</th>\n",
" <th>Comedy</th>\n",
" <th>Crime</th>\n",
" <th>Documentary</th>\n",
" <th>Drama</th>\n",
" <th>Fantasy</th>\n",
" <th>Film-Noir</th>\n",
" <th>Horror</th>\n",
" <th>Musical</th>\n",
" <th>Mystery</th>\n",
" <th>Romance</th>\n",
" <th>Sci-Fi</th>\n",
" <th>Thriller</th>\n",
" <th>War</th>\n",
" <th>Western</th>\n",
" <th>IMAX</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>Toy Story (1995)</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>Jumanji (1995)</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>Grumpier Old Men (1995)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>Waiting to Exhale (1995)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>Father of the Bride Part II (1995)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9737</th>\n",
" <td>193581</td>\n",
" <td>Black Butler: Book of the Atlantic (2017)</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9738</th>\n",
" <td>193583</td>\n",
" <td>No Game No Life: Zero (2017)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9739</th>\n",
" <td>193585</td>\n",
" <td>Flint (2017)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9740</th>\n",
" <td>193587</td>\n",
" <td>Bungo Stray Dogs: Dead Apple (2018)</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9741</th>\n",
" <td>193609</td>\n",
" <td>Andrew Dice Clay: Dice Rules (1991)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>9708 rows × 21 columns</p>\n",
"</div>"
],
"text/plain": [
" movieId title ... Western IMAX\n",
"0 1 Toy Story (1995) ... 0 0\n",
"1 2 Jumanji (1995) ... 0 0\n",
"2 3 Grumpier Old Men (1995) ... 0 0\n",
"3 4 Waiting to Exhale (1995) ... 0 0\n",
"4 5 Father of the Bride Part II (1995) ... 0 0\n",
"... ... ... ... ... ...\n",
"9737 193581 Black Butler: Book of the Atlantic (2017) ... 0 0\n",
"9738 193583 No Game No Life: Zero (2017) ... 0 0\n",
"9739 193585 Flint (2017) ... 0 0\n",
"9740 193587 Bungo Stray Dogs: Dead Apple (2018) ... 0 0\n",
"9741 193609 Andrew Dice Clay: Dice Rules (1991) ... 0 0\n",
"\n",
"[9708 rows x 21 columns]"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"CPU times: user 16.7 s, sys: 11.5 ms, total: 16.7 s\n",
"Wall time: 16.8 s\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "hONvsBw52UQf",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "66c465c6-ccf2-4e13-bbdc-168ff8a65935"
},
"source": [
"data_overview = pd.DataFrame(data=list(zip(genres,frequency)),columns=['Genres','No. of occurences']).sort_values('No. of occurences',ascending=False)\n",
"display(data_overview)\n",
"\n",
"fig = plt.figure(1, figsize=(18,13))\n",
"ax2 = fig.add_subplot(2,1,2)\n",
"plt.xticks(rotation=85, fontsize = 15)\n",
"plt.yticks(fontsize = 15)\n",
"plt.ylabel(\"No. of occurences\", fontsize = 24, labelpad = 0)\n",
"ax2.bar(data_overview['Genres'].tolist(), data_overview['No. of occurences'].tolist(), align = 'center', color='r')\n",
"plt.title(\"Popularity of Genres\",bbox={'facecolor':'k', 'pad':5},color='w',fontsize = 30)\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Genres</th>\n",
" <th>No. of occurences</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>Drama</td>\n",
" <td>4361</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Comedy</td>\n",
" <td>3756</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>Thriller</td>\n",
" <td>1894</td>\n",
" </tr>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Action</td>\n",
" <td>1828</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>Romance</td>\n",
" <td>1596</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Adventure</td>\n",
" <td>1263</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>Crime</td>\n",
" <td>1199</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>Sci-Fi</td>\n",
" <td>980</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Horror</td>\n",
" <td>978</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>Fantasy</td>\n",
" <td>779</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Children</td>\n",
" <td>664</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Animation</td>\n",
" <td>611</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>Mystery</td>\n",
" <td>573</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>Documentary</td>\n",
" <td>440</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>War</td>\n",
" <td>382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>Musical</td>\n",
" <td>334</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>Western</td>\n",
" <td>167</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>IMAX</td>\n",
" <td>158</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>Film-Noir</td>\n",
" <td>87</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Genres No. of occurences\n",
"7 Drama 4361\n",
"4 Comedy 3756\n",
"15 Thriller 1894\n",
"0 Action 1828\n",
"13 Romance 1596\n",
"1 Adventure 1263\n",
"5 Crime 1199\n",
"14 Sci-Fi 980\n",
"10 Horror 978\n",
"8 Fantasy 779\n",
"3 Children 664\n",
"2 Animation 611\n",
"12 Mystery 573\n",
"6 Documentary 440\n",
"16 War 382\n",
"11 Musical 334\n",
"17 Western 167\n",
"18 IMAX 158\n",
"9 Film-Noir 87"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABD8AAAHaCAYAAAAHeOLYAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOzdeZyd89n48c+VlUgi08j2kEjsS5RWEIokVfEkT0tRlMdWW/36lLaWoltotQ+llqeopbYqYoldlZDYak20CEGRSAUREZLIKvn+/jhnTk8mM2fOPXPGTI7P+/X6vuac+77u733dkzNhrnyXSCkhSZIkSZJUrTq0dgKSJNWKiPeAPq2dhyS1sFkppb6tnYQkfZ6EIz8kSW1FRPgfJUmfCymlaO0cJOnzpF1rJyBJkiRJktSSLH5IkiRJkqSqZvFDkiRJkiRVNYsfkiRJkiSpqln8kCSpilx99dWklEgpsf7667d2OisZNmxYIbcxY8a0djqtrqamhjPPPJPnnnuOefPmsXz5clJKzJ07t7VTkySp6rjVrSRptVFqh7L58+cza9YsnnvuOW677TbGjRvHp59++hlmp0r4wQ9+QI8ePfjoo4+48MILWzudFtO7d2+eeuopBg0a1CL99+/fn7333psRI0awxRZb0LNnT7p3786CBQuYM2cOU6ZM4dlnn+X2229n6tSpLZKDJElticUPSVJV6NatG926dWOjjTZi//3354UXXuBb3/oW//znP1s7NWXwwx/+kIEDBzJ9+vSqLn789Kc/LRQ+Hn/8cf785z8za9YsUkosW7asyf327t2b3/zmNxxyyCF06tRplfM1NTXU1NSw0UYb8c1vfpNf//rXPPvss5xxxhnce++9Tb6vJEltncUPSdJq6Zvf/OZK72tqathpp5347//+b7p06cIXv/hFxo8fz5e+9CWnEbQRjzzyCBHR2mm0CaNHjwbgww8/ZOTIkSxatKjZfQ4ZMoTbbruN/v37A7BixQqefvppHn74YaZNm8bcuXPp2rUrffr0YYcddmDYsGF84QtfYLvttuOee+6hR48efPzxx83OQ5KktsjihyRptXTnnXeucuyaa67hggsu4OGHH6ZXr16sv/76nHLKKZx66qmtkKHUsNoCxauvvlqRwseGG27I+PHj6dGjBwCPPvooxx9/PM8//3yD13Ts2JEDDzyQH//4x2y55ZbNzkGSpLbMBU8lSVXl5Zdf5ic/+Unh/be+9a1WzEaqX+fOnQFYsmRJs/tq164d48aNKxQ+br31VnbbbbeShQ+AZcuW8ac//YltttmGM844g+XLlzc7F0mS2iqLH5KkqlO8dsGGG27ImmuuuUrMZpttxgUXXMCLL77IRx99xMKFC5k+fTo33XTTKlNq6jNt2jRSSkybNg2ALl26cPLJJ/Pss88yZ84cFixYwIsvvsiZZ55JTU1Nyb5qd0CZOHFio/fNEtuQbt26cdBBB/HHP/6R5557jrlz57J06VLmzJnD5MmTOffcc9lggw0a7afu96Bz584cd9xxPPbYY7z33nssX758pTxL7fZS29fAgQMBGDhwYCG2uB122GEAPPnkk6SUWLJkCb1792401969e7NkyRJSSjz11FPlfqvqteaaa/LDH/6QCRMm8O6777J48WJmzZrFY489xqmnnkr37t3rvW7MmDGF56g1fPjwVZ5x2LBhmfI54IAD2HrrrQGYPn063/nOdzIt9vvpp59y+umns2DBgpJxHTt25IgjjuDOO+9kxowZLFq0iLlz5/L8889z7rnnNrq7UH07EY0cOZLbb7+df/3rXyxevJiZM2dy8803s/3222fua++99+bOO+/krbfeKvxZ12fo0KFccsklvPTSS8ydO5dFixbx1ltvMXbs2MJ0pFLatWvHwQcfzF133VX4PixcuJAZM2YwefJkrrvuOg499FC6dOnSaF+SpM9Qff9jYbPZbDZbazQglWrFSsV16NBhpdh+/fqtdP70009Py5YtS6VMmDAh1dTUNHiPadOmpZRSmjZtWhowYEB66aWXGuzr3XffTdtuu22jzzVx4sSSz1VO7NVXX12IWX/99Vc537Fjx7Ro0aKSz55SSkuXLk3f+973SuZS/D0YOHBgevHFF1fppzjPYcOGFY6PGTOm3r4ac9hhhyUgHX744YVjJ598cqPftx//+MeF+COOOKLR+IbaDjvskN5+++2SOc6ePTvtvvvuq1w7ZsyYsp5x2LBhmXJ6+umnC9ced9xxTX62Um3bbbdNb7zxRsm8Fy9enI455pgG+yj+bA4aNChdfPHFDfb16aeflvxzKu5rk002SePGjau3n+JrunTpkm688cZGv/9333136tq1a7337dmz50rf71L22muvxn6WW/3vXJvNZvs8Ndf8kCRVnV69eq30ft68eYXXv/nNbzjttNOA3L94jx07lgkTJrBo0SK22morjjjiCPr27cuIESOYOHEiO+ywQ8mpCR07duSWW25hiy224KmnnuLGG2/kvffeY/311+ewww5jyy23pG/fvjzwwANss802/Otf/2qZhy5Tu3btWGONNZg5cybjx4/nhRdeYNasWaxYsYL+/fuz0047seeee9KxY0cuvvhi3nnnHe64446SfXbu3JnbbruNwYMH89hjjzFu3DjeeecdevXqRZ8+fcrK65hjjqFLly5cfvnl9O7dm/fff59jjjlmlbjnnnsOgLFjx3LeeedRU1PDUUcdxTnnnFOy/6OOOgrIfRbGjh1bVk51bbPNNkyYMKHwL/rPPfccN9xwAzNmzKBv377sv//+7Lzzzqyzzjrcc889jBw5kkceeaRw/dixY/nHP/4BUPieTpkyhZ/97Gcr3WfKlCll59SjRw+23XZbILfA6fXXX9+kZytl6NChPPjgg6y11lqsWLGC+++/nwceeICZM2ey5pprsuOOO3LIIYew1lprcdlll7FkyRKuvfbakn2eeeaZHHTQQbz66qv86U9/4vXXX6dbt27ss88+jB49mvbt23PJJZfwt7/9jVdffbVkX+effz6jR4/m9ddf57rrruPVV1+lS5cuK42g6dSpEw8++CA77rgjAK+//jo33XQTU6dOZdmyZWy00UYceuihbLrppnz961/njjvuYPfddyeltNK9rrjiisKolH/+85/ceOONvPbaayxatIju3buz6aabsuuuu7LDDjs05VstSWpJrV19sdlsNputtlHmqIeUC26wHXXUUYW4N998s3B86NChafny5SmllObPn5922WWXVa6tqalJzzzzTOH63/72tyVHPdQ666yzVonp0KFD+vOf/1yIueuuu0o+12cx8qNdu3Zpjz32KHmPrbbaKr3zzjsppZRef/31FBFlfQ9++MMfluy31MiPun1Omzat0e/FhRdeWOiv1GiJ4cOHF+IuvfTSskY61G0RsdLIlvPPP7/e78vPfvazQsxbb72VOnfu3Ow/81Jt1KhRhb5eeeWVZvVVX+vatWt66623Ukopffjhh2nXXXetN27DDTdM06dPL/xs9ezZs+RnM6WUrrnmmtS+fftV4i644IJCzMUXX9zo5zyllG66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J2ls3Ze2rHj9kHXXXbdi/S5YsID777+fMWPGMGLECPr161dY/Lhdu3acd955tGvn/2pLUlvh38iSpM+F559/nsWLFwMwfPhwOnQoPfixeLeK2pEEDfnqV79a8vyIESMKr5999tlVztdOPWhsPZDmLp7Zp0+fwus33nijZOwee+zRrHs1Ve10iKyjXC677DIgN8XkwAMP5MADDyyMvmjuqA/492egXbt2fO1rXysZu9NOOxWmyTT22amE4mlMJ5xwQtmjUxozZ84cXnrpJQCGDh1acvpXW/bII48UXje2C01zfPjhh5x44omFn/E+ffqUVWiVJH02LH5Ikj4Xli5dyr333gtAr169Sg7hX2+99TjwwAOB3JSFxubu/+hHP2rwXKdOnfje975XeH/77bevEvPyyy8DuYUZBw0a1GBfxx9/fMk8GlO8PkntyIT6rLfeenznO99p1r2aqnaKQtZf4O+4447C6Iyjjz66MOVl8eLFXHfddc3Oa9y4cYXXJ510UsnYU045pd7rWspNN93E888/D+TW/bjyyisbLe6V69prrwVyfx6nnnpqRfr8rI0dO7YwuuqUU04pa6pac0yfPr3wulJ/DpKk5rP4IUn63DjnnHNYvnw5AL/73e/YaaedVonp0aMHt956a2HUwKWXXtroQpk777wzv/71r1c53qFDB/74xz8Wpprcfffd9e40Uzz95Oyzz673HmeccQa77757yTwaM3Xq1EJxYa+99qp3293evXtzxx13NLrDS0uZNm0akJvi079//7Kv+/TTT7nqqquA3La0tc82bty4iqyBce+99zJlyhQg9+d9zjnn1Ds65bTTTmPPPfcEYMaMGVx//fXNvndjVqxYwb777lt4zgMOOIDx48cXtqltSLt27dhxxx1Lxlx88cWFX+ZPPfVUTjrppJKjcrp3785xxx3Hbrvtlu0hWtDbb79d2AVok0024e67715pFFRdEcFuu+3GT3/605WOjxw5kuOPP77kz8aGG25Y+DmdP39+oyOsJEmfHcvRkqTPjaeffpqzzz6bn/zkJ3Tv3p1HHnmEG2+8kQkTJrBo0SIGDx7MUUcdRd++fYHcVJlf/OIXJfucOXMmM2fO5Cc/+QnDhw/nxhtvZNasWay//vocdthhDB48GMgNif+f//mfevu46qqr+PGPf0zPnj3Zb7/9eOyxx7j++uv54IMPGDBgAN/+9rfZbrvtuPHGGwsjUppi2bJlXHbZZZx44ol06tSJRx99lKuuuopnn32WZcuW8eUvf5nvfOc71NTUcO2113LYYYc1+V5N9dBDD7HXXnsBcNttt/GHP/yBd999tzAd5sUXX2xwDZYrrriCU089daXdaWp3rGmulBIHH3wwTzzxBF26dOGkk05ixIgRXH/99bz99tv06dOH/fffn1122QXIjTQ69NBDP7MtgN944w1GjhzJ7bffznrrrcfw4cN5/vnnefLJJ5k4cSLTpk1j7ty5dOzYkV69erHVVlsxatSoldbyqG/L2IULF/LNb36TRx55hLXXXptzzjmnsN3ryy+/zIIFC+jevTsbbLAB22+/PcOHD6dz584cfPDBn8lzl+u0005jm2224Wtf+xpf/epXefPNNxk3bhxPPvkks2fPplOnTvTt25ett96a3XffnX79+vHggw+uVNTs168fF154Ib/97W+ZOHEiTz/9NG+++SYLFy5knXXWYbvttmP//fcvFE4vuOCCwlQ7SVIbkFKy2Ww2m61NNCCVasUaiy3VzjjjjLRs2bJUysSJE9MXvvCFBvuYNm1aSimladOmpQEDBqQpU6Y02Nd7772Xtt1225I5jRo1Ki1atKjBPu666660xhprrJRfff1cffXVhZj1119/lfOdO3dODz30UMln/8Mf/pAGDRpUeH/11Vc3+j0o5/s+bNiwQp9jxoypN2attdZKr7zySoO5HXbYYSXvce+99xZiX3nllWZ9TuprQ4cOTTNnziz5/fvggw/SyJEjy/osN/Tn2NTWu3fvdNVVV6WlS5eWzLHYU089lUaNGlWy30022SRNnjy5rP4WLVqU9thjj8yfzSyxWfqqbR07dkz/93//1+jPfq1rrrlmpesPPfTQsq5bvnx5Ov/881NENPYZaPW/c202m+3z1Bz5IUn63BkzZgxjx47l2GOPZbfddqN///506tSJ2bNn8/TTT3PDDTfUuzZHQ2bMmMH222/P97//ffbff3822GADOnfuzPTp07njjjs499xzG516cd9997H11ltzyimnsNtuu9G3b18+/vhjpkyZwlVXXVWx6RNLlixh5MiRHH300RxyyCEMHjyYTp068d577/H0009z5ZVXMn78+Fbb7eWTTz5h6NChnHjiiYwaNYoNN9yQbt26rTSao5QHH3yQ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\n",
"text/plain": [
"<Figure size 1296x936 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "8cSC1TDr81_l",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"outputId": "1942e5ad-84b9-4149-e82c-cb89edfd2c97"
},
"source": [
"ratings = pd.read_csv('ratings.csv')\n",
"ratings.drop('timestamp',inplace=True,axis=1)\n",
"display(ratings)\n",
"\n",
"users = list(dict.fromkeys(ratings['userId'].tolist()))"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>userId</th>\n",
" <th>movieId</th>\n",
" <th>rating</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>3</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>1</td>\n",
" <td>6</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>47</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>50</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100831</th>\n",
" <td>610</td>\n",
" <td>166534</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100832</th>\n",
" <td>610</td>\n",
" <td>168248</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100833</th>\n",
" <td>610</td>\n",
" <td>168250</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100834</th>\n",
" <td>610</td>\n",
" <td>168252</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>100835</th>\n",
" <td>610</td>\n",
" <td>170875</td>\n",
" <td>3.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>100836 rows × 3 columns</p>\n",
"</div>"
],
"text/plain": [
" userId movieId rating\n",
"0 1 1 4.0\n",
"1 1 3 4.0\n",
"2 1 6 4.0\n",
"3 1 47 5.0\n",
"4 1 50 5.0\n",
"... ... ... ...\n",
"100831 610 166534 4.0\n",
"100832 610 168248 5.0\n",
"100833 610 168250 5.0\n",
"100834 610 168252 5.0\n",
"100835 610 170875 3.0\n",
"\n",
"[100836 rows x 3 columns]"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "QQEmDI1t0l2e",
"colab_type": "text"
},
"source": [
"# Testing the algorithm"
]
},
{
"cell_type": "code",
"metadata": {
"id": "PfGlA-6g55rt",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 528
},
"outputId": "909af108-af51-4d1a-8b1f-0c91339b9591"
},
"source": [
"user = randint(0,610)\n",
"data = movies.merge(ratings[ratings.userId == user], on='movieId',how='inner')\n",
"print(\"User: {}\".format(user))\n",
"print(\"Movies watched: \"+ str(data.shape[0]))\n",
"display(data)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"User: 62\n",
"Movies watched: 363\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>movieId</th>\n",
" <th>title</th>\n",
" <th>Action</th>\n",
" <th>Adventure</th>\n",
" <th>Animation</th>\n",
" <th>Children</th>\n",
" <th>Comedy</th>\n",
" <th>Crime</th>\n",
" <th>Documentary</th>\n",
" <th>Drama</th>\n",
" <th>Fantasy</th>\n",
" <th>Film-Noir</th>\n",
" <th>Horror</th>\n",
" <th>Musical</th>\n",
" <th>Mystery</th>\n",
" <th>Romance</th>\n",
" <th>Sci-Fi</th>\n",
" <th>Thriller</th>\n",
" <th>War</th>\n",
" <th>Western</th>\n",
" <th>IMAX</th>\n",
" <th>userId</th>\n",
" <th>rating</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>Jumanji (1995)</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>6</td>\n",
" <td>Heat (1995)</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>47</td>\n",
" <td>Seven (a.k.a. Se7en) (1995)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>110</td>\n",
" <td>Braveheart (1995)</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>260</td>\n",
" <td>Star Wars: Episode IV - A New Hope (1977)</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>358</th>\n",
" <td>184471</td>\n",
" <td>Tomb Raider (2018)</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>3.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>359</th>\n",
" <td>185031</td>\n",
" <td>Alpha (2018)</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>360</th>\n",
" <td>185135</td>\n",
" <td>Sherlock - A Study in Pink (2010)</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>5.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>361</th>\n",
" <td>187593</td>\n",
" <td>Deadpool 2 (2018)</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>362</th>\n",
" <td>187595</td>\n",
" <td>Solo: A Star Wars Story (2018)</td>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>62</td>\n",
" <td>4.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>363 rows × 23 columns</p>\n",
"</div>"
],
"text/plain": [
" movieId title ... userId rating\n",
"0 2 Jumanji (1995) ... 62 4.0\n",
"1 6 Heat (1995) ... 62 4.5\n",
"2 47 Seven (a.k.a. Se7en) (1995) ... 62 4.5\n",
"3 110 Braveheart (1995) ... 62 4.5\n",
"4 260 Star Wars: Episode IV - A New Hope (1977) ... 62 4.5\n",
".. ... ... ... ... ...\n",
"358 184471 Tomb Raider (2018) ... 62 3.5\n",
"359 185031 Alpha (2018) ... 62 4.5\n",
"360 185135 Sherlock - A Study in Pink (2010) ... 62 5.0\n",
"361 187593 Deadpool 2 (2018) ... 62 4.0\n",
"362 187595 Solo: A Star Wars Story (2018) ... 62 4.0\n",
"\n",
"[363 rows x 23 columns]"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "CsPvIYHscBtf",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 424
},
"outputId": "0af7f7ad-fda5-4655-ffdc-f6355732d1b4"
},
"source": [
"X = data.drop(['title','movieId','userId','rating'],inplace=False,axis=1)\n",
"display(X)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Action</th>\n",
" <th>Adventure</th>\n",
" <th>Animation</th>\n",
" <th>Children</th>\n",
" <th>Comedy</th>\n",
" <th>Crime</th>\n",
" <th>Documentary</th>\n",
" <th>Drama</th>\n",
" <th>Fantasy</th>\n",
" <th>Film-Noir</th>\n",
" <th>Horror</th>\n",
" <th>Musical</th>\n",
" <th>Mystery</th>\n",
" <th>Romance</th>\n",
" <th>Sci-Fi</th>\n",
" <th>Thriller</th>\n",
" <th>War</th>\n",
" <th>Western</th>\n",
" <th>IMAX</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>358</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>359</th>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>360</th>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>361</th>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>362</th>\n",
" <td>1</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>1</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" <td>0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>363 rows × 19 columns</p>\n",
"</div>"
],
"text/plain": [
" Action Adventure Animation Children ... Thriller War Western IMAX\n",
"0 0 1 0 1 ... 0 0 0 0\n",
"1 1 0 0 0 ... 1 0 0 0\n",
"2 0 0 0 0 ... 1 0 0 0\n",
"3 1 0 0 0 ... 0 1 0 0\n",
"4 1 1 0 0 ... 0 0 0 0\n",
".. ... ... ... ... ... ... ... ... ...\n",
"358 1 1 0 0 ... 0 0 0 0\n",
"359 0 1 0 0 ... 1 0 0 0\n",
"360 0 0 0 0 ... 0 0 0 0\n",
"361 1 0 0 0 ... 0 0 0 0\n",
"362 1 1 0 1 ... 0 0 0 0\n",
"\n",
"[363 rows x 19 columns]"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "4oZUqLyfcChM",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 312
},
"outputId": "6073575a-49f2-4aaa-cc51-f9589611e357"
},
"source": [
"Y = np.asarray(data['rating'],dtype=np.int32)\n",
"display(Y)"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/plain": [
"array([4, 4, 4, 4, 4, 5, 4, 4, 3, 5, 4, 4, 4, 5, 4, 5, 5, 4, 4, 4, 4, 5,\n",
" 4, 5, 4, 4, 4, 4, 3, 4, 5, 5, 4, 5, 4, 4, 5, 5, 4, 5, 4, 4, 5, 4,\n",
" 5, 3, 4, 4, 3, 5, 4, 3, 5, 4, 4, 3, 3, 4, 4, 4, 2, 4, 4, 5, 4, 5,\n",
" 3, 1, 3, 4, 4, 4, 4, 5, 4, 3, 4, 4, 4, 4, 3, 4, 5, 5, 4, 4, 5, 4,\n",
" 4, 3, 3, 5, 4, 3, 4, 3, 3, 3, 5, 5, 4, 5, 4, 4, 4, 3, 5, 4, 1, 4,\n",
" 2, 4, 4, 4, 4, 4, 4, 3, 5, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 3, 5,\n",
" 3, 4, 4, 4, 4, 4, 4, 4, 5, 3, 3, 3, 4, 3, 4, 4, 5, 4, 3, 4, 4, 4,\n",
" 5, 4, 4, 4, 1, 5, 3, 4, 4, 4, 4, 1, 4, 5, 3, 4, 4, 4, 5, 4, 4, 4,\n",
" 4, 3, 3, 5, 4, 3, 4, 3, 4, 3, 3, 3, 4, 3, 4, 4, 4, 1, 4, 4, 4, 4,\n",
" 2, 3, 4, 4, 5, 4, 4, 4, 4, 3, 3, 4, 5, 3, 4, 5, 3, 3, 1, 5, 4, 4,\n",
" 4, 3, 4, 5, 2, 4, 4, 4, 4, 4, 4, 4, 3, 2, 4, 4, 4, 3, 4, 4, 4, 3,\n",
" 4, 5, 5, 4, 3, 3, 4, 4, 5, 4, 3, 4, 4, 4, 5, 4, 4, 4, 3, 4, 3, 4,\n",
" 4, 3, 4, 4, 3, 3, 3, 4, 5, 4, 4, 4, 4, 3, 4, 5, 5, 4, 4, 4, 3, 3,\n",
" 4, 4, 4, 4, 4, 4, 3, 4, 4, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4,\n",
" 4, 4, 4, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 3, 3, 4, 3, 4, 2, 4, 4, 3,\n",
" 4, 4, 4, 3, 5, 4, 4, 3, 4, 4, 4, 4, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4,\n",
" 3, 4, 3, 3, 4, 4, 3, 4, 5, 4, 4], dtype=int32)"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "bw128tcaFGpJ",
"colab_type": "code",
"colab": {}
},
"source": [
"# Separating test movies from training movies\n",
"trainX,testX,trainY,testY = train_test_split(X.values,Y,test_size=0.3)"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "LkmrLFjBj-PX",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
},
"outputId": "e41d7833-1f82-47ed-d284-3479a918829f"
},
"source": [
"bnb = BernoulliNB(binarize=0.0)\n",
"bnb.fit(trainX, trainY)\n",
"score = bnb.score(testX,testY)\n",
"print(\"User: {}\\nFinal score: {}\".format(user,score))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"User: 62\n",
"Final score: 0.5596330275229358\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1Mo3LpT1As8h",
"colab_type": "text"
},
"source": [
"# Recommender Evaluation\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "8I0rXHnMa_UB",
"colab_type": "text"
},
"source": [
"## First method"
]
},
{
"cell_type": "code",
"metadata": {
"id": "N-lFtwdIA0Ne",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 1000
},
"outputId": "2e58e13c-082d-4173-c21f-90c882f0a3c2"
},
"source": [
"scores = []\n",
"final_precisions = []\n",
"final_accuracy = []\n",
"final_recalls = []\n",
"final_f1 = []\n",
"selected_users = []\n",
"set_sizes = []\n",
"train_sizes = []\n",
"test_sizes = []\n",
"final_tp = []\n",
"final_fp = []\n",
"final_fn = []\n",
"final_tn = []\n",
"predictions = []\n",
"test_sets = []\n",
"errors = []\n",
"unsuficient = 0\n",
"\n",
"user_amount = 200 # Amount of users for testing\n",
"i = 0\n",
"\n",
"while len(selected_users) < user_amount:\n",
"\n",
" user = randint(0,610)\n",
"\n",
" if user in selected_users:\n",
" continue\n",
"\n",
" # user = 599\n",
" data = movies.merge(ratings[ratings.userId == user], on='movieId',how='inner')\n",
"\n",
" X = data.drop(['title','movieId','userId','rating'],inplace=False,axis=1)\n",
" Y = np.asarray(data['rating'],dtype=np.int32)\n",
"\n",
" # User must have watched at least 33 movies so they will have a testing set with at least 10 movies\n",
" if len(Y) < 33:\n",
" unsuficient = unsuficient + 1\n",
" continue\n",
"\n",
" # Splitting into liked and disliked movies (if rating is greater or equal to 4)\n",
" for index,rating in enumerate(Y):\n",
" if rating >= 4:\n",
" Y[index] = 1\n",
" else:\n",
" Y[index] = 0\n",
"\n",
" # Separating test movies from training movies\n",
" trainX,testX,trainY,testY = train_test_split(X.values,Y,test_size=0.3,shuffle=True)\n",
" bnb = BernoulliNB(binarize=0.0)\n",
" bnb.fit(trainX, trainY)\n",
" score = bnb.score(testX,testY)\n",
" scores.append(score)\n",
" predicted = bnb.predict(testX)\n",
"\n",
" predictions.append(predicted)\n",
" test_sets.append(testY)\n",
" \n",
" tp = 0 # True positives\n",
" fp = 0 # False positives\n",
" fn = 0 # False negatives\n",
" tn = 0 # True negatives\n",
"\n",
" for index,recommendation in enumerate(predicted):\n",
" if recommendation == 1:\n",
" if recommendation == testY[index]:\n",
" tp = tp + 1\n",
" else:\n",
" fp = fp + 1\n",
" else:\n",
" if recommendation == testY[index]:\n",
" tn = tn + 1\n",
" else:\n",
" fn = fn + 1\n",
" # conf = confusion_matrix(testY,predicted)\n",
" # tn, fp, fn, tp = conf.ravel()\n",
" \n",
" final_tp.append(tp)\n",
" final_tn.append(tn)\n",
" final_fn.append(fn)\n",
" final_fp.append(fp)\n",
" \n",
" try: # An error happens if the algorithm fails to predict any positive value\n",
" precision = (tp/(tp+fp))\n",
" accuracy = ((tp+tn)/(tp+fp+fn+tn))\n",
" recall = (tp/(tp+fn))\n",
" f1 = (2*recall*precision)/(recall+precision)\n",
"\n",
" except:\n",
" errors.append(data)\n",
" continue\n",
"\n",
" final_precisions.append(precision)\n",
" final_accuracy.append(accuracy)\n",
" final_recalls.append(recall)\n",
" final_f1.append(f1)\n",
"\n",
" selected_users.append(user)\n",
" set_sizes.append(data.shape[0])\n",
" train_sizes.append(len(trainY))\n",
" test_sizes.append(len(testY))\n",
"\n",
" i = i + 1\n",
"\n",
"results = pd.DataFrame(list(zip(selected_users,set_sizes,train_sizes,test_sizes,final_tp,final_fp,final_fn,final_tn,scores,final_precisions,final_accuracy,final_recalls,final_f1)), \n",
" columns =['userId','Movies watched','Training set','Testing set','TP','FP','FN','TN','Score','Precision','Accuracy','Recall rate','F1-score'])\n",
"\n",
"print('Users with unsuficient data: {}'.format(unsuficient))\n",
"print('Errors: ' + str(len(errors)))\n",
"print('Selected Users: '+str(len(selected_users)))\n",
"\n",
"plt.plot(final_precisions,label='Precision')\n",
"plt.plot(final_accuracy,label='Accuracy')\n",
"plt.plot(final_recalls,label='Recall Rate')\n",
"plt.plot(final_f1,label='F1-score')\n",
"plt.xlabel('User')\n",
"plt.legend()\n",
"\n",
"results.head(user_amount)\n",
"\n",
"fig, axes = plt.subplots(nrows=2, ncols=2,figsize=(15,15))\n",
"axes[0,0].hist(final_precisions,bins=10)\n",
"axes[0,0].set_title('Precision')\n",
"axes[0,1].hist(final_accuracy,bins=10)\n",
"axes[0,1].set_title('Accuracy')\n",
"axes[1,0].hist(final_recalls,bins=10)\n",
"axes[1,0].set_title('Recall Rate')\n",
"axes[1,1].hist(final_f1,bins=10)\n",
"axes[1,1].set_title('F1-score')\n",
"\n",
"fig.subplots_adjust(hspace=0.4)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Users with unsuficient data: 68\n",
"Errors: 8\n",
"Selected Users: 200\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 1080x1080 with 4 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "qMQLuC7yA3pV",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 318
},
"outputId": "b68a8509-172e-4313-cf04-11bf7b1bcb65"
},
"source": [
"users_error = [element['userId'].iloc[0] for element in errors]\n",
"movies_watched = [element.shape[0] for element in errors]\n",
"print('Users whose the predicitions failed:')\n",
"display(pd.DataFrame(data=list(zip(users_error,movies_watched)),columns=['User','Movies Watched']))"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Users whose the predicitions failed:\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>User</th>\n",
" <th>Movies Watched</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>567</td>\n",
" <td>382</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>139</td>\n",
" <td>194</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>36</td>\n",
" <td>60</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>361</td>\n",
" <td>97</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>270</td>\n",
" <td>40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>153</td>\n",
" <td>179</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>599</td>\n",
" <td>2474</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>510</td>\n",
" <td>108</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" User Movies Watched\n",
"0 567 382\n",
"1 139 194\n",
"2 36 60\n",
"3 361 97\n",
"4 270 40\n",
"5 153 179\n",
"6 599 2474\n",
"7 510 108"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "oZtKBCFOa26w",
"colab_type": "text"
},
"source": [
"## Coverage"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "OglZw3i5qTtX",
"colab_type": "text"
},
"source": [
"### Run at the beggining"
]
},
{
"cell_type": "code",
"metadata": {
"id": "2XD0XD7ca7AJ",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
},
"outputId": "5d82c74a-9554-4037-85a2-1d4d479c374c"
},
"source": [
"%%time\n",
"\n",
"selected_users = []\n",
"recommendations = []\n",
"user_coverage = []\n",
"\n",
"user_amount = len(users) # Amount of users for testing\n",
"list_size = [10, 20, 30, 50, 100] # Recommendation list size\n",
"\n",
"# while len(selected_users) < user_amount:\n",
"for user in users:\n",
"\n",
" # user = randint(0,610)\n",
" data = movies.merge(ratings[ratings.userId == user],on='movieId',how='inner')\n",
"\n",
" # Separating unwatched movies\n",
" unwatched = movies.merge(ratings[ratings.userId == user], on='movieId', how='left', indicator=True).query('_merge == \"left_only\"').drop('_merge', 1)\n",
" unwatched.drop(['userId','rating'],inplace=True,axis=1)\n",
" \n",
" X = data.drop(['title','movieId','userId','rating'],inplace=False,axis=1)\n",
" Y = np.asarray(data['rating'],dtype=np.int32)\n",
"\n",
" # User must have watched at least 33 movies\n",
" # if len(Y) < 33:\n",
" # continue\n",
"\n",
" # Splitting into liked and disliked movies (if rating is greater or equal to 4)\n",
" for index,rating in enumerate(Y):\n",
" if rating >= 4:\n",
" Y[index] = 1\n",
" else:\n",
" Y[index] = 0\n",
"\n",
" bnb = BernoulliNB(binarize=0.0)\n",
" bnb.fit(X,Y)\n",
" prediction = bnb.predict(unwatched.drop(['title','movieId'],inplace=False,axis=1))\n",
"\n",
" recommendation = unwatched.copy()\n",
" recommendation['rating'] = prediction\n",
"\n",
" recommendation.drop(recommendation[recommendation.rating == 0].index, inplace=True)\n",
"\n",
" selected_users.append(user)\n",
" recommendations.append(recommendation)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"CPU times: user 42.4 s, sys: 29.3 s, total: 1min 11s\n",
"Wall time: 36.4 s\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "6_iWByc7qdpq",
"colab_type": "text"
},
"source": [
"### User Coverage"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Gl_g6kPRqjMW",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 241
},
"outputId": "65174050-e7fb-4767-86de-26ab1db5b914"
},
"source": [
"print('User coverage analysis')\n",
"print(\"Number of users: \" + str(user_amount))\n",
"\n",
"for size in list_size:\n",
" sum = 0\n",
" for recommendation in recommendations:\n",
" if recommendation.shape[0] < size:\n",
" sum = sum + recommendation.shape[0]/size\n",
" else:\n",
" sum = sum + 1\n",
" user_coverage.append(sum/user_amount)\n",
" # print('List size: {} User coverage: {}'.format(size,sum/user_amount))\n",
"\n",
"pd.DataFrame(list(zip(list_size,user_coverage)),columns=['Recommendation list size','User Coverage']).head()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"User coverage analysis\n",
"Number of users: 610\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Recommendation list size</th>\n",
" <th>User Coverage</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>10</td>\n",
" <td>0.995574</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>20</td>\n",
" <td>0.993852</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>30</td>\n",
" <td>0.993169</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>50</td>\n",
" <td>0.992033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>100</td>\n",
" <td>0.988967</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Recommendation list size User Coverage\n",
"0 10 0.995574\n",
"1 20 0.993852\n",
"2 30 0.993169\n",
"3 50 0.992033\n",
"4 100 0.988967"
]
},
"metadata": {
"tags": []
},
"execution_count": 366
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "nT8bf-Rrqzhr",
"colab_type": "text"
},
"source": [
"### Catalog Coverage"
]
},
{
"cell_type": "code",
"metadata": {
"id": "mcEoQmchqylu",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 224
},
"outputId": "1a7f1fb1-e868-48c1-8832-5e82286a4c99"
},
"source": [
"catalog_coverage = []\n",
"incomplete_lists = []\n",
"\n",
"for size in list_size:\n",
"\n",
" catalog = pd.DataFrame(index=recommendations[0].index,columns=recommendations[0].columns)\n",
" catalog.dropna(inplace=True)\n",
"\n",
" incomplete = 0\n",
" for recommendation in recommendations:\n",
" if recommendation.shape[0] >= size:\n",
" catalog = catalog.append(recommendation.sample(n = size,replace=False))\n",
" else: \n",
" catalog = catalog.append(recommendation)\n",
" incomplete = incomplete + 1\n",
"\n",
" incomplete_lists.append(incomplete)\n",
" catalog.drop_duplicates(keep='first',inplace=True)\n",
" catalog_coverage.append(catalog.shape[0]/movies.shape[0])\n",
"\n",
"print('Catalog coverage analysis')\n",
"pd.DataFrame(list(zip(list_size,catalog_coverage,incomplete_lists)),columns=['Recommendation list size','Catalog Coverage','Incomplete lists']).head()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Catalog coverage analysis\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Recommendation list size</th>\n",
" <th>Catalog Coverage</th>\n",
" <th>Incomplete lists</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>10</td>\n",
" <td>0.459827</td>\n",
" <td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>20</td>\n",
" <td>0.695612</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>30</td>\n",
" <td>0.828801</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>50</td>\n",
" <td>0.945097</td>\n",
" <td>7</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>100</td>\n",
" <td>0.996395</td>\n",
" <td>9</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Recommendation list size Catalog Coverage Incomplete lists\n",
"0 10 0.459827 3\n",
"1 20 0.695612 5\n",
"2 30 0.828801 5\n",
"3 50 0.945097 7\n",
"4 100 0.996395 9"
]
},
"metadata": {
"tags": []
},
"execution_count": 369
}
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "A2_ljdU-LORs",
"colab_type": "text"
},
"source": [
"## MAP"
]
},
{
"cell_type": "code",
"metadata": {
"id": "Za7As4DhLaif",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 519
},
"outputId": "7780927c-3cdf-4498-c0ab-a66177b3fee7"
},
"source": [
"%%time\n",
"\n",
"selected_users = []\n",
"actuals = []\n",
"predicts = []\n",
"list_size = [10,20,30,50,100] # Possible recommendation list sizes\n",
"mapk_results = []\n",
"user_amount = 611 # Amount of users for testing\n",
"\n",
"ignored = 0\n",
"\n",
"while len(selected_users) < user_amount:\n",
"\n",
" user = randint(0,610)\n",
"\n",
" data = movies.merge(ratings[ratings.userId == user], on='movieId',how='inner')\n",
"\n",
" unwatched = movies.merge(ratings[ratings.userId == user], on='movieId', how='left', indicator=True).query('_merge == \"left_only\"').drop('_merge', 1)\n",
" unwatched.drop(['userId','rating'],inplace=True,axis=1)\n",
"\n",
" Y = np.zeros((data.shape[0]), dtype=np.int32)\n",
" X = data.drop(['userId'],inplace=False,axis=1)\n",
"\n",
" # Splitting into liked (if rating is greater or equal to 4) and disliked movies\n",
" for index,rating in enumerate(X['rating'].tolist()):\n",
" if rating >= 4:\n",
" Y[index] = 1\n",
" else:\n",
" Y[index] = 0\n",
"\n",
" X['recommendation'] = Y\n",
"\n",
" if X.shape[0] < 10 or X.loc[X['recommendation'] == 1].shape[0] < 10:\n",
" # print('Error: small user repertoire')\n",
" ignored = ignored + 1\n",
" continue\n",
"\n",
" # Removing 10 movies for prediction\n",
" test = X.loc[X['recommendation'] == 1].sample(n=10,replace=False)\n",
" test.sort_values(by='rating',inplace=True,ascending=False)\n",
" test.drop('recommendation',inplace=True,axis=1)\n",
" train = X[~X['movieId'].isin(test['movieId'].tolist())].copy()\n",
"\n",
"# # Ignore user if the training set is too small\n",
" if train.shape[0] < 10:\n",
" ignored = ignored + 1\n",
" continue\n",
"\n",
" test.drop(['rating'],inplace=True,axis=1)\n",
" train.drop(['rating'],inplace=True,axis=1)\n",
"\n",
" trainY = np.asarray(train['recommendation'],dtype=np.int32)\n",
" trainX = train.drop('recommendation',inplace=False,axis=1)\n",
" \n",
" bnb = BernoulliNB(binarize=0.0)\n",
" bnb.fit(trainX.drop(['title','movieId'],inplace=False,axis=1), trainY)\n",
"\n",
" # Adding the 10 test movies to the unwatched movies for prediction\n",
" unwatched = unwatched.merge(test,on=unwatched.columns.to_list(),how='outer')\n",
" prediction = bnb.predict(unwatched.drop(['title','movieId'],inplace=False,axis=1))\n",
" proba = bnb.predict_proba(unwatched.drop(['title','movieId'],inplace=False,axis=1))\n",
"\n",
" probaN = []\n",
" probaP = []\n",
"\n",
" for line in proba:\n",
" probaN.append(line[0])\n",
" probaP.append(line[1])\n",
"\n",
" unwatched['Prediction'] = np.array(prediction)\n",
" unwatched['ProbaN'] = probaN\n",
" unwatched['ProbaP'] = probaP\n",
" unwatched.sort_values(by='ProbaP',inplace=True,ascending=False,na_position='first')\n",
"\n",
" actual = test['movieId'].values.tolist()\n",
" predicted = unwatched.loc[unwatched['Prediction']==1]\n",
" predicted = predicted['movieId'].values.tolist()\n",
"\n",
" actuals.append(actual)\n",
" predicts.append(predicted)\n",
"\n",
" selected_users.append(user)\n",
"\n",
"for k in list_size:\n",
" evaluation = ml_metrics.mapk(actuals,predicts,k=k)\n",
" mapk_results.append(evaluation)\n",
"\n",
"display(pd.DataFrame(data=list(zip(['MAP@10','MAP@20','MAP@30','MAP@50','MAP@100'],mapk_results)),columns=['Method','Score']))\n",
"\n",
"plt.plot(list_size,mapk_results)\n",
"plt.xlabel('Recommendation list size')\n",
"plt.ylabel('MAP')\n",
"plt.title('Mean Average Precision')"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Method</th>\n",
" <th>Score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>MAP@10</td>\n",
" <td>0.001801</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>MAP@20</td>\n",
" <td>0.002131</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>MAP@30</td>\n",
" <td>0.002374</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>MAP@50</td>\n",
" <td>0.002586</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>MAP@100</td>\n",
" <td>0.002836</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Method Score\n",
"0 MAP@10 0.001801\n",
"1 MAP@20 0.002131\n",
"2 MAP@30 0.002374\n",
"3 MAP@50 0.002586\n",
"4 MAP@100 0.002836"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"CPU times: user 1min 41s, sys: 1min, total: 2min 42s\n",
"Wall time: 1min 28s\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "wB5HWzaI8Btr",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 52
},
"outputId": "4487cda9-5a10-4458-b8db-ac87a0c17bfb"
},
"source": [
"!jupyter nbconvert --to html \"Content-based Filtering.ipynb\" "
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"[NbConvertApp] Converting notebook Content-based Filtering.ipynb to html\n",
"[NbConvertApp] Writing 488011 bytes to Content-based Filtering.html\n"
],
"name": "stdout"
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment