Skip to content

Instantly share code, notes, and snippets.

@gabrielsanchez
Created February 17, 2019 19:25
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 gabrielsanchez/e31153031d6624cee30f1ef57baace51 to your computer and use it in GitHub Desktop.
Save gabrielsanchez/e31153031d6624cee30f1ef57baace51 to your computer and use it in GitHub Desktop.
LastFM Recommendation System.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "LastFM Recommendation System.ipynb",
"version": "0.3.2",
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/gabrielsanchez/e31153031d6624cee30f1ef57baace51/lastfm-recommendation-system.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"metadata": {
"id": "7QlfHcB0YbmK",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Last.fm Recommendation System using Fast.ai\n"
]
},
{
"metadata": {
"id": "7t9CNGgqYsOd",
"colab_type": "code",
"outputId": "b8b87908-14ed-447d-ea59-89e0e6d34bb2",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 2737
}
},
"cell_type": "code",
"source": [
"!pip install fastai"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"Collecting fastai\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/50/6d/9d0d6e17a78b0598d5e8c49a0d03ffc7ff265ae62eca3e2345fab14edb9b/fastai-0.7.0-py3-none-any.whl (112kB)\n",
"\u001b[K 100% |████████████████████████████████| 122kB 3.8MB/s \n",
"\u001b[?25hCollecting jedi (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/3d/68/8bbf0ef969095a13ba0d4c77c1945bd86e9811960d052510551d29a2f23b/jedi-0.12.1-py2.py3-none-any.whl (174kB)\n",
"\u001b[K 100% |████████████████████████████████| 184kB 7.1MB/s \n",
"\u001b[?25hRequirement already satisfied: pyparsing in /usr/local/lib/python3.6/dist-packages (from fastai) (2.2.1)\n",
"Requirement already satisfied: entrypoints in /usr/local/lib/python3.6/dist-packages (from fastai) (0.2.3)\n",
"Requirement already satisfied: testpath in /usr/local/lib/python3.6/dist-packages (from fastai) (0.4)\n",
"Requirement already satisfied: certifi in /usr/local/lib/python3.6/dist-packages (from fastai) (2018.8.24)\n",
"Requirement already satisfied: python-dateutil in /usr/local/lib/python3.6/dist-packages (from fastai) (2.5.3)\n",
"Collecting widgetsnbextension (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/8a/81/35789a3952afb48238289171728072d26d6e76649ddc8b3588657a2d78c1/widgetsnbextension-3.4.2-py2.py3-none-any.whl (2.2MB)\n",
"\u001b[K 100% |████████████████████████████████| 2.2MB 1.0MB/s \n",
"\u001b[?25hRequirement already satisfied: matplotlib in /usr/local/lib/python3.6/dist-packages (from fastai) (2.1.2)\n",
"Collecting torch<0.4 (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/5b/a5/e8b50b55b1abac9f1e3346c4242f1e42a82d368a8442cbd50c532922f6c4/torch-0.3.1-cp36-cp36m-manylinux1_x86_64.whl (496.4MB)\n",
"\u001b[K 100% |████████████████████████████████| 496.4MB 31kB/s \n",
"\u001b[?25hRequirement already satisfied: opencv-python in /usr/local/lib/python3.6/dist-packages (from fastai) (3.4.3.18)\n",
"Requirement already satisfied: pandas in /usr/local/lib/python3.6/dist-packages (from fastai) (0.22.0)\n",
"Requirement already satisfied: simplegeneric in /usr/local/lib/python3.6/dist-packages (from fastai) (0.8.1)\n",
"Requirement already satisfied: ipython-genutils in /usr/local/lib/python3.6/dist-packages (from fastai) (0.2.0)\n",
"Requirement already satisfied: pytz in /usr/local/lib/python3.6/dist-packages (from fastai) (2018.5)\n",
"Collecting graphviz (from fastai)\n",
" Downloading https://files.pythonhosted.org/packages/47/87/313cd4ea4f75472826acb74c57f94fc83e04ba93e4ccf35656f6b7f502e2/graphviz-0.9-py2.py3-none-any.whl\n",
"Collecting feather-format (from fastai)\n",
" Downloading https://files.pythonhosted.org/packages/08/55/940b97cc6f19a19f5dab9efef2f68a0ce43a7632f858b272391f0b851a7e/feather-format-0.4.0.tar.gz\n",
"Requirement already satisfied: Pillow in /usr/local/lib/python3.6/dist-packages (from fastai) (4.0.0)\n",
"Requirement already satisfied: scipy in /usr/local/lib/python3.6/dist-packages (from fastai) (0.19.1)\n",
"Requirement already satisfied: traitlets in /usr/local/lib/python3.6/dist-packages (from fastai) (4.3.2)\n",
"Requirement already satisfied: tqdm in /usr/local/lib/python3.6/dist-packages (from fastai) (4.26.0)\n",
"Requirement already satisfied: decorator in /usr/local/lib/python3.6/dist-packages (from fastai) (4.3.0)\n",
"Collecting plotnine (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/fe/49/7af942bc63277dfca6ad397415f4cff60789c56d173b1f7edf0bd30e27e0/plotnine-0.4.0-py2.py3-none-any.whl (3.6MB)\n",
"\u001b[K 100% |████████████████████████████████| 3.6MB 3.9MB/s \n",
"\u001b[?25hRequirement already satisfied: bleach in /usr/local/lib/python3.6/dist-packages (from fastai) (2.1.4)\n",
"Collecting ipywidgets (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/30/9a/a008c7b1183fac9e52066d80a379b3c64eab535bd9d86cdc29a0b766fd82/ipywidgets-7.4.2-py2.py3-none-any.whl (111kB)\n",
"\u001b[K 100% |████████████████████████████████| 112kB 28.9MB/s \n",
"\u001b[?25hRequirement already satisfied: wcwidth in /usr/local/lib/python3.6/dist-packages (from fastai) (0.1.7)\n",
"Collecting sklearn-pandas (from fastai)\n",
" Downloading https://files.pythonhosted.org/packages/7e/9c/c94f46b40b86d2c77c46c4c1b858fc66c117b4390665eca28f2e0812db45/sklearn_pandas-1.7.0-py2.py3-none-any.whl\n",
"Requirement already satisfied: Pygments in /usr/local/lib/python3.6/dist-packages (from fastai) (2.1.3)\n",
"Requirement already satisfied: numpy in /usr/local/lib/python3.6/dist-packages (from fastai) (1.14.6)\n",
"Requirement already satisfied: MarkupSafe in /usr/local/lib/python3.6/dist-packages (from fastai) (1.0)\n",
"Requirement already satisfied: seaborn in /usr/local/lib/python3.6/dist-packages (from fastai) (0.7.1)\n",
"Requirement already satisfied: jsonschema in /usr/local/lib/python3.6/dist-packages (from fastai) (2.6.0)\n",
"Requirement already satisfied: pyzmq in /usr/local/lib/python3.6/dist-packages (from fastai) (16.0.4)\n",
"Collecting torchvision (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/ca/0d/f00b2885711e08bd71242ebe7b96561e6f6d01fdb4b9dcf4d37e2e13c5e1/torchvision-0.2.1-py2.py3-none-any.whl (54kB)\n",
"\u001b[K 100% |████████████████████████████████| 61kB 23.9MB/s \n",
"\u001b[?25hRequirement already satisfied: pickleshare in /usr/local/lib/python3.6/dist-packages (from fastai) (0.7.5)\n",
"Requirement already satisfied: tornado in /usr/local/lib/python3.6/dist-packages (from fastai) (4.5.3)\n",
"Requirement already satisfied: ipykernel in /usr/local/lib/python3.6/dist-packages (from fastai) (4.6.1)\n",
"Collecting torchtext (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/78/90/474d5944d43001a6e72b9aaed5c3e4f77516fbef2317002da2096fd8b5ea/torchtext-0.2.3.tar.gz (42kB)\n",
"\u001b[K 100% |████████████████████████████████| 51kB 22.5MB/s \n",
"\u001b[?25hRequirement already satisfied: Jinja2 in /usr/local/lib/python3.6/dist-packages (from fastai) (2.10)\n",
"Requirement already satisfied: ipython in /usr/local/lib/python3.6/dist-packages (from fastai) (5.5.0)\n",
"Requirement already satisfied: ptyprocess in /usr/local/lib/python3.6/dist-packages (from fastai) (0.6.0)\n",
"Requirement already satisfied: cycler in /usr/local/lib/python3.6/dist-packages (from fastai) (0.10.0)\n",
"Collecting jupyter (from fastai)\n",
" Downloading https://files.pythonhosted.org/packages/83/df/0f5dd132200728a86190397e1ea87cd76244e42d39ec5e88efd25b2abd7e/jupyter-1.0.0-py2.py3-none-any.whl\n",
"Collecting pandas-summary (from fastai)\n",
" Downloading https://files.pythonhosted.org/packages/97/55/ea54109a4e7a8e7342bdf23e9382c858224263d984b0d95610568e564f59/pandas_summary-0.0.5-py2.py3-none-any.whl\n",
"Requirement already satisfied: webencodings in /usr/local/lib/python3.6/dist-packages (from fastai) (0.5.1)\n",
"Requirement already satisfied: html5lib in /usr/local/lib/python3.6/dist-packages (from fastai) (1.0.1)\n",
"Collecting bcolz (from fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/5c/4e/23942de9d5c0fb16f10335fa83e52b431bcb8c0d4a8419c9ac206268c279/bcolz-1.2.1.tar.gz (1.5MB)\n",
"\u001b[K 100% |████████████████████████████████| 1.5MB 7.8MB/s \n",
"\u001b[?25hRequirement already satisfied: PyYAML in /usr/local/lib/python3.6/dist-packages (from fastai) (3.13)\n",
"Collecting isoweek (from fastai)\n",
" Downloading https://files.pythonhosted.org/packages/c2/d4/fe7e2637975c476734fcbf53776e650a29680194eb0dd21dbdc020ca92de/isoweek-1.3.3-py2.py3-none-any.whl\n",
"Collecting parso>=0.3.0 (from jedi->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/09/51/9c48a46334be50c13d25a3afe55fa05c445699304c5ad32619de953a2305/parso-0.3.1-py2.py3-none-any.whl (88kB)\n",
"\u001b[K 100% |████████████████████████████████| 92kB 17.2MB/s \n",
"\u001b[?25hRequirement already satisfied: six>=1.5 in /usr/local/lib/python3.6/dist-packages (from python-dateutil->fastai) (1.11.0)\n",
"Requirement already satisfied: notebook>=4.4.1 in /usr/local/lib/python3.6/dist-packages (from widgetsnbextension->fastai) (5.2.2)\n",
"Collecting pyarrow>=0.4.0 (from feather-format->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/c9/b8/076ebd968f3c6d4e9b6e5de696f0b19964a3d4b7dc020fd32db4e868ad74/pyarrow-0.10.0-cp36-cp36m-manylinux1_x86_64.whl (11.6MB)\n",
"\u001b[K 100% |████████████████████████████████| 11.6MB 807kB/s \n",
"\u001b[?25hRequirement already satisfied: olefile in /usr/local/lib/python3.6/dist-packages (from Pillow->fastai) (0.46)\n",
"Collecting descartes>=1.1.0 (from plotnine->fastai)\n",
" Downloading https://files.pythonhosted.org/packages/e5/b6/1ed2eb03989ae574584664985367ba70cd9cf8b32ee8cad0e8aaeac819f3/descartes-1.1.0-py3-none-any.whl\n",
"Collecting mizani>=0.4.5 (from plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/52/01/8a3b4c6e45749674a1e5241174b4b63cd6435125e124bec275f3e02c96ac/mizani-0.4.6-py2.py3-none-any.whl (65kB)\n",
"\u001b[K 100% |████████████████████████████████| 71kB 21.5MB/s \n",
"\u001b[?25hCollecting geopandas>=0.3.0 (from plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/24/11/d77c157c16909bd77557d00798b05a5b6615ed60acb5900fbe6a65d35e93/geopandas-0.4.0-py2.py3-none-any.whl (899kB)\n",
"\u001b[K 100% |████████████████████████████████| 901kB 3.7MB/s \n",
"\u001b[?25hRequirement already satisfied: patsy>=0.4.1 in /usr/local/lib/python3.6/dist-packages (from plotnine->fastai) (0.5.0)\n",
"Requirement already satisfied: statsmodels>=0.8.0 in /usr/local/lib/python3.6/dist-packages (from plotnine->fastai) (0.8.0)\n",
"Requirement already satisfied: nbformat>=4.2.0 in /usr/local/lib/python3.6/dist-packages (from ipywidgets->fastai) (4.4.0)\n",
"Requirement already satisfied: scikit-learn>=0.15.0 in /usr/local/lib/python3.6/dist-packages (from sklearn-pandas->fastai) (0.19.2)\n",
"Requirement already satisfied: jupyter-client in /usr/local/lib/python3.6/dist-packages (from ipykernel->fastai) (5.2.3)\n",
"Requirement already satisfied: requests in /usr/local/lib/python3.6/dist-packages (from torchtext->fastai) (2.18.4)\n",
"Requirement already satisfied: prompt-toolkit<2.0.0,>=1.0.4 in /usr/local/lib/python3.6/dist-packages (from ipython->fastai) (1.0.15)\n",
"Requirement already satisfied: pexpect; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from ipython->fastai) (4.6.0)\n",
"Requirement already satisfied: setuptools>=18.5 in /usr/local/lib/python3.6/dist-packages (from ipython->fastai) (39.1.0)\n",
"Requirement already satisfied: nbconvert in /usr/local/lib/python3.6/dist-packages (from jupyter->fastai) (5.4.0)\n",
"Collecting qtconsole (from jupyter->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/ff/1f/b340d52dee46fbbe8a097dce76d1197258bb599692159d94c80921fef9eb/qtconsole-4.4.1-py2.py3-none-any.whl (112kB)\n",
"\u001b[K 100% |████████████████████████████████| 112kB 29.4MB/s \n",
"\u001b[?25hCollecting jupyter-console (from jupyter->fastai)\n",
" Downloading https://files.pythonhosted.org/packages/77/82/6469cd7fccf7958cbe5dce2e623f1e3c5e27f1bb1ad36d90519bc2d5d370/jupyter_console-5.2.0-py2.py3-none-any.whl\n",
"Requirement already satisfied: jupyter-core in /usr/local/lib/python3.6/dist-packages (from notebook>=4.4.1->widgetsnbextension->fastai) (4.4.0)\n",
"Requirement already satisfied: terminado>=0.3.3; sys_platform != \"win32\" in /usr/local/lib/python3.6/dist-packages (from notebook>=4.4.1->widgetsnbextension->fastai) (0.8.1)\n",
"Collecting palettable (from mizani>=0.4.5->plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/56/8a/84537c0354f0d1f03bf644b71bf8e0a50db9c1294181905721a5f3efbf66/palettable-3.1.1-py2.py3-none-any.whl (77kB)\n",
"\u001b[K 100% |████████████████████████████████| 81kB 22.4MB/s \n",
"\u001b[?25hCollecting fiona (from geopandas>=0.3.0->plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/e3/bf/029958f4e3811ce7017fb5805d5203e8bde6c1816b902964acb2dec67863/Fiona-1.7.13-cp36-cp36m-manylinux1_x86_64.whl (15.8MB)\n",
"\u001b[K 100% |████████████████████████████████| 15.8MB 2.4MB/s \n",
"\u001b[?25hCollecting shapely (from geopandas>=0.3.0->plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/38/b6/b53f19062afd49bb5abd049aeed36f13bf8d57ef8f3fa07a5203531a0252/Shapely-1.6.4.post2-cp36-cp36m-manylinux1_x86_64.whl (1.5MB)\n",
"\u001b[K 100% |████████████████████████████████| 1.5MB 8.5MB/s \n",
"\u001b[?25hCollecting pyproj (from geopandas>=0.3.0->plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/29/72/5c1888c4948a0c7b736d10e0f0f69966e7c0874a660222ed0a2c2c6daa9f/pyproj-1.9.5.1.tar.gz (4.4MB)\n",
"\u001b[K 100% |████████████████████████████████| 4.4MB 3.5MB/s \n",
"\u001b[?25hRequirement already satisfied: urllib3<1.23,>=1.21.1 in /usr/local/lib/python3.6/dist-packages (from requests->torchtext->fastai) (1.22)\n",
"Requirement already satisfied: idna<2.7,>=2.5 in /usr/local/lib/python3.6/dist-packages (from requests->torchtext->fastai) (2.6)\n",
"Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python3.6/dist-packages (from requests->torchtext->fastai) (3.0.4)\n",
"Requirement already satisfied: mistune>=0.8.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->fastai) (0.8.3)\n",
"Requirement already satisfied: pandocfilters>=1.4.1 in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->fastai) (1.4.2)\n",
"Requirement already satisfied: defusedxml in /usr/local/lib/python3.6/dist-packages (from nbconvert->jupyter->fastai) (0.5.0)\n",
"Collecting click-plugins (from fiona->geopandas>=0.3.0->plotnine->fastai)\n",
" Downloading https://files.pythonhosted.org/packages/95/dd/fef84cf1678418f241ef542c0288bdf215bdd3e35f1fe03dc5223a2e80ba/click_plugins-1.0.4-py2.py3-none-any.whl\n",
"Collecting cligj>=0.4 (from fiona->geopandas>=0.3.0->plotnine->fastai)\n",
" Downloading https://files.pythonhosted.org/packages/e4/be/30a58b4b0733850280d01f8bd132591b4668ed5c7046761098d665ac2174/cligj-0.5.0-py3-none-any.whl\n",
"Collecting munch (from fiona->geopandas>=0.3.0->plotnine->fastai)\n",
" Downloading https://files.pythonhosted.org/packages/68/f4/260ec98ea840757a0da09e0ed8135333d59b8dfebe9752a365b04857660a/munch-2.3.2.tar.gz\n",
"Collecting click>=3.0 (from click-plugins->fiona->geopandas>=0.3.0->plotnine->fastai)\n",
"\u001b[?25l Downloading https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl (81kB)\n",
"\u001b[K 100% |████████████████████████████████| 81kB 23.4MB/s \n",
"\u001b[?25hBuilding wheels for collected packages: feather-format, torchtext, bcolz, pyproj, munch\n",
" Running setup.py bdist_wheel for feather-format ... \u001b[?25l-\b \bdone\n",
"\u001b[?25h Stored in directory: /root/.cache/pip/wheels/85/7d/12/2dfa5c0195f921ac935f5e8f27deada74972edc0ae9988a9c1\n",
" Running setup.py bdist_wheel for torchtext ... \u001b[?25l-\b \b\\\b \bdone\n",
"\u001b[?25h Stored in directory: /root/.cache/pip/wheels/42/a6/f4/b267328bde6bb680094a0c173e8e5627ccc99543abded97204\n",
" Running setup.py bdist_wheel for bcolz ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \bdone\n",
"\u001b[?25h Stored in directory: /root/.cache/pip/wheels/9f/78/26/fb8c0acb91a100dc8914bf236c4eaa4b207cb876893c40b745\n",
" Running setup.py bdist_wheel for pyproj ... \u001b[?25l-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \b-\b \b\\\b \b|\b \b/\b \bdone\n",
"\u001b[?25h Stored in directory: /root/.cache/pip/wheels/89/77/ec/a537585d1022dafde0317dd19d33c4a30d4ee61e19f25ebd8e\n",
" Running setup.py bdist_wheel for munch ... \u001b[?25l-\b \bdone\n",
"\u001b[?25h Stored in directory: /root/.cache/pip/wheels/db/bf/bc/06a3e1bfe0ab27d2e720ceb3cff3159398d92644c0cec2c125\n",
"Successfully built feather-format torchtext bcolz pyproj munch\n",
"\u001b[31mplotnine 0.4.0 has requirement scipy>=1.0.0, but you'll have scipy 0.19.1 which is incompatible.\u001b[0m\n",
"\u001b[31mtorchvision 0.2.1 has requirement pillow>=4.1.1, but you'll have pillow 4.0.0 which is incompatible.\u001b[0m\n",
"Installing collected packages: parso, jedi, widgetsnbextension, torch, graphviz, pyarrow, feather-format, descartes, palettable, mizani, click, click-plugins, cligj, munch, fiona, shapely, pyproj, geopandas, plotnine, ipywidgets, sklearn-pandas, torchvision, torchtext, qtconsole, jupyter-console, jupyter, pandas-summary, bcolz, isoweek, fastai\n",
"Successfully installed bcolz-1.2.1 click-7.0 click-plugins-1.0.4 cligj-0.5.0 descartes-1.1.0 fastai-0.7.0 feather-format-0.4.0 fiona-1.7.13 geopandas-0.4.0 graphviz-0.9 ipywidgets-7.4.2 isoweek-1.3.3 jedi-0.12.1 jupyter-1.0.0 jupyter-console-5.2.0 mizani-0.4.6 munch-2.3.2 palettable-3.1.1 pandas-summary-0.0.5 parso-0.3.1 plotnine-0.4.0 pyarrow-0.10.0 pyproj-1.9.5.1 qtconsole-4.4.1 shapely-1.6.4.post2 sklearn-pandas-1.7.0 torch-0.3.1 torchtext-0.2.3 torchvision-0.2.1 widgetsnbextension-3.4.2\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "JT09_JwcYVpA",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"%reload_ext autoreload\n",
"%autoreload 2\n",
"%matplotlib inline\n",
"\n",
"from fastai.learner import *\n",
"from fastai.column_data import CollabFilterDataset"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "ANyykO69YaJ6",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Data\n",
"http://files.grouplens.org/datasets/hetrec2011/hetrec2011-lastfm-2k.zip"
]
},
{
"metadata": {
"id": "6brDd0ROzss6",
"colab_type": "code",
"outputId": "2eaaa401-f118-49ec-d316-5b0cc43bb632",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 71
}
},
"cell_type": "code",
"source": [
"!mkdir data\n",
"!curl http://files.grouplens.org/datasets/hetrec2011/hetrec2011-lastfm-2k.zip --output lastfm.zip"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
" % Total % Received % Xferd Average Speed Time Time Time Current\n",
" Dload Upload Total Spent Left Speed\n",
"100 2528k 100 2528k 0 0 2528k 0 0:00:01 0:00:01 --:--:-- 1435k\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "gRvi3amZZEir",
"colab_type": "code",
"outputId": "54cece0e-2512-448a-e421-d40956092f90",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 179
}
},
"cell_type": "code",
"source": [
"!ls\n",
"!unzip lastfm.zip -d data"
],
"execution_count": 0,
"outputs": [
{
"output_type": "stream",
"text": [
"data lastfm.zip sample_data\n",
"Archive: lastfm.zip\n",
" inflating: data/user_friends.dat \n",
" inflating: data/user_taggedartists.dat \n",
" inflating: data/user_taggedartists-timestamps.dat \n",
" inflating: data/artists.dat \n",
" inflating: data/readme.txt \n",
" inflating: data/tags.dat \n",
" inflating: data/user_artists.dat \n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "05Iok4B21LKO",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"path=\"data/\""
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "sw3a-jAE1X5o",
"colab_type": "code",
"outputId": "06a6bfb9-c8f1-4763-ff5a-d9b27c40da4b",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
}
},
"cell_type": "code",
"source": [
"rankings = pd.read_csv(path+'user_artists.dat', sep='\\t')\n",
"rankings.head()"
],
"execution_count": 0,
"outputs": [
{
"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>userID</th>\n",
" <th>artistID</th>\n",
" <th>weight</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2</td>\n",
" <td>51</td>\n",
" <td>13883</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>52</td>\n",
" <td>11690</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2</td>\n",
" <td>53</td>\n",
" <td>11351</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2</td>\n",
" <td>54</td>\n",
" <td>10300</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>2</td>\n",
" <td>55</td>\n",
" <td>8983</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" userID artistID weight\n",
"0 2 51 13883\n",
"1 2 52 11690\n",
"2 2 53 11351\n",
"3 2 54 10300\n",
"4 2 55 8983"
]
},
"metadata": {
"tags": []
},
"execution_count": 7
}
]
},
{
"metadata": {
"id": "ywFixPYr3ZdC",
"colab_type": "code",
"outputId": "b11c1f1e-cd95-4f0f-8cda-189a16d8f243",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
}
},
"cell_type": "code",
"source": [
"artists = pd.read_csv(path+'artists.dat', sep='\\t')\n",
"artists.head()"
],
"execution_count": 0,
"outputs": [
{
"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>id</th>\n",
" <th>name</th>\n",
" <th>url</th>\n",
" <th>pictureURL</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>1</td>\n",
" <td>MALICE MIZER</td>\n",
" <td>http://www.last.fm/music/MALICE+MIZER</td>\n",
" <td>http://userserve-ak.last.fm/serve/252/10808.jpg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2</td>\n",
" <td>Diary of Dreams</td>\n",
" <td>http://www.last.fm/music/Diary+of+Dreams</td>\n",
" <td>http://userserve-ak.last.fm/serve/252/3052066.jpg</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>3</td>\n",
" <td>Carpathian Forest</td>\n",
" <td>http://www.last.fm/music/Carpathian+Forest</td>\n",
" <td>http://userserve-ak.last.fm/serve/252/40222717...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>4</td>\n",
" <td>Moi dix Mois</td>\n",
" <td>http://www.last.fm/music/Moi+dix+Mois</td>\n",
" <td>http://userserve-ak.last.fm/serve/252/54697835...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>5</td>\n",
" <td>Bella Morte</td>\n",
" <td>http://www.last.fm/music/Bella+Morte</td>\n",
" <td>http://userserve-ak.last.fm/serve/252/14789013...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" id name url \\\n",
"0 1 MALICE MIZER http://www.last.fm/music/MALICE+MIZER \n",
"1 2 Diary of Dreams http://www.last.fm/music/Diary+of+Dreams \n",
"2 3 Carpathian Forest http://www.last.fm/music/Carpathian+Forest \n",
"3 4 Moi dix Mois http://www.last.fm/music/Moi+dix+Mois \n",
"4 5 Bella Morte http://www.last.fm/music/Bella+Morte \n",
"\n",
" pictureURL \n",
"0 http://userserve-ak.last.fm/serve/252/10808.jpg \n",
"1 http://userserve-ak.last.fm/serve/252/3052066.jpg \n",
"2 http://userserve-ak.last.fm/serve/252/40222717... \n",
"3 http://userserve-ak.last.fm/serve/252/54697835... \n",
"4 http://userserve-ak.last.fm/serve/252/14789013... "
]
},
"metadata": {
"tags": []
},
"execution_count": 8
}
]
},
{
"metadata": {
"id": "ma6C5Pj_38Jd",
"colab_type": "code",
"outputId": "6f435273-6e7d-462c-9e12-f9161101e2ef",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 452
}
},
"cell_type": "code",
"source": [
"g=rankings.groupby('userID')['weight'].count()\n",
"topUsers=g.sort_values(ascending=False)[:15]\n",
"\n",
"g=rankings.groupby('artistID')['weight'].count()\n",
"topArtists=g.sort_values(ascending=False)[:15]\n",
"\n",
"top_r = rankings.join(topUsers, rsuffix='_r', how='inner', on='userID')\n",
"top_r = top_r.join(topArtists, rsuffix='_r', how='inner', on='artistID')\n",
"\n",
"pd.crosstab(top_r.userID, top_r.artistID, top_r.weight, aggfunc=np.sum)"
],
"execution_count": 0,
"outputs": [
{
"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>artistID</th>\n",
" <th>65</th>\n",
" <th>67</th>\n",
" <th>89</th>\n",
" <th>154</th>\n",
" <th>190</th>\n",
" <th>227</th>\n",
" <th>288</th>\n",
" <th>289</th>\n",
" <th>292</th>\n",
" <th>295</th>\n",
" <th>300</th>\n",
" <th>333</th>\n",
" <th>466</th>\n",
" <th>498</th>\n",
" <th>701</th>\n",
" </tr>\n",
" <tr>\n",
" <th>userID</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>677</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>754.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>332.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>678</th>\n",
" <td>127.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>67.0</td>\n",
" <td>138.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>679</th>\n",
" <td>NaN</td>\n",
" <td>736.0</td>\n",
" <td>911.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>446.0</td>\n",
" <td>4866.0</td>\n",
" <td>378.0</td>\n",
" <td>314.0</td>\n",
" <td>241.0</td>\n",
" <td>NaN</td>\n",
" <td>317.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>680</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1198.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1619.0</td>\n",
" <td>4759.0</td>\n",
" <td>1198.0</td>\n",
" <td>NaN</td>\n",
" <td>1220.0</td>\n",
" <td>NaN</td>\n",
" <td>1438.0</td>\n",
" <td>NaN</td>\n",
" <td>1898.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>681</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>162.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>303.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>682</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>429.0</td>\n",
" <td>NaN</td>\n",
" <td>241.0</td>\n",
" <td>NaN</td>\n",
" <td>494.0</td>\n",
" <td>355.0</td>\n",
" <td>NaN</td>\n",
" <td>169.0</td>\n",
" <td>1109.0</td>\n",
" <td>210.0</td>\n",
" <td>691.0</td>\n",
" <td>471.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>684</th>\n",
" <td>NaN</td>\n",
" <td>4429.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>31229.0</td>\n",
" <td>49889.0</td>\n",
" <td>15137.0</td>\n",
" <td>10213.0</td>\n",
" <td>7044.0</td>\n",
" <td>2584.0</td>\n",
" <td>2759.0</td>\n",
" <td>372.0</td>\n",
" <td>535.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>685</th>\n",
" <td>NaN</td>\n",
" <td>647.0</td>\n",
" <td>1465.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1389.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1122.0</td>\n",
" <td>1281.0</td>\n",
" <td>548.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>686</th>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>8762.0</td>\n",
" <td>1362.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>688</th>\n",
" <td>1626.0</td>\n",
" <td>135.0</td>\n",
" <td>284.0</td>\n",
" <td>NaN</td>\n",
" <td>1484.0</td>\n",
" <td>1125.0</td>\n",
" <td>134.0</td>\n",
" <td>NaN</td>\n",
" <td>210.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>435.0</td>\n",
" <td>147.0</td>\n",
" <td>164.0</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>689</th>\n",
" <td>NaN</td>\n",
" <td>311.0</td>\n",
" <td>3154.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>70.0</td>\n",
" <td>484.0</td>\n",
" <td>75.0</td>\n",
" <td>16.0</td>\n",
" <td>76.0</td>\n",
" <td>1067.0</td>\n",
" <td>192.0</td>\n",
" <td>NaN</td>\n",
" <td>34.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>690</th>\n",
" <td>NaN</td>\n",
" <td>5390.0</td>\n",
" <td>1642.0</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>1537.0</td>\n",
" <td>2134.0</td>\n",
" <td>3199.0</td>\n",
" <td>307.0</td>\n",
" <td>1824.0</td>\n",
" <td>183.0</td>\n",
" <td>686.0</td>\n",
" <td>NaN</td>\n",
" <td>1622.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
"artistID 65 67 89 154 190 227 288 289 \\\n",
"userID \n",
"677 NaN NaN 754.0 NaN NaN NaN NaN 332.0 \n",
"678 127.0 NaN NaN NaN 67.0 138.0 NaN NaN \n",
"679 NaN 736.0 911.0 NaN NaN NaN 446.0 4866.0 \n",
"680 NaN NaN 1198.0 NaN NaN NaN 1619.0 4759.0 \n",
"681 NaN NaN NaN 162.0 NaN NaN NaN NaN \n",
"682 NaN NaN 429.0 NaN 241.0 NaN 494.0 355.0 \n",
"684 NaN 4429.0 NaN NaN NaN NaN 31229.0 49889.0 \n",
"685 NaN 647.0 1465.0 NaN NaN 1389.0 NaN NaN \n",
"686 NaN NaN NaN NaN 8762.0 1362.0 NaN NaN \n",
"688 1626.0 135.0 284.0 NaN 1484.0 1125.0 134.0 NaN \n",
"689 NaN 311.0 3154.0 NaN NaN NaN 70.0 484.0 \n",
"690 NaN 5390.0 1642.0 NaN NaN NaN 1537.0 2134.0 \n",
"\n",
"artistID 292 295 300 333 466 498 701 \n",
"userID \n",
"677 NaN NaN NaN NaN NaN NaN NaN \n",
"678 NaN NaN NaN NaN NaN NaN NaN \n",
"679 378.0 314.0 241.0 NaN 317.0 NaN NaN \n",
"680 1198.0 NaN 1220.0 NaN 1438.0 NaN 1898.0 \n",
"681 NaN NaN NaN 303.0 NaN NaN NaN \n",
"682 NaN 169.0 1109.0 210.0 691.0 471.0 NaN \n",
"684 15137.0 10213.0 7044.0 2584.0 2759.0 372.0 535.0 \n",
"685 NaN NaN 1122.0 1281.0 548.0 NaN NaN \n",
"686 NaN NaN NaN NaN NaN NaN NaN \n",
"688 210.0 NaN NaN 435.0 147.0 164.0 NaN \n",
"689 75.0 16.0 76.0 1067.0 192.0 NaN 34.0 \n",
"690 3199.0 307.0 1824.0 183.0 686.0 NaN 1622.0 "
]
},
"metadata": {
"tags": []
},
"execution_count": 9
}
]
},
{
"metadata": {
"id": "7aQBpAns4uYT",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Collaborative Filtering"
]
},
{
"metadata": {
"id": "3S1jsmoP4tLp",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"val_idxs = get_cv_idxs(len(rankings))\n",
"wd=2e-10\n",
"n_factors = 50"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "_UOyz1yS8Pxl",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"@classmethod\n",
"def from_dat(cls, path, csv, user_name, item_name, rating_name):\n",
" df = pd.read_csv(os.path.join(path,csv), sep='\\t')\n",
" return cls.from_data_frame(path, df, user_name, item_name, rating_name)\n",
" \n",
"CollabFilterDataset.from_dat = from_dat"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "26S7_6W35Flb",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"cf = CollabFilterDataset.from_dat(path=path, csv='user_artists.dat', user_name='userID', item_name='artistID', rating_name='weight')\n",
"cf.ratings = np.interp(cf.ratings, (cf.min_score, cf.max_score), (1, 5))\n",
"cf.min_score = 1\n",
"cf.max_score = 5\n",
"cf.ratings\n",
"cf.cols[2] = cf.ratings\n",
"learn = cf.get_learner(n_factors, val_idxs, 64, opt_fn=optim.Adam)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "0ld9WumXCWWt",
"colab_type": "code",
"outputId": "9a7ecab8-f84f-4869-94a0-bd88964a284f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 143
}
},
"cell_type": "code",
"source": [
"learn.fit(1e-1, 2, wds=wd, cycle_len=1, cycle_mult=2)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "dcb299f75f0247e0a6054faf6835d801",
"version_minor": 0,
"version_major": 2
},
"text/plain": [
"HBox(children=(IntProgress(value=0, description='Epoch', max=3), HTML(value='')))"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"epoch trn_loss val_loss \n",
" 0 0.413174 0.472928 \n",
" 1 1.037014 1.040292 \n",
" 2 0.785219 0.797307 \n",
"\n"
],
"name": "stdout"
},
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[array([0.79731])]"
]
},
"metadata": {
"tags": []
},
"execution_count": 15
}
]
},
{
"metadata": {
"id": "CDvGpqutC9Gh",
"colab_type": "code",
"outputId": "3545820a-3bea-473d-961a-340b6e605b43",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
}
},
"cell_type": "code",
"source": [
"math.sqrt(0.79731)"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.8929221690606635"
]
},
"metadata": {
"tags": []
},
"execution_count": 16
}
]
},
{
"metadata": {
"id": "K2f2V8SY-Lwd",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"preds = learn.predict()\n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "3m6J5tJL-M5C",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"y=learn.data.val_y\n",
"sns.jointplot(preds, y, kind='hex', stat_func=None);"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "c9Wp7kW7KMQk",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Analysis"
]
},
{
"metadata": {
"id": "ZN5rv58VKO46",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"artist_names = artists.set_index('id')['name'].to_dict()\n",
"g=rankings.groupby('artistID')['weight'].count()\n",
"topArtists=g.sort_values(ascending=False).index.values[:3000]\n",
"topArtistIdx = np.array([cf.item2idx[o] for o in topArtists])"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "JwyxnPiEMJKb",
"colab_type": "code",
"outputId": "bfb1a927-0e44-45b8-c1b3-ab7552214ec3",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 125
}
},
"cell_type": "code",
"source": [
"m=learn.model; m.cuda()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"EmbeddingDotBias(\n",
" (u): Embedding(1892, 50)\n",
" (i): Embedding(17632, 50)\n",
" (ub): Embedding(1892, 1)\n",
" (ib): Embedding(17632, 1)\n",
")"
]
},
"metadata": {
"tags": []
},
"execution_count": 19
}
]
},
{
"metadata": {
"id": "7vorhPGbOBNu",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"artist_bias = to_np(m.ib(V(topArtistIdx)))\n"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "wOgK4TocOFCy",
"colab_type": "code",
"outputId": "ea154309-3a35-495d-883e-22a7763dec61",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 143
}
},
"cell_type": "code",
"source": [
"artist_bias"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"array([[-7.4693 ],\n",
" [-4.31332],\n",
" [-9.05139],\n",
" ...,\n",
" [-1.25786],\n",
" [-2.47673],\n",
" [-0.74124]], dtype=float32)"
]
},
"metadata": {
"tags": []
},
"execution_count": 21
}
]
},
{
"metadata": {
"id": "SGJlEC8BOI6h",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"artist_ratings = [(b[0], artist_names[i]) for i,b in zip(topArtists,artist_bias)]"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "X-Tc65v2OSPV",
"colab_type": "code",
"outputId": "d2704332-ea47-46e4-86a9-e0c29d160729",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 287
}
},
"cell_type": "code",
"source": [
"sorted(artist_ratings, key=lambda o: o[0])[:15]\n"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(-12.391201, 'Avril Lavigne'),\n",
" (-11.227007, 'Arcade Fire'),\n",
" (-11.06693, 'Ke$ha'),\n",
" (-10.843169, 'Christina Aguilera'),\n",
" (-10.433601, 'Incubus'),\n",
" (-10.123468, 'Neil Young'),\n",
" (-9.806967, 'Coldplay'),\n",
" (-9.712807, 'The All-American Rejects'),\n",
" (-9.571752, 'Black Sabbath'),\n",
" (-9.541443, 'Jason Derülo'),\n",
" (-9.397503, 'Death Cab for Cutie'),\n",
" (-9.159797, '3OH!3'),\n",
" (-9.146579, 'Imogen Heap'),\n",
" (-9.110454, 'Cansei de Ser Sexy'),\n",
" (-9.051386, 'Rihanna')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 23
}
]
},
{
"metadata": {
"id": "MNMBC5XXOY0o",
"colab_type": "code",
"outputId": "6409f66d-8f95-4b9b-9bd7-ebb50c39d0a0",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 287
}
},
"cell_type": "code",
"source": [
"sorted(artist_ratings, key=itemgetter(0))[:15]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(-12.391201, 'Avril Lavigne'),\n",
" (-11.227007, 'Arcade Fire'),\n",
" (-11.06693, 'Ke$ha'),\n",
" (-10.843169, 'Christina Aguilera'),\n",
" (-10.433601, 'Incubus'),\n",
" (-10.123468, 'Neil Young'),\n",
" (-9.806967, 'Coldplay'),\n",
" (-9.712807, 'The All-American Rejects'),\n",
" (-9.571752, 'Black Sabbath'),\n",
" (-9.541443, 'Jason Derülo'),\n",
" (-9.397503, 'Death Cab for Cutie'),\n",
" (-9.159797, '3OH!3'),\n",
" (-9.146579, 'Imogen Heap'),\n",
" (-9.110454, 'Cansei de Ser Sexy'),\n",
" (-9.051386, 'Rihanna')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 24
}
]
},
{
"metadata": {
"id": "801ygafaOlkd",
"colab_type": "code",
"outputId": "abd043e7-4fdf-416c-c4c3-e0faa02aed74",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 287
}
},
"cell_type": "code",
"source": [
"sorted(artist_ratings, key=lambda o: o[0], reverse=True)[:15]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(2.0086038, 'Vanilla Ninja'),\n",
" (1.9466814, 'The Frames'),\n",
" (1.9204956, 'Mario'),\n",
" (1.5561237, 'Milburn'),\n",
" (0.9877635, \"Colby O'Donis\"),\n",
" (0.74948025, 'Black Light Burns'),\n",
" (0.7322441, 'Atmosphere'),\n",
" (0.7288404, 'Dima Bilan'),\n",
" (0.68799317, 'Apulanta'),\n",
" (0.65274656, 'Set Your Goals'),\n",
" (0.6444225, '#####'),\n",
" (0.6196591, 'Los Fabulosos Cadillacs'),\n",
" (0.60897225, 'Granada'),\n",
" (0.57104546, 'Animals as Leaders'),\n",
" (0.47506717, 'Empyrium')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 26
}
]
},
{
"metadata": {
"id": "kG_5zJ0mO4xf",
"colab_type": "code",
"outputId": "7a71e70e-a9b2-42f4-973c-365f3d98ec26",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
}
},
"cell_type": "code",
"source": [
"artist_emb = to_np(m.i(V(topArtistIdx)))\n",
"artist_emb.shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(3000, 50)"
]
},
"metadata": {
"tags": []
},
"execution_count": 27
}
]
},
{
"metadata": {
"id": "LFZC-7AfO9oF",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"from sklearn.decomposition import PCA\n",
"pca = PCA(n_components=3)\n",
"artist_pca = pca.fit(artist_emb.T).components_"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "nDT3JP35PEP_",
"colab_type": "code",
"outputId": "addf5f6a-7038-4f52-9052-8f25cabb1c79",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
}
},
"cell_type": "code",
"source": [
"artist_pca.shape"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(3, 3000)"
]
},
"metadata": {
"tags": []
},
"execution_count": 30
}
]
},
{
"metadata": {
"id": "clrspJKKPJ5c",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"fac0 = artist_pca[0]\n",
"artist_comp = [(f, artist_names[i]) for f,i in zip(fac0, topArtists)]"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "XS3kN6eOPVsn",
"colab_type": "code",
"outputId": "8a1289a6-82fb-44be-f95b-e9323e46bb8a",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 197
}
},
"cell_type": "code",
"source": [
"sorted(artist_comp, key=itemgetter(0), reverse=True)[:10]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(0.05594439, 'Avenged Sevenfold'),\n",
" (0.05371948, 'Dave Gahan'),\n",
" (0.05347583, 'We The Kings'),\n",
" (0.053052608, 'Clint Mansell'),\n",
" (0.05302221, 'Incubus'),\n",
" (0.05251711, 'Astrix'),\n",
" (0.051622484, 'Christina Aguilera'),\n",
" (0.050830264, 'Ennio Morricone'),\n",
" (0.05029614, 'Rammstein'),\n",
" (0.049896482, 'Sara Bareilles')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 32
}
]
},
{
"metadata": {
"id": "5V0jcsE7Pcqc",
"colab_type": "code",
"outputId": "446de4bb-9b69-4297-d8ad-09e38d43548f",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 197
}
},
"cell_type": "code",
"source": [
"sorted(artist_comp, key=itemgetter(0))[:10]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(-0.055657957, 'Dashboard Confessional'),\n",
" (-0.03753017, \"Howlin' Wolf\"),\n",
" (-0.032830477, 'Lenny Kravitz'),\n",
" (-0.03145032, 'Greeley Estates'),\n",
" (-0.031171381, 'Diana Ross'),\n",
" (-0.030636491, 'Jim Morrison'),\n",
" (-0.029930413, 'The Donnas'),\n",
" (-0.02916971, 'Mario'),\n",
" (-0.027793055, 'Vanilla Ninja'),\n",
" (-0.027558425, 'Bonobo')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 33
}
]
},
{
"metadata": {
"id": "pCScEhsTPmOo",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"fac1 = artist_pca[1]\n",
"artist_comp = [(f, artist_names[i]) for f,i in zip(fac1, topArtists)]"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "TsviGlfwPvLt",
"colab_type": "code",
"outputId": "aeecbbeb-b492-480c-d938-15e411691b34",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 197
}
},
"cell_type": "code",
"source": [
"sorted(artist_comp, key=itemgetter(0), reverse=True)[:10]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(0.08141123, 'Johann Sebastian Bach'),\n",
" (0.07806012, 'Broken Social Scene'),\n",
" (0.07407694, 'The Mars Volta'),\n",
" (0.07356714, 'And One'),\n",
" (0.06763924, 'The Cranberries'),\n",
" (0.066341996, 'Orchestral Manoeuvres in the Dark'),\n",
" (0.064179994, 'In Extremo'),\n",
" (0.06226723, 'Foreigner'),\n",
" (0.06207752, 'Dimmu Borgir'),\n",
" (0.06154722, 'Senses Fail')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 35
}
]
},
{
"metadata": {
"id": "q3M-INP8QIkk",
"colab_type": "code",
"outputId": "34fd080b-89ad-4262-d781-47383b948d67",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 197
}
},
"cell_type": "code",
"source": [
"sorted(artist_comp, key=itemgetter(0))[:10]"
],
"execution_count": 0,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"[(-0.095526524, 'The All-American Rejects'),\n",
" (-0.08772391, 'OceanLab'),\n",
" (-0.08286612, 'Relient K'),\n",
" (-0.07758034, 'Aggro Santos'),\n",
" (-0.07557408, 'Natasha Bedingfield'),\n",
" (-0.07408473, 'Take That'),\n",
" (-0.07315423, 'Rihanna'),\n",
" (-0.07117906, 'Sara Bareilles'),\n",
" (-0.06899748, 'Mary J. Blige'),\n",
" (-0.0662622, 'The Maine')]"
]
},
"metadata": {
"tags": []
},
"execution_count": 36
}
]
},
{
"metadata": {
"id": "Rlm2FLoNQM6D",
"colab_type": "code",
"outputId": "2ae2ac65-24d3-4179-c4ee-086f7635b802",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 863
}
},
"cell_type": "code",
"source": [
"idxs = np.random.choice(len(topArtists), 50, replace=False)\n",
"X = fac0[idxs]\n",
"Y = fac1[idxs]\n",
"plt.figure(figsize=(15,15))\n",
"plt.scatter(X, Y)\n",
"for i, x, y in zip(topArtists[idxs], X, Y):\n",
" plt.text(x,y,artist_names[i], color=np.random.rand(3)*0.7, fontsize=11)\n",
"plt.show()"
],
"execution_count": 0,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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\nDwAAAAAMQcADAAAAAEMQ8AAAAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDEPAAAAAAwBAEPAAA\nAAAwBAEPAAAAAAxBwAMAAAAAQxDwAAAAAMAQBDwAAAAAMAQBDwAAAAAMQcADAAAAAEMQ8AAAAADA\nEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDEPAAAAAAwBAEPAAAAAAwBAEPAAAAAAxBwAMAAAAAQxDw\nAAAAAMAQBDwAAAAAMAQBDwAAAAAMQcADAAAAAEMQ8AAAAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAA\nAABDEPAAAAAAwBAEPAAAAAAwBAEPAAAAAAxBwAMAAAAAQxDwAAAAAMAQBDwAAAAAMAQBDwAAAAAM\nQcADAAAAAEMQ8AAAAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDEPAAAAAAwBAEPAAAAAAwBAEP\nAAAAAAxBwAMAAAAAQxDwAAAAAMAQBDwAAAAAMAQBDwAAAAAMQcADAAAAAEMQ8AAAAADAEAQ8AAAA\nADAEAQ8AAAAADEHAAwAAAABDEPAAAAAAwBAEPAAAAAAwBAEPAAAAAAxBwAMAAAAAQxDwAAAAAMAQ\nBDwAAAAAMAQBDwAAAAAMQcADAAAAAEMQ8AAAAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDEPAA\nAAAAwBAEPAAAAAAwBAEPAAAAAAxBwAMAAAAAQxDwAAAAAMAQBDwAAAAAMAQBDwAAAAAMQcADAAAA\nAEMQ8AAAAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDEPAAAAAAwBAEPAAAAAAwBAEPAAAAAAxB\nwAMAAAAAQxDwAAAAAMAQBDwAAAAAMAQBDwAAAAAMQcADAAAAAEMQ8AAAAADAEAQ8AAAAADAEAQ8A\nAAAADEHAAwAAAABDEPAAAAAAwBAEPAAAAAAwBAEPAAAAAAxBwAMAAAAAQxDwAAAAAMAQBDwAAAAA\nMAQBDwAAAAAMQcADAAAAAEMQ8AAAAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDEPAAAAAAwBAE\nPAAAAAAwBAEPAAAAAAxBwAMAAAAAQxDwAAAAAMAQBDwAAAAAMAQBDwAAAAAMQcADAAAAAEMQ8AAA\nAADAEAQ8AAAAADAEAQ8AAAAADEHAAwAAAABDBDT0RMuyXpA0UJJf0l22bS8/YN8ISU9L8kqaadv2\nkwfsayJpvaQnbdue0tD+AQAAAADVNWgGz7KsYZI627Y9SNKNkib/5pDJksZIOlXS2ZZldTtg38OS\nchrSLwAAAACgbg1donmmpM8kybbtjZKiLcuKlCTLsjpIyrFte6dt2z5JMyuPl2VZXSR1k/T14Q4c\nAAAAAFBdQwNeoqTMA15nVm6rbd8+Sc0rf54k6Z4G9gkAAAAAOIgG34P3G47f22dZ1jWSfrJte5tl\nWfVuODo6VAEBrsMcXsPEx0c0Sr848qilGaijOailGaijOailGaijGQ63jg0NeHv064ydJLWQlF7H\nvpaV286X1MGyrAsktZLktixrl23bsw/WUW5ucQOHeHji4yOUmVnQKH3jyKKWZqCO5qCWZqCO5qCW\nZqCOZqirjocS+hoa8GZJelzSa5Zl9ZW0x7btAkmybXu7ZVmRlmW1k7RL0gWSrrRt+5VfTrYsa6Kk\n7b8X7gAAAAAA9deggGfb9mLLslZalrVYkk/SbZZlXScpz7btGZImSPqw8vBptm2nHJHRAgAAAADq\n1OB78Gzbvv83m9YcsG++pEEHOXdiQ/sFAAAAANSuoU/RBAAAAAAcYwh4AAAAAGAIAh4AAAAAGIKA\nBwAAAACGIOABAAAAgCEIeAAAAABgCAIeAAAAABiCgAcAAAAAhiDgAQAAAIAhCHgAAAAAYAgC3glq\nd3GGTvruPF2z9F5du+yvGrf4Nk2y35Tf75ck3bP679pbmlXv9rp+e5auXnqPrll6r65YcpcmbnhR\nuWX5R3zcH++cqQfWPltje3LuBu0sTpckXbP0Xi3OWtWg9mfs+k5/W/NM1et1ebbOmX+ddhana2N+\nqp76+ZUa5+wo2q0z515Vr/anbPtE1yy9V9csvbfae/bWto/qPGdx1ipds/Tew+oXAAAAJ4aAxh4A\nGk9MUJTeHTBJklTu8+r8hTfovOanq2tkJz3f+6FDbu+dfs8pwOmS1+/Vm1un6aYV92vaoJflcriO\n9NBrmL77O52beLpahzY/Ym1uK9ypv615RpP7PFbV7sPdbj+sNq9rP1bXtR8rqSIU//KeAQAAAEcC\nAQ+SpDxPvsp9XsUGRUuSzpx7ld7u908lhsTr/nXPak/JXjULiZPL4dLg2L4a1/q8OttyOVy6peMV\nmpe5VAuzVmhY/ICqfT6/TxM3vKStRTvl8Xl0UlQXPdTtNu0uztCtqx7VkLhTtCZvk4rLi/Wfk59S\nQkicpqZ9oQ/TvlTzkHjFB8fW6O/7vQv1XcZ8rcuzdb/jz5KkJdnJ+r8dn2p70S7d3+cmnRExRHme\nAk3c8JJyy/JUUF6k69uN1QUthtd6DftKs3TH6sf1dM/7lBTRXpK0LHuNXtr8jj4Y+KKSczdo4oaX\nFBMUpW5RSVXnzUyfq3e2fawmrhD55dfTPe+rd+gsKi/R/6z9pwrKC1VUXqzzm5+h69uPkyS5fWX6\n29pnlFa0R5GB4Xqh9yPVzs0ty9cTP7+k3LJ8FZQX6cb2l+q85qfXq18AAACYg4B3AnJ7vMrKL1FO\nWZ6uWXqvfPIrtXC7rms3Rgkh1QPUF3tmq9xfrmmDXlamO0cXLLhRg2P71quf3k27KaVgW7WAl+cp\nlBXRXk/0uFuSdN6CG5RSsE1hribaUrRD/9vrQd3X5WY9uO45zcyYpzEtz9HkzVP0zWlTFB0UqdtW\nParIgPBq/ZzVbIje2z5Df+54pQbG9tG/U9+XX369dvLftTJ3vf6+4RWdMXCIXtr8jk6LO0WXtDpH\nxeUlGr34zxoc11cxQU2rtZdfXqg/rXhA5yYOU5/obrVe27P267rX+pOGxvfXlG2fVG1/feuHerz7\nX9SraVet2b9Re0uz6h3wstw5OjtxiC5qMUJub5kGzxmr8a0vkCTZBVv1cp/HlBASp3tX/11f7pmt\nQQfU4cWUt3V6/EBd3PIsFZWXaPSiWzQ4tq+aBkXWq28AAACYgYB3AvH6fJo2J1XJKZnaU7pXrqQQ\nnVNwi8YP7ySvvHp43SR9sOMzXdl2VNU5mwq2qH90L0lSfHCM+kb3qHd/BeVFiguOqbYtMjBM6aWZ\nuuynOxXkDFSmO1v7y/IV1qSJogOj1DminSSpRUgz5XkKlFa8Wy2bJCq6Mqj0j+mtTfmpv9t3/5iK\nMScGxymvrEBSxQzc+rwUfbb7e0lSgMOlXcUZNQLemv0bda/1J/0r9T2dkzhUHcPb1mg/pWCbTq58\nLwbE9tZ7Oz6TJI1qebYeXPeczmp2ms5qNkS9YrrW9+1SXHCMluWs0YdpXyrQESCPz6P88kJJUqfw\ntkoIiZMk9YnurtTCHdUC3tKc1dpUsEWf7vpWkhToDNDukr0EPAAAgBMMAe8EMm1Oqmav2CVJ8gdJ\nPp+qXl8xIkkjE4fqk13fVAt4Pr9fToej6rXLUb/n8vj9fq3ev1EXNK++BHJm+lytz0vR+wNeUIDT\npbGLbz2gbVeNNvzyy6lf+/f5vfXq/8C2/Kp4cEyQM1CPdrtDPaKsg557Wlw/jW11rpoGRuqO5Mc1\nbeDLiggM++0VylE5Lp/fV7X1unZjdEHz4VqYtVwTN7yosa3O1fg2F9RrzFO2fyK/X5o64EU5HA71\nn/1rHZwHvO9+/699/yLIGaiJ3e9S18hO9eoLAAAAZuIpmicIt8er5JTMWvclp2TJ7fFqRe5adQ5v\nV21fh7DWSt7/syQp252rlbnrf7cvv9+vf6W+p4iA0KqZtF9ku3PVLqyVApwubchLUVrxHpX5yups\nq3VoC+0sSVe+p1B+v18/ZSfXepzT4VS5v/yg4+ob3UPfZMyXJJV63Xp8w2SV++oOjCOanaqzmp2q\n+9b+o1qIk6SO4W21ev9GSdLi7Iondnr9Xk2y31REQJhGtTxbt3W6RmvyNh50TAfKcueqU3gbORwO\nfb93oTy+cpX5PJKk1MIdynTnSJJW7d+gzpX3BR54bd9mzJMklXhL9fiGyfLWMwwDAADAHMzgnSDy\nCt3KyXdX2+YJKNaGTh9Ikq5cOlUdIlppYve7qh0zutXZmpu5RJf9dKdahSbq5OieCqjjqZjXL7+v\noi9PgXpEJenVk5+Sw1F9pmlk4lDduuoRXb30HvWN7q7r24/T3zf+W5PqeGpnVGCE/tzhCl219G61\napKolk0SVeotrXHc4Ni+mrjhRd3fZUKd78Ftna7RI+uf15VL/qIyn0fjWp//u0+wvKvz9bppxQOa\nvHmKBseeXLX9r0k36cmNr6h5SLy6Vc6auRwuRQdF6fKldymq8j7BB7vedtD2DzS21Tn629pnNC9z\nmUY0O1XnNh+m+9b8Q3d1vl7dIztrkv2mdhbvUWRghC5sMVz7SrOrzr2z87V6dP0LVdd2WZsL/5Cn\nlwIAAODY4vjle8+OVZmZBY0ywPj4CGVmFjRG10eF2+PVw28sUfZvQp4kxUaG6KmbBig4sGYg2Fua\npeT9G3RO4jD5/D6NWTxBj3a7q86HjxyLTKvliYo6moNamoE6moNamoE6mqGuOsbHRzhqObxWzOCd\nIIIDXeqTFF91z92B+iTF1RruJCkiIEwz0+fq7W0fyyGHTovrf1yFOwAAAOBEQsA7gYwfXrGUMDkl\nS7kFpYqOCFGfpLiq7bUJDWiiyX0e+6OGCAAAAOAwEPBOIC6nU1eMSNKYYR2VV+hWVHhwnTN3AAAA\nAI4/BLwTUHCgSwnRoY09DAAAAABHGF+TAAAAAACGIOABAAAAgCEIeAAAAABgCAIeAAAAABiCgAcA\nAAAAhiDgAUA95aVnadKpt2jNjHnVtu9ak6pJp96inatsFWXn6cuHXzukdl8b9T/KS8/S+q8Xa+bj\nbx3JIVfxuMs065n39OGEZzXt9kl674a/a9Ps5Qc9Z+cqWx9OeFaStHvdFr057iEtmfJ1tWMaMuan\nT7tdeelZ9eoXAAAcGgIeAByC6NYJWj9zcbVtG2YuVnSbZpKksNgoXfjULY0xtINa+d/ZCggJ0uWv\n/k3jX7lXF/9jgpa++43KikvrdX7aik1KOqOvBl53/lEeKQ6UW7BXE6dcqOWbvqm2fcfeDZo45UJt\nS19X57kpu1ao2F1Q9frjuc9W+7M2E6dcKK/Pe5ijrs7r82rilAuPaJsAgLrxPXgAcAjC4prK6/Yo\na+sexXVoIU9pmXav2azm3TtIqpjl+++E53TLZ//Ut09NUVhclLK27lZu2j71uPBU9b9ypIpy8vXV\nI6/L5/OpmdVW8tfsJzN1l+a+/Il8Xq985V4Nv+cyNUtqo1Uf/aCfv1uqwJAgBYQE6bxHb5C3rFwz\nH39Lfknl7jKddPFQ9bzg1GrtleYXqay4VH6/Xw6HQ5HNYnTtu49W7V/wnxnas26Lyt0eterdWUNv\nG1O1b9eaVK3/apH8fr8CQ4I16IYLan1v6n+9FRe8/uvFSluxUec9dqMkadrtkzTw2vPkdP362ePe\nTTs069n3FdQkWO0H9dDit77Und9Plt/v1w+TPtT+XftUVlyqLmf11ymXn1XVps/nV25ahiITY3XR\n03+Ww+HQkilfK3XBGjmcDnUbOVB9xp6h/Iwc/TBpqjylZfKUuDXkllFq269rg/7dOFpiIltodeps\n9etybtW21ak/KDay5UHPW7Lhc50/aIJCgyMkSeNO/1u1PwEAZiLgAcAh6nrOAK3/epFOv2OcNs9d\npfYDe8hdWFLrsXl7sjT62duVn5Gt/7vmCfW/cqRWffSDmndvr6G3jtFeO03JH8+pcd7Mx9/Sxf+4\nVU1bxWvf5p367h/v6uq3H9KiN7/QDf99UmExkdq+dIMKs/KUtnyjYtomasR9V6rc7dG6LxfWaK/v\nuDM1476X9ebYh9TmlC5qN6C7Op3WS67AANlzVqowc7/G/+uvkqTPH3hVWxetVVBoiCSpVa9O6n7e\nIPm83jrD3eFeb13mvDRNg66/QJ1O66U1n82Xt6xckrTqox8UFhels++/Wj6vT1NvfqYqmO1Zv1XX\nvv+YAoIC9dalD2vf5p3yFLu1ddE6XfH6/fL7/friwf+o68gBmv2/H+iUy89Wm5MtFWXnaerN/9SN\n056UM8BV7zEebRFNYlTu9Whf7g4lRLdVWXmpduzdoFbxliRp1ebvtcL+RoGuYIU3aaoLB9+hdVvn\nasfeDZo+f5IuHnKXyjwl+m75W3I5AyQ5dN7AW5TQtI3e+eYBJcZ0UEbOFl078u+SpKUbv1TKzmUq\nLNmvscPuU2JMe2XkbNOs5W/L6yuXz+/VeQNuUXx8b+3Yu0GzV/6fXM5AecrdOn/Qn9UitpOy8nZp\n+vxJCgwIVrvEkxrx3QOAEw8BDwDqwe3xKjuvVD6fX9aZ/fTe9U9p6IRLtGHmYp024RKt/nRuree1\n7pMkSYpMjFVZUal8Xp+ytu7WSRedJklqZrVRcHiTaucU5+YrJ22vvnvm3aptZUWl8vt86nnBqfr0\nnslKOqOvks44WTFtmskZ4NLqGfP07VNT1H5wT500amiNcUQmxuiadx9VxsbtSltpa8WHs7To9c91\n5VsPaOcqW+kbtmra7ZMqrrWwRHnp2YrvePAZooZeb0hEaL3by9y8S637VrSZdEZfzX7uA0nSzlUp\nKsjM1a7VmyVJ3jKP9u/aJ0lK7NpOgcFBkqSIZjEqzS/SvpSdatmrU9Xs4Ohnb6tsx1ZZcal+eqdi\nuzPApeLcAoXHNz3kaz+aenU8Q8mpszWy343auGOxOrc8RaVlhcorytTc5Km6bfS/FBwYqu+Wv6Ul\nP3+u03tfroXrPtUlQ+9VbGQLvTz9z7pk6D1qGZcke+cyzVzyH113ztOSpKDAEF1/7jNVfcVHtdbg\n7qM0b800rUqZpfMG3qLp8yfpsuEPKSayuTJytunzRS/ppC5vqbg0X+cPnKDEmPZat3WeFqz9WOPP\neEBzV3+oPp3PUr8u5+nnHYvruiwAwFFAwAOAg/D6fJo2J1XJKZkqyMhR2/R8fbZijxKSWmvdV4tU\nmJ2vxK7t6jzf4frNTJDfL/klh/PXZYg+r6/aIa7AQLkCAzT+lXtrtHf6nZcqPyNbW39ar88feFWn\n3z5W7Qf10HUfTNSu5BSl/LhSqz76QZf/p/oyPI+7TAFBgWrerb2ad2uv/leN1H9vfU5pyzfKFRig\nnhedpn5XnF3tnJ2r7Hq+S4d4vb6K63U4HNUO9XrKa7Tn9/mqjjuwDVdQgAZdf76Szji52vHrv15c\nbYlnRSMVffn9NdfCuoICddHTExTaNPz3L+4P5PZ4lVfoll8V98N1bz9Er33xF404+TqtTv1BI06+\nTss2fqXgwCZqHttRwYEVobm0M1i1AAAgAElEQVRdYk+tsKvfr1fiLlRhyX61jEuqOuaTec9V7W+d\nUH1JarvEnpKkyNBYZeftUmHJfmXl79bniyb/Or6yYvn8PoU3idasFW+r3OuRu6xIIUEV7+O+3B06\n7aRxkqT2zOABwB+Kh6wAwEFMm5Oq2St2KTvfLb8kj9en2St2KadFWy187TN1GdHvkNuMaddce9Zv\nkSSlb9gmT4m72v7g8CaKah6rrYsrHqCRk7ZXP739lUrzi7T4rS8VkRCt3qOHqfclw5S+cZs2zlqm\njI3b1bZfV5157xXK35sjX3n1B2V8fMfz+vmbJVWvPcVulewvVFSLeLU8qZM2z0uuOuent79S7s69\nh3xd9b3esqKKB7sEhYWoYF+upIpZy+xte2qe2zZRe9ZtlSRtnpdctb3lSZ1kz1kpqSIEzp38kUry\ni+ocQ4ueHZS2YpO85RX3NH50+yQVZuWp5UkdlTJnRcUY9hfqxxenHYErbjivz6eps1P08BtL9MBr\nSzTpv8nal1uikKAINY/tqOTNs1RQnKuWcZ0l1QzJkuRQ9W01j/FXO6Zi2eavnE7XAUdKAa5ABTgD\ndf25/6j6584xr8vpcGrGguc1pOdY3XDuMxre9+oDzvu1D7+/+gcYAICjixk8AKiD2+NVckpmrfs2\nOaPU1u9X17P7H3K7fS8drq8eeUMf3fG8Yts3V1SLuBrHnPPI9frxhWla9v638pV7dfqd4xQSGaay\n4lK9/6d/KCQiVM4Al0bef42Kcws0+7kP5AoKkN/vV/8rR9a4h+z8x/+kH1/8SGs+n6+AoECVu8vU\n/6pzlJDUWvGdWyl9w1Z9+Odn5XA6lGC1UVSLeBVm7j/ka6vP9ca0TpAktevfTSs+/F5Tb3pGMe0S\n1aJnxxrnDrt9rH54/r8Kj4tSh0E9JYdDDqdDvS85XVnb9mjqzc/I7/Orw+CeahIZVucYWvToqM6n\n99W0CRUzV13O6qfwuCgN/8tlmvXP97Xp++Xyeso14Nrzjsg1N9QvHyj8IrewTE6XW9PmpKpXpzP0\n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\n5OtJPlNr/dzUz5rJ9FjLP0/yK+m8Nn6i1nr5lE+cTWxvHUsps9N5Td03ye5JPuL1cdfQyzHZ7ZuV\n5Efp1PKiKZ00z9HDMXlyOu9Vb+9udlut9X1b2seL/QzeeUker7W+JsnHknxifGcpZU6SP0lyapKT\nk3yglLJXkt9M8mR33LuS/OVUTprn6KmOpZSDk/y7JN+d2ukyUTdoH1prPSGdY+pvJmzyN0nOSfLq\nJKeXUg7bhjFMsR7rOCfJZ5P83ymdLFvUYy1fm+SI7pgzkvzVVM6Z5+qljknOSvK9WutJSd4W73F2\nCT3W8lkfSvLYlEyULdqBOl5faz25+7XFcJcIeKck+Yfu91en82SOd1ySW2qta2qtT6UTBF6d5OJ0\ngkGSrEqy9xTMlc3rtY4PJ3lLkjVTNVE265QkX0uSWuudSRaUUvZIklLKQUkeq7XeX2sdTXJld/vN\njqFveqnjcJI3JHmoP1NmM3qp5XeSvLU7/vEkc0opg1M+c8bb7jrWWi+ttf55d/wBSR7ow7x5rl6O\nyZRSXpHksCTf7MusmainOm6vF3vAW5xOQEv3iRwrpew2WX/XyiT71Vo31Fqf7rZdkOR/TcVk2axe\n67iu1joyddNkCybWaFW3bbK+lUn228oY+mO761hrfab7jxd2Lb3UcqTW+mS37V3pLC/yN7a/evnb\nmiQppfxTOu9vLnie58i26bWWn84vTkrQf73W8bBSyj+WUm4opZy2tZ28aK7BK6W8O8m7JzQfN+Hn\nga08zCb9pZTfS3J0OssZmALPRx3ZJW2pRpvrU9ddTy91ZNe0zbUspbw5nYB3+vM6I3qxzXWstf5y\nKeWoJBeXUn6p1jr2/E6N7bTVWpZSfivJjbXWfymlTM2s2F7bckzek+TDSb6c5KAk15ZSDqm1rt/c\nwBdNwKu1XpjkwvFtpZSL0knLt3Zv1DEw4cl6KJueEViS5Kbu2HelE+zOrrVueB6nzjg7u47sMibW\n6CXpLKGdrG9Jt239FsbQH73UkV1TT7Uspbw+yR8nOaPWavl7/213HUspxyRZ2V0m9oPujeUWpnM2\ngf7p5Zg8M8lBpZQ3Jtk/yXAp5YFa69VTMF8mt911rLU+mOTSbtuPSykrun3/srmdvNiXaF6VX1wv\ncFaSayf0/3OSY0sp80spc9O5buv/ddfI/tskbxm3VJP+6amOUzg/tu6qJL+WJKWUo9P5gzaUJLXW\n+5LsUUo5sPtG443d7Tc7hr7ppY7smra7lqWUPZN8Kskba61u6LBr6OWYPDHJv++O2TfJ3CSPTP3U\nmWC7a1lrPbfWemyt9fh0/jn+EeGu73r52/r2UsofdscsTucOtw9uaScDY2Mv3jv8NtUAAAELSURB\nVDPu3Yu/L0xyaDoX+p9fa72/lPLBdO5Wc2Mp5deS/Id0bmX62Vrr/yylfDzJryf52biHO31Lp0p5\n/uxAHc/str0inTXPD9daLSnqk1LKJ9N5YzGa5PeSLEuyptb6D6WUE5P8WXfTr9Za/2KyMbXWW6d+\n5oy3vXXsni34dJIDk2xI50XrLQJC//VQy99J8qdJ7h73ML9Vax3/WskU66GOs9L5KKgDksxK8uFa\n6xV9mDoT9PI6OW7snya5z8ck9F8Px+S8dK6HnZ9kt3SOySu3tI8XdcADAABoyYt9iSYAAEAzBDwA\nAIBGCHgAAACNEPAAAAAaIeABAAA0QsADAABohIAHAADQiP8PTwUj8YjaD5oAAAAASUVORK5CYII=\n",
"text/plain": [
"<matplotlib.figure.Figure at 0x7ff8f6cc9da0>"
]
},
"metadata": {
"tags": []
}
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment