diff --git a/Google Colab/MovieRecommender.ipynb b/Google Colab/MovieRecommender.ipynb new file mode 100644 index 0000000..ad632e7 --- /dev/null +++ b/Google Colab/MovieRecommender.ipynb @@ -0,0 +1,2188 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "name": "MovieRecommender.ipynb", + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + } + }, + "cells": [ + { + "cell_type": "code", + "metadata": { + "id": "Sqopxjxk-Iii" + }, + "source": [ + "import numpy as np\r\n", + "import pandas as pd\r\n", + "from google.colab import files" + ], + "execution_count": 4, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "resources": { + "http://localhost:8080/nbextensions/google.colab/files.js": { + "data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7CgpmdW5jdGlvbiBfdXBsb2FkRmlsZXMoaW5wdXRJZCwgb3V0cHV0SWQpIHsKICBjb25zdCBzdGVwcyA9IHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCk7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICAvLyBDYWNoZSBzdGVwcyBvbiB0aGUgb3V0cHV0RWxlbWVudCB0byBtYWtlIGl0IGF2YWlsYWJsZSBmb3IgdGhlIG5leHQgY2FsbAogIC8vIHRvIHVwbG9hZEZpbGVzQ29udGludWUgZnJvbSBQeXRob24uCiAgb3V0cHV0RWxlbWVudC5zdGVwcyA9IHN0ZXBzOwoKICByZXR1cm4gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpOwp9CgovLyBUaGlzIGlzIHJvdWdobHkgYW4gYXN5bmMgZ2VuZXJhdG9yIChub3Qgc3VwcG9ydGVkIGluIHRoZSBicm93c2VyIHlldCksCi8vIHdoZXJlIHRoZXJlIGFyZSBtdWx0aXBsZSBhc3luY2hyb25vdXMgc3RlcHMgYW5kIHRoZSBQeXRob24gc2lkZSBpcyBnb2luZwovLyB0byBwb2xsIGZvciBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcC4KLy8gVGhpcyB1c2VzIGEgUHJvbWlzZSB0byBibG9jayB0aGUgcHl0aG9uIHNpZGUgb24gY29tcGxldGlvbiBvZiBlYWNoIHN0ZXAsCi8vIHRoZW4gcGFzc2VzIHRoZSByZXN1bHQgb2YgdGhlIHByZXZpb3VzIHN0ZXAgYXMgdGhlIGlucHV0IHRvIHRoZSBuZXh0IHN0ZXAuCmZ1bmN0aW9uIF91cGxvYWRGaWxlc0NvbnRpbnVlKG91dHB1dElkKSB7CiAgY29uc3Qgb3V0cHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKG91dHB1dElkKTsKICBjb25zdCBzdGVwcyA9IG91dHB1dEVsZW1lbnQuc3RlcHM7CgogIGNvbnN0IG5leHQgPSBzdGVwcy5uZXh0KG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSk7CiAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShuZXh0LnZhbHVlLnByb21pc2UpLnRoZW4oKHZhbHVlKSA9PiB7CiAgICAvLyBDYWNoZSB0aGUgbGFzdCBwcm9taXNlIHZhbHVlIHRvIG1ha2UgaXQgYXZhaWxhYmxlIHRvIHRoZSBuZXh0CiAgICAvLyBzdGVwIG9mIHRoZSBnZW5lcmF0b3IuCiAgICBvdXRwdXRFbGVtZW50Lmxhc3RQcm9taXNlVmFsdWUgPSB2YWx1ZTsKICAgIHJldHVybiBuZXh0LnZhbHVlLnJlc3BvbnNlOwogIH0pOwp9CgovKioKICogR2VuZXJhdG9yIGZ1bmN0aW9uIHdoaWNoIGlzIGNhbGxlZCBiZXR3ZWVuIGVhY2ggYXN5bmMgc3RlcCBvZiB0aGUgdXBsb2FkCiAqIHByb2Nlc3MuCiAqIEBwYXJhbSB7c3RyaW5nfSBpbnB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIGlucHV0IGZpbGUgcGlja2VyIGVsZW1lbnQuCiAqIEBwYXJhbSB7c3RyaW5nfSBvdXRwdXRJZCBFbGVtZW50IElEIG9mIHRoZSBvdXRwdXQgZGlzcGxheS4KICogQHJldHVybiB7IUl0ZXJhYmxlPCFPYmplY3Q+fSBJdGVyYWJsZSBvZiBuZXh0IHN0ZXBzLgogKi8KZnVuY3Rpb24qIHVwbG9hZEZpbGVzU3RlcChpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IGlucHV0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlucHV0SWQpOwogIGlucHV0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlOwoKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIG91dHB1dEVsZW1lbnQuaW5uZXJIVE1MID0gJyc7CgogIGNvbnN0IHBpY2tlZFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgaW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIChlKSA9PiB7CiAgICAgIHJlc29sdmUoZS50YXJnZXQuZmlsZXMpOwogICAgfSk7CiAgfSk7CgogIGNvbnN0IGNhbmNlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOwogIGlucHV0RWxlbWVudC5wYXJlbnRFbGVtZW50LmFwcGVuZENoaWxkKGNhbmNlbCk7CiAgY2FuY2VsLnRleHRDb250ZW50ID0gJ0NhbmNlbCB1cGxvYWQnOwogIGNvbnN0IGNhbmNlbFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgY2FuY2VsLm9uY2xpY2sgPSAoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9OwogIH0pOwoKICAvLyBXYWl0IGZvciB0aGUgdXNlciB0byBwaWNrIHRoZSBmaWxlcy4KICBjb25zdCBmaWxlcyA9IHlpZWxkIHsKICAgIHByb21pc2U6IFByb21pc2UucmFjZShbcGlja2VkUHJvbWlzZSwgY2FuY2VsUHJvbWlzZV0pLAogICAgcmVzcG9uc2U6IHsKICAgICAgYWN0aW9uOiAnc3RhcnRpbmcnLAogICAgfQogIH07CgogIGNhbmNlbC5yZW1vdmUoKTsKCiAgLy8gRGlzYWJsZSB0aGUgaW5wdXQgZWxlbWVudCBzaW5jZSBmdXJ0aGVyIHBpY2tzIGFyZSBub3QgYWxsb3dlZC4KICBpbnB1dEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlOwoKICBpZiAoIWZpbGVzKSB7CiAgICByZXR1cm4gewogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgICAgfQogICAgfTsKICB9CgogIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykgewogICAgY29uc3QgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaScpOwogICAgbGkuYXBwZW5kKHNwYW4oZmlsZS5uYW1lLCB7Zm9udFdlaWdodDogJ2JvbGQnfSkpOwogICAgbGkuYXBwZW5kKHNwYW4oCiAgICAgICAgYCgke2ZpbGUudHlwZSB8fCAnbi9hJ30pIC0gJHtmaWxlLnNpemV9IGJ5dGVzLCBgICsKICAgICAgICBgbGFzdCBtb2RpZmllZDogJHsKICAgICAgICAgICAgZmlsZS5sYXN0TW9kaWZpZWREYXRlID8gZmlsZS5sYXN0TW9kaWZpZWREYXRlLnRvTG9jYWxlRGF0ZVN0cmluZygpIDoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ24vYSd9IC0gYCkpOwogICAgY29uc3QgcGVyY2VudCA9IHNwYW4oJzAlIGRvbmUnKTsKICAgIGxpLmFwcGVuZENoaWxkKHBlcmNlbnQpOwoKICAgIG91dHB1dEVsZW1lbnQuYXBwZW5kQ2hpbGQobGkpOwoKICAgIGNvbnN0IGZpbGVEYXRhUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7CiAgICAgIHJlYWRlci5vbmxvYWQgPSAoZSkgPT4gewogICAgICAgIHJlc29sdmUoZS50YXJnZXQucmVzdWx0KTsKICAgICAgfTsKICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGZpbGUpOwogICAgfSk7CiAgICAvLyBXYWl0IGZvciB0aGUgZGF0YSB0byBiZSByZWFkeS4KICAgIGxldCBmaWxlRGF0YSA9IHlpZWxkIHsKICAgICAgcHJvbWlzZTogZmlsZURhdGFQcm9taXNlLAogICAgICByZXNwb25zZTogewogICAgICAgIGFjdGlvbjogJ2NvbnRpbnVlJywKICAgICAgfQogICAgfTsKCiAgICAvLyBVc2UgYSBjaHVua2VkIHNlbmRpbmcgdG8gYXZvaWQgbWVzc2FnZSBzaXplIGxpbWl0cy4gU2VlIGIvNjIxMTU2NjAuCiAgICBsZXQgcG9zaXRpb24gPSAwOwogICAgd2hpbGUgKHBvc2l0aW9uIDwgZmlsZURhdGEuYnl0ZUxlbmd0aCkgewogICAgICBjb25zdCBsZW5ndGggPSBNYXRoLm1pbihmaWxlRGF0YS5ieXRlTGVuZ3RoIC0gcG9zaXRpb24sIE1BWF9QQVlMT0FEX1NJWkUpOwogICAgICBjb25zdCBjaHVuayA9IG5ldyBVaW50OEFycmF5KGZpbGVEYXRhLCBwb3NpdGlvbiwgbGVuZ3RoKTsKICAgICAgcG9zaXRpb24gKz0gbGVuZ3RoOwoKICAgICAgY29uc3QgYmFzZTY0ID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsIGNodW5rKSk7CiAgICAgIHlpZWxkIHsKICAgICAgICByZXNwb25zZTogewogICAgICAgICAgYWN0aW9uOiAnYXBwZW5kJywKICAgICAgICAgIGZpbGU6IGZpbGUubmFtZSwKICAgICAgICAgIGRhdGE6IGJhc2U2NCwKICAgICAgICB9LAogICAgICB9OwogICAgICBwZXJjZW50LnRleHRDb250ZW50ID0KICAgICAgICAgIGAke01hdGgucm91bmQoKHBvc2l0aW9uIC8gZmlsZURhdGEuYnl0ZUxlbmd0aCkgKiAxMDApfSUgZG9uZWA7CiAgICB9CiAgfQoKICAvLyBBbGwgZG9uZS4KICB5aWVsZCB7CiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICB9CiAgfTsKfQoKc2NvcGUuZ29vZ2xlID0gc2NvcGUuZ29vZ2xlIHx8IHt9OwpzY29wZS5nb29nbGUuY29sYWIgPSBzY29wZS5nb29nbGUuY29sYWIgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYi5fZmlsZXMgPSB7CiAgX3VwbG9hZEZpbGVzLAogIF91cGxvYWRGaWxlc0NvbnRpbnVlLAp9Owp9KShzZWxmKTsK", + "ok": true, + "headers": [ + [ + "content-type", + "application/javascript" + ] + ], + "status": 200, + "status_text": "" + } + }, + "base_uri": "https://localhost:8080/", + "height": 106 + }, + "id": "CX5PGJ9c-S1-", + "outputId": "276d12f7-435e-49f9-facd-7e13794b01d5" + }, + "source": [ + "uploaded = files.upload()" + ], + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/html": [ + "\n", + " \n", + " \n", + " Upload widget is only available when the cell has been executed in the\n", + " current browser session. Please rerun this cell to enable.\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + } + }, + { + "output_type": "stream", + "text": [ + "Saving Movie_Id_Titles to Movie_Id_Titles\n", + "Saving u.data to u (1).data\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "9amyFdiQ_GVM", + "outputId": "a364be04-4743-4447-98ee-4a0a5c091c29" + }, + "source": [ + "for fn in uploaded.keys():\r\n", + " print('User Uploaded File \"{name}\" With length \"{length}\" bytes'. format (\r\n", + " name=fn, length=len(uploaded[fn]))) " + ], + "execution_count": 15, + "outputs": [ + { + "output_type": "stream", + "text": [ + "User Uploaded File \"Movie_Id_Titles\" With length \"49292\" bytes\n", + "User Uploaded File \"u.data\" With length \"1979226\" bytes\n" + ], + "name": "stdout" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "VsgEFRJN-WTV" + }, + "source": [ + "column_names = ['user_id', 'item_id', 'rating', 'timestamp']\r\n", + "df = pd.read_csv('u.data', sep='\\t', names=column_names)" + ], + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "id": "OdBcS3q0-YFI", + "outputId": "3641264c-d302-46bc-fd7d-00b53933563d" + }, + "source": [ + "df.head()" + ], + "execution_count": 17, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
user_iditem_idratingtimestamp
00505881250949
101725881250949
201331881250949
31962423881250949
41863023891717742
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp\n", + "0 0 50 5 881250949\n", + "1 0 172 5 881250949\n", + "2 0 133 1 881250949\n", + "3 196 242 3 881250949\n", + "4 186 302 3 891717742" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 17 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "id": "_ykl3ChF-Z-C", + "outputId": "d47c0a5d-3abd-42af-9b09-088570fc99bc" + }, + "source": [ + "movie_titles = pd.read_csv(\"Movie_Id_Titles\")\r\n", + "movie_titles.head()" + ], + "execution_count": 18, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
item_idtitle
01Toy Story (1995)
12GoldenEye (1995)
23Four Rooms (1995)
34Get Shorty (1995)
45Copycat (1995)
\n", + "
" + ], + "text/plain": [ + " item_id title\n", + "0 1 Toy Story (1995)\n", + "1 2 GoldenEye (1995)\n", + "2 3 Four Rooms (1995)\n", + "3 4 Get Shorty (1995)\n", + "4 5 Copycat (1995)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 18 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 204 + }, + "id": "VlDyi-TT-csH", + "outputId": "e3b07482-f44c-4288-bd8c-4e110643150d" + }, + "source": [ + "df = pd.merge(df,movie_titles,on='item_id')\r\n", + "df.head()" + ], + "execution_count": 19, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
user_iditem_idratingtimestamptitle
00505881250949Star Wars (1977)
1290505880473582Star Wars (1977)
279504891271545Star Wars (1977)
32505888552084Star Wars (1977)
48505879362124Star Wars (1977)
\n", + "
" + ], + "text/plain": [ + " user_id item_id rating timestamp title\n", + "0 0 50 5 881250949 Star Wars (1977)\n", + "1 290 50 5 880473582 Star Wars (1977)\n", + "2 79 50 4 891271545 Star Wars (1977)\n", + "3 2 50 5 888552084 Star Wars (1977)\n", + "4 8 50 5 879362124 Star Wars (1977)" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 19 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "id": "ZKJOdCYQ-fih" + }, + "source": [ + "import matplotlib.pyplot as plt\r\n", + "import seaborn as sns\r\n", + "sns.set_style('white')\r\n", + "%matplotlib inline" + ], + "execution_count": 20, + "outputs": [] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "f9UM5859-hfB", + "outputId": "806387cb-f62d-4452-8eed-bcd848ddc345" + }, + "source": [ + "df.groupby('title')['rating'].mean().sort_values(ascending=False).head()" + ], + "execution_count": 21, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "title\n", + "Marlene Dietrich: Shadow and Light (1996) 5.0\n", + "Prefontaine (1997) 5.0\n", + "Santa with Muscles (1996) 5.0\n", + "Star Kid (1997) 5.0\n", + "Someone Else's America (1995) 5.0\n", + "Name: rating, dtype: float64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 21 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "KmZdHvuw-mUi", + "outputId": "95482267-f1ef-4b91-e35d-d47f2e6b12be" + }, + "source": [ + "ratings = pd.DataFrame(df.groupby('title')['rating'].mean())\r\n", + "ratings.head()" + ], + "execution_count": 23, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
rating
title
'Til There Was You (1997)2.333333
1-900 (1994)2.600000
101 Dalmatians (1996)2.908257
12 Angry Men (1957)4.344000
187 (1997)3.024390
\n", + "
" + ], + "text/plain": [ + " rating\n", + "title \n", + "'Til There Was You (1997) 2.333333\n", + "1-900 (1994) 2.600000\n", + "101 Dalmatians (1996) 2.908257\n", + "12 Angry Men (1957) 4.344000\n", + "187 (1997) 3.024390" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "UH9DKQyS-pfw", + "outputId": "0df69b0d-9ed0-42c2-bc04-4f9e10340587" + }, + "source": [ + "ratings['num of ratings'] = pd.DataFrame(df.groupby('title')['rating'].count())\r\n", + "ratings.head()" + ], + "execution_count": 24, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
ratingnum of ratings
title
'Til There Was You (1997)2.3333339
1-900 (1994)2.6000005
101 Dalmatians (1996)2.908257109
12 Angry Men (1957)4.344000125
187 (1997)3.02439041
\n", + "
" + ], + "text/plain": [ + " rating num of ratings\n", + "title \n", + "'Til There Was You (1997) 2.333333 9\n", + "1-900 (1994) 2.600000 5\n", + "101 Dalmatians (1996) 2.908257 109\n", + "12 Angry Men (1957) 4.344000 125\n", + "187 (1997) 3.024390 41" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 24 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 282 + }, + "id": "TH30PYKDAySM", + "outputId": "d08c4695-bf47-4d47-fe1b-f68a6041a1f8" + }, + "source": [ + "plt.figure(figsize=(10,4))\r\n", + "ratings['num of ratings'].hist(bins=70)" + ], + "execution_count": 25, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 25 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 282 + }, + "id": "-6RyQaXkA277", + "outputId": "4183ed7b-ce14-4292-8a54-54477cd78591" + }, + "source": [ + "plt.figure(figsize=(10,4))\r\n", + "ratings['rating'].hist(bins=70)" + ], + "execution_count": 26, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 26 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 458 + }, + "id": "iS93Hk31A8BF", + "outputId": "0d73fd95-b59c-4751-8fa5-5b3977a709d5" + }, + "source": [ + "sns.jointplot(x='rating',y='num of ratings',data=ratings,alpha=0.5)" + ], + "execution_count": 27, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 27 + }, + { + "output_type": "display_data", + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "tags": [], + "needs_background": "light" + } + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 386 + }, + "id": "XeXnaxvqA-yu", + "outputId": "ac74f7ac-19cd-4d5d-9efd-97c835e89f7e" + }, + "source": [ + "moviemat = df.pivot_table(index='user_id',columns='title',values='rating')\r\n", + "moviemat.head()" + ], + "execution_count": 28, + "outputs": [ + { + "output_type": "execute_result", + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
title'Til There Was You (1997)1-900 (1994)101 Dalmatians (1996)12 Angry Men (1957)187 (1997)2 Days in the Valley (1996)20,000 Leagues Under the Sea (1954)2001: A Space Odyssey (1968)3 Ninjas: High Noon At Mega Mountain (1998)39 Steps, The (1935)8 1/2 (1963)8 Heads in a Duffel Bag (1997)8 Seconds (1994)A Chef in Love (1996)Above the Rim (1994)Absolute Power (1997)Abyss, The (1989)Ace Ventura: Pet Detective (1994)Ace Ventura: When Nature Calls (1995)Across the Sea of Time (1995)Addams Family Values (1993)Addicted to Love (1997)Addiction, The (1995)Adventures of Pinocchio, The (1996)Adventures of Priscilla, Queen of the Desert, The (1994)Adventures of Robin Hood, The (1938)Affair to Remember, An (1957)African Queen, The (1951)Afterglow (1997)Age of Innocence, The (1993)Aiqing wansui (1994)Air Bud (1997)Air Force One (1997)Air Up There, The (1994)Airheads (1994)Akira (1988)Aladdin (1992)Aladdin and the King of Thieves (1996)Alaska (1996)Albino Alligator (1996)...Whole Wide World, The (1996)Widows' Peak (1994)Wife, The (1995)Wild America (1997)Wild Bill (1995)Wild Bunch, The (1969)Wild Reeds (1994)Wild Things (1998)William Shakespeare's Romeo and Juliet (1996)Willy Wonka and the Chocolate Factory (1971)Window to Paris (1994)Wings of Courage (1995)Wings of Desire (1987)Wings of the Dove, The (1997)Winnie the Pooh and the Blustery Day (1968)Winter Guest, The (1997)Wishmaster (1997)With Honors (1994)Withnail and I (1987)Witness (1985)Wizard of Oz, The (1939)Wolf (1994)Woman in Question, The (1950)Women, The (1939)Wonderful, Horrible Life of Leni Riefenstahl, The (1993)Wonderland (1997)Wooden Man's Bride, The (Wu Kui) (1994)World of Apu, The (Apur Sansar) (1959)Wrong Trousers, The (1993)Wyatt Earp (1994)Yankee Zulu (1994)Year of the Horse (1997)You So Crazy (1994)Young Frankenstein (1974)Young Guns (1988)Young Guns II (1990)Young Poisoner's Handbook, The (1995)Zeus and Roxanne (1997)unknownÁ köldum klaka (Cold Fever) (1994)
user_id
0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
1NaNNaN2.05.0NaNNaN3.04.0NaNNaNNaNNaNNaNNaNNaNNaN3.03.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaN4.04.0NaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaN4.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN4.0NaNNaNNaNNaNNaNNaNNaN5.0NaNNaNNaNNaN5.03.0NaNNaNNaN4.0NaN
2NaNNaNNaNNaNNaNNaNNaNNaN1.0NaNNaNNaNNaNNaNNaN3.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN4.0NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN5.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
3NaNNaNNaNNaN2.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN2.0NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN5.0NaNNaNNaNNaNNaNNaNNaN...NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN5.0NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

5 rows × 1664 columns

\n", + "
" + ], + "text/plain": [ + "title 'Til There Was You (1997) ... Á köldum klaka (Cold Fever) (1994)\n", + "user_id ... \n", + "0 NaN ... NaN\n", + "1 NaN ... NaN\n", + "2 NaN ... NaN\n", + "3 NaN ... NaN\n", + "4 NaN ... NaN\n", + "\n", + "[5 rows x 1664 columns]" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 28 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 390 + }, + "id": "RVRm8HgrBCLh", + "outputId": "12d30675-eefe-4841-dedc-96a83dc7f2f9" + }, + "source": [ + "ratings.sort_values('num of ratings',ascending=False).head(10)" + ], + "execution_count": 29, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
ratingnum of ratings
title
Star Wars (1977)4.359589584
Contact (1997)3.803536509
Fargo (1996)4.155512508
Return of the Jedi (1983)4.007890507
Liar Liar (1997)3.156701485
English Patient, The (1996)3.656965481
Scream (1996)3.441423478
Toy Story (1995)3.878319452
Air Force One (1997)3.631090431
Independence Day (ID4) (1996)3.438228429
\n", + "
" + ], + "text/plain": [ + " rating num of ratings\n", + "title \n", + "Star Wars (1977) 4.359589 584\n", + "Contact (1997) 3.803536 509\n", + "Fargo (1996) 4.155512 508\n", + "Return of the Jedi (1983) 4.007890 507\n", + "Liar Liar (1997) 3.156701 485\n", + "English Patient, The (1996) 3.656965 481\n", + "Scream (1996) 3.441423 478\n", + "Toy Story (1995) 3.878319 452\n", + "Air Force One (1997) 3.631090 431\n", + "Independence Day (ID4) (1996) 3.438228 429" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 29 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "emvFaNKgBFmI", + "outputId": "4ddd3cad-d4e2-438d-8bb0-844bb7971b1d" + }, + "source": [ + "ratings.head()" + ], + "execution_count": 30, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
ratingnum of ratings
title
'Til There Was You (1997)2.3333339
1-900 (1994)2.6000005
101 Dalmatians (1996)2.908257109
12 Angry Men (1957)4.344000125
187 (1997)3.02439041
\n", + "
" + ], + "text/plain": [ + " rating num of ratings\n", + "title \n", + "'Til There Was You (1997) 2.333333 9\n", + "1-900 (1994) 2.600000 5\n", + "101 Dalmatians (1996) 2.908257 109\n", + "12 Angry Men (1957) 4.344000 125\n", + "187 (1997) 3.024390 41" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 30 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "F9DtDXbgBI6e", + "outputId": "2aaf1bf8-4737-4730-dba1-fd9a6fd7f2da" + }, + "source": [ + "starwars_user_ratings = moviemat['Star Wars (1977)']\r\n", + "liarliar_user_ratings = moviemat['Liar Liar (1997)']\r\n", + "starwars_user_ratings.head()" + ], + "execution_count": 31, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "user_id\n", + "0 5.0\n", + "1 5.0\n", + "2 5.0\n", + "3 NaN\n", + "4 5.0\n", + "Name: Star Wars (1977), dtype: float64" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 31 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "5-mfFDXmBOF0", + "outputId": "94f0ecbe-1896-48af-f256-bb7aa7c6316a" + }, + "source": [ + "similar_to_starwars = moviemat.corrwith(starwars_user_ratings)\r\n", + "similar_to_liarliar = moviemat.corrwith(liarliar_user_ratings)" + ], + "execution_count": 32, + "outputs": [ + { + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.6/dist-packages/numpy/lib/function_base.py:2551: RuntimeWarning: Degrees of freedom <= 0 for slice\n", + " c = cov(x, y, rowvar)\n", + "/usr/local/lib/python3.6/dist-packages/numpy/lib/function_base.py:2480: RuntimeWarning: divide by zero encountered in true_divide\n", + " c *= np.true_divide(1, fact)\n" + ], + "name": "stderr" + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "7qG0HESLBSEj", + "outputId": "006a2af6-9162-4f73-8dd6-14ffc207b3ce" + }, + "source": [ + "corr_starwars = pd.DataFrame(similar_to_starwars,columns=['Correlation'])\r\n", + "corr_starwars.dropna(inplace=True)\r\n", + "corr_starwars.head()" + ], + "execution_count": 34, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Correlation
title
'Til There Was You (1997)0.872872
1-900 (1994)-0.645497
101 Dalmatians (1996)0.211132
12 Angry Men (1957)0.184289
187 (1997)0.027398
\n", + "
" + ], + "text/plain": [ + " Correlation\n", + "title \n", + "'Til There Was You (1997) 0.872872\n", + "1-900 (1994) -0.645497\n", + "101 Dalmatians (1996) 0.211132\n", + "12 Angry Men (1957) 0.184289\n", + "187 (1997) 0.027398" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 34 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 390 + }, + "id": "5_v78nBuBVU7", + "outputId": "6e58513e-cb11-4799-a6ad-5f16a387d4f2" + }, + "source": [ + "corr_starwars.sort_values('Correlation',ascending=False).head(10)" + ], + "execution_count": 35, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Correlation
title
Hollow Reed (1996)1.0
Commandments (1997)1.0
Cosi (1996)1.0
No Escape (1994)1.0
Stripes (1981)1.0
Star Wars (1977)1.0
Man of the Year (1995)1.0
Beans of Egypt, Maine, The (1994)1.0
Old Lady Who Walked in the Sea, The (Vieille qui marchait dans la mer, La) (1991)1.0
Outlaw, The (1943)1.0
\n", + "
" + ], + "text/plain": [ + " Correlation\n", + "title \n", + "Hollow Reed (1996) 1.0\n", + "Commandments (1997) 1.0\n", + "Cosi (1996) 1.0\n", + "No Escape (1994) 1.0\n", + "Stripes (1981) 1.0\n", + "Star Wars (1977) 1.0\n", + "Man of the Year (1995) 1.0\n", + "Beans of Egypt, Maine, The (1994) 1.0\n", + "Old Lady Who Walked in the Sea, The (Vieille qu... 1.0\n", + "Outlaw, The (1943) 1.0" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 35 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "CuuIccGyBaDn", + "outputId": "32eec775-15bb-4b51-a4a4-cdcc76055780" + }, + "source": [ + "corr_starwars = corr_starwars.join(ratings['num of ratings'])\r\n", + "corr_starwars.head()" + ], + "execution_count": 36, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Correlationnum of ratings
title
'Til There Was You (1997)0.8728729
1-900 (1994)-0.6454975
101 Dalmatians (1996)0.211132109
12 Angry Men (1957)0.184289125
187 (1997)0.02739841
\n", + "
" + ], + "text/plain": [ + " Correlation num of ratings\n", + "title \n", + "'Til There Was You (1997) 0.872872 9\n", + "1-900 (1994) -0.645497 5\n", + "101 Dalmatians (1996) 0.211132 109\n", + "12 Angry Men (1957) 0.184289 125\n", + "187 (1997) 0.027398 41" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 36 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "SYvErf57Bben", + "outputId": "83b00bbc-25e5-4802-e544-e708c827aa0c" + }, + "source": [ + "corr_starwars[corr_starwars['num of ratings']>100].sort_values('Correlation',ascending=False).head()" + ], + "execution_count": 37, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Correlationnum of ratings
title
Star Wars (1977)1.000000584
Empire Strikes Back, The (1980)0.748353368
Return of the Jedi (1983)0.672556507
Raiders of the Lost Ark (1981)0.536117420
Austin Powers: International Man of Mystery (1997)0.377433130
\n", + "
" + ], + "text/plain": [ + " Correlation num of ratings\n", + "title \n", + "Star Wars (1977) 1.000000 584\n", + "Empire Strikes Back, The (1980) 0.748353 368\n", + "Return of the Jedi (1983) 0.672556 507\n", + "Raiders of the Lost Ark (1981) 0.536117 420\n", + "Austin Powers: International Man of Mystery (1997) 0.377433 130" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 37 + } + ] + }, + { + "cell_type": "code", + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 235 + }, + "id": "zC0NCdvnBiEG", + "outputId": "3c44a4c7-8a2c-47b2-be19-ce06cc20c7b3" + }, + "source": [ + "corr_liarliar = pd.DataFrame(similar_to_liarliar,columns=['Correlation'])\r\n", + "corr_liarliar.dropna(inplace=True)\r\n", + "corr_liarliar = corr_liarliar.join(ratings['num of ratings'])\r\n", + "corr_liarliar[corr_liarliar['num of ratings']>100].sort_values('Correlation',ascending=False).head()" + ], + "execution_count": 38, + "outputs": [ + { + "output_type": "execute_result", + "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", + "
Correlationnum of ratings
title
Liar Liar (1997)1.000000485
Batman Forever (1995)0.516968114
Mask, The (1994)0.484650129
Down Periscope (1996)0.472681101
Con Air (1997)0.469828137
\n", + "
" + ], + "text/plain": [ + " Correlation num of ratings\n", + "title \n", + "Liar Liar (1997) 1.000000 485\n", + "Batman Forever (1995) 0.516968 114\n", + "Mask, The (1994) 0.484650 129\n", + "Down Periscope (1996) 0.472681 101\n", + "Con Air (1997) 0.469828 137" + ] + }, + "metadata": { + "tags": [] + }, + "execution_count": 38 + } + ] + } + ] +} \ No newline at end of file diff --git a/Recommender Systems with Python.ipynb b/Jupyter Notebook/Recommender Systems with Python.ipynb similarity index 100% rename from Recommender Systems with Python.ipynb rename to Jupyter Notebook/Recommender Systems with Python.ipynb