{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "***\n", "***\n", "# 使用Turicreate进行音乐推荐\n", "***\n", "***\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:52:36.245161Z", "start_time": "2019-06-15T06:52:35.598667Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "import turicreate as tc" ] }, { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# 下载数据\n", "http://s3.amazonaws.com/dato-datasets/millionsong/10000.txt\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:52:43.170306Z", "start_time": "2019-06-15T06:52:40.686881Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "#train_file = 'http://s3.amazonaws.com/dato-datasets/millionsong/10000.txt'\n", "train_file = '/Users/datalab/bigdata/cjc/millionsong/song_usage_10000.txt'\n", "sf = tc.SFrame.read_csv(train_file, header=False, delimiter='\\t', verbose=False)\n", "sf = sf.rename({'X1':'user_id', 'X2':'music_id', 'X3':'rating'})" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:53:08.135628Z", "start_time": "2019-06-15T06:53:08.131503Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "train_set, test_set = sf.random_split(0.8, seed=1)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:53:19.922705Z", "start_time": "2019-06-15T06:53:18.188121Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
Preparing data set.
" ], "text/plain": [ "Preparing data set." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    Data has 1599753 observations with 76085 users and 10000 items.
" ], "text/plain": [ " Data has 1599753 observations with 76085 users and 10000 items." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    Data prepared in: 0.907738s
" ], "text/plain": [ " Data prepared in: 0.907738s" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
1599753 observations to process; with 10000 unique items.
" ], "text/plain": [ "1599753 observations to process; with 10000 unique items." ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "popularity_model = tc.popularity_recommender.create(train_set, \n", " 'user_id', 'music_id', \n", " target = 'rating')" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:53:45.311295Z", "start_time": "2019-06-15T06:53:42.362326Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
Preparing data set.
" ], "text/plain": [ "Preparing data set." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    Data has 1599753 observations with 76085 users and 10000 items.
" ], "text/plain": [ " Data has 1599753 observations with 76085 users and 10000 items." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    Data prepared in: 0.939059s
" ], "text/plain": [ " Data prepared in: 0.939059s" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Training model from provided data.
" ], "text/plain": [ "Training model from provided data." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Gathering per-item and per-user statistics.
" ], "text/plain": [ "Gathering per-item and per-user statistics." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+--------------------------------+------------+
" ], "text/plain": [ "+--------------------------------+------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Elapsed Time (Item Statistics) | % Complete |
" ], "text/plain": [ "| Elapsed Time (Item Statistics) | % Complete |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+--------------------------------+------------+
" ], "text/plain": [ "+--------------------------------+------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 1.878ms                        | 1.25       |
" ], "text/plain": [ "| 1.878ms | 1.25 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 29.154ms                       | 100        |
" ], "text/plain": [ "| 29.154ms | 100 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+--------------------------------+------------+
" ], "text/plain": [ "+--------------------------------+------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Setting up lookup tables.
" ], "text/plain": [ "Setting up lookup tables." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Processing data in one pass using dense lookup tables.
" ], "text/plain": [ "Processing data in one pass using dense lookup tables." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+-------------------------------------+------------------+-----------------+
" ], "text/plain": [ "+-------------------------------------+------------------+-----------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Elapsed Time (Constructing Lookups) | Total % Complete | Items Processed |
" ], "text/plain": [ "| Elapsed Time (Constructing Lookups) | Total % Complete | Items Processed |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+-------------------------------------+------------------+-----------------+
" ], "text/plain": [ "+-------------------------------------+------------------+-----------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 199.684ms                           | 0                | 0               |
" ], "text/plain": [ "| 199.684ms | 0 | 0 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 957.28ms                            | 100              | 10000           |
" ], "text/plain": [ "| 957.28ms | 100 | 10000 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+-------------------------------------+------------------+-----------------+
" ], "text/plain": [ "+-------------------------------------+------------------+-----------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Finalizing lookup tables.
" ], "text/plain": [ "Finalizing lookup tables." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Generating candidate set for working with new users.
" ], "text/plain": [ "Generating candidate set for working with new users." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Finished training in 2.00431s
" ], "text/plain": [ "Finished training in 2.00431s" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "item_sim_model = tc.item_similarity_recommender.create(train_set, \n", " 'user_id', 'music_id', \n", " target = 'rating', \n", " similarity_type='cosine')" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:53:59.590335Z", "start_time": "2019-06-15T06:53:51.789055Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
Preparing data set.
" ], "text/plain": [ "Preparing data set." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    Data has 1599753 observations with 76085 users and 10000 items.
" ], "text/plain": [ " Data has 1599753 observations with 76085 users and 10000 items." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
    Data prepared in: 0.930001s
" ], "text/plain": [ " Data prepared in: 0.930001s" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Training factorization_recommender for recommendations.
" ], "text/plain": [ "Training factorization_recommender for recommendations." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+--------------------------------+--------------------------------------------------+----------+
" ], "text/plain": [ "+--------------------------------+--------------------------------------------------+----------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Parameter                      | Description                                      | Value    |
" ], "text/plain": [ "| Parameter | Description | Value |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+--------------------------------+--------------------------------------------------+----------+
" ], "text/plain": [ "+--------------------------------+--------------------------------------------------+----------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| num_factors                    | Factor Dimension                                 | 8        |
" ], "text/plain": [ "| num_factors | Factor Dimension | 8 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| regularization                 | L2 Regularization on Factors                     | 1e-08    |
" ], "text/plain": [ "| regularization | L2 Regularization on Factors | 1e-08 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| solver                         | Solver used for training                         | sgd      |
" ], "text/plain": [ "| solver | Solver used for training | sgd |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| linear_regularization          | L2 Regularization on Linear Coefficients         | 1e-10    |
" ], "text/plain": [ "| linear_regularization | L2 Regularization on Linear Coefficients | 1e-10 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| max_iterations                 | Maximum Number of Iterations                     | 50       |
" ], "text/plain": [ "| max_iterations | Maximum Number of Iterations | 50 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+--------------------------------+--------------------------------------------------+----------+
" ], "text/plain": [ "+--------------------------------+--------------------------------------------------+----------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
  Optimizing model using SGD; tuning step size.
" ], "text/plain": [ " Optimizing model using SGD; tuning step size." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
  Using 199969 / 1599753 points for tuning the step size.
" ], "text/plain": [ " Using 199969 / 1599753 points for tuning the step size." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+-------------------+------------------------------------------+
" ], "text/plain": [ "+---------+-------------------+------------------------------------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Attempt | Initial Step Size | Estimated Objective Value                |
" ], "text/plain": [ "| Attempt | Initial Step Size | Estimated Objective Value |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+-------------------+------------------------------------------+
" ], "text/plain": [ "+---------+-------------------+------------------------------------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 0       | 25                | No Decrease (224.847 >= 36.2873)         |
" ], "text/plain": [ "| 0 | 25 | No Decrease (224.847 >= 36.2873) |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 1       | 6.25              | No Decrease (211.831 >= 36.2873)         |
" ], "text/plain": [ "| 1 | 6.25 | No Decrease (211.831 >= 36.2873) |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 2       | 1.5625            | No Decrease (184.589 >= 36.2873)         |
" ], "text/plain": [ "| 2 | 1.5625 | No Decrease (184.589 >= 36.2873) |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 3       | 0.390625          | No Decrease (83.9764 >= 36.2873)         |
" ], "text/plain": [ "| 3 | 0.390625 | No Decrease (83.9764 >= 36.2873) |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 4       | 0.0976562         | 11.3523                                  |
" ], "text/plain": [ "| 4 | 0.0976562 | 11.3523 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 5       | 0.0488281         | 7.5686                                   |
" ], "text/plain": [ "| 5 | 0.0488281 | 7.5686 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 6       | 0.0244141         | 21.6581                                  |
" ], "text/plain": [ "| 6 | 0.0244141 | 21.6581 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+-------------------+------------------------------------------+
" ], "text/plain": [ "+---------+-------------------+------------------------------------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Final   | 0.0488281         | 7.5686                                   |
" ], "text/plain": [ "| Final | 0.0488281 | 7.5686 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+-------------------+------------------------------------------+
" ], "text/plain": [ "+---------+-------------------+------------------------------------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Starting Optimization.
" ], "text/plain": [ "Starting Optimization." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+--------------+-------------------+-----------------------+-------------+
" ], "text/plain": [ "+---------+--------------+-------------------+-----------------------+-------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Iter.   | Elapsed Time | Approx. Objective | Approx. Training RMSE | Step Size   |
" ], "text/plain": [ "| Iter. | Elapsed Time | Approx. Objective | Approx. Training RMSE | Step Size |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+--------------+-------------------+-----------------------+-------------+
" ], "text/plain": [ "+---------+--------------+-------------------+-----------------------+-------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| Initial | 99us         | 43.795            | 6.61778               |             |
" ], "text/plain": [ "| Initial | 99us | 43.795 | 6.61778 | |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+--------------+-------------------+-----------------------+-------------+
" ], "text/plain": [ "+---------+--------------+-------------------+-----------------------+-------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 1       | 99.622ms     | 43.5086           | 6.59571               | 0.0488281   |
" ], "text/plain": [ "| 1 | 99.622ms | 43.5086 | 6.59571 | 0.0488281 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 2       | 191.248ms    | 40.9101           | 6.39574               | 0.0290334   |
" ], "text/plain": [ "| 2 | 191.248ms | 40.9101 | 6.39574 | 0.0290334 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 3       | 280.477ms    | 37.8972           | 6.15571               | 0.0214205   |
" ], "text/plain": [ "| 3 | 280.477ms | 37.8972 | 6.15571 | 0.0214205 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 4       | 378.603ms    | 35.2936           | 5.94045               | 0.0172633   |
" ], "text/plain": [ "| 4 | 378.603ms | 35.2936 | 5.94045 | 0.0172633 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 5       | 474.372ms    | 32.7773           | 5.72471               | 0.014603    |
" ], "text/plain": [ "| 5 | 474.372ms | 32.7773 | 5.72471 | 0.014603 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 10      | 959.686ms    | 24.5984           | 4.95903               | 0.008683    |
" ], "text/plain": [ "| 10 | 959.686ms | 24.5984 | 4.95903 | 0.008683 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
| 50      | 5.02s        | 9.19885           | 3.0314                | 0.00154408  |
" ], "text/plain": [ "| 50 | 5.02s | 9.19885 | 3.0314 | 0.00154408 |" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
+---------+--------------+-------------------+-----------------------+-------------+
" ], "text/plain": [ "+---------+--------------+-------------------+-----------------------+-------------+" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Optimization Complete: Maximum number of passes through the data reached.
" ], "text/plain": [ "Optimization Complete: Maximum number of passes through the data reached." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
Computing final objective value and training RMSE.
" ], "text/plain": [ "Computing final objective value and training RMSE." ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
       Final objective value: 8.16243
" ], "text/plain": [ " Final objective value: 8.16243" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
       Final training RMSE: 2.85534
" ], "text/plain": [ " Final training RMSE: 2.85534" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "factorization_machine_model = tc.recommender.factorization_recommender.create(train_set, \n", " 'user_id', 'music_id',\n", " target='rating')" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:54:08.224344Z", "start_time": "2019-06-15T06:54:08.211939Z" } }, "outputs": [ { "data": { "text/plain": [ "1599753" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(train_set)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2019-06-15T06:54:48.295571Z", "start_time": "2019-06-15T06:54:24.849739Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "compare_models: using 34354 users to estimate model performance\n", "PROGRESS: Evaluate model M0\n" ] }, { "data": { "text/html": [ "
recommendations finished on 1000/34354 queries. users per second: 19077.4
" ], "text/plain": [ "recommendations finished on 1000/34354 queries. users per second: 19077.4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 2000/34354 queries. users per second: 21071.3
" ], "text/plain": [ "recommendations finished on 2000/34354 queries. users per second: 21071.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 3000/34354 queries. users per second: 21793
" ], "text/plain": [ "recommendations finished on 3000/34354 queries. users per second: 21793" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 4000/34354 queries. users per second: 22081.5
" ], "text/plain": [ "recommendations finished on 4000/34354 queries. users per second: 22081.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 5000/34354 queries. users per second: 22392.1
" ], "text/plain": [ "recommendations finished on 5000/34354 queries. users per second: 22392.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 6000/34354 queries. users per second: 22620.3
" ], "text/plain": [ "recommendations finished on 6000/34354 queries. users per second: 22620.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 7000/34354 queries. users per second: 22719.2
" ], "text/plain": [ "recommendations finished on 7000/34354 queries. users per second: 22719.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 8000/34354 queries. users per second: 22900.3
" ], "text/plain": [ "recommendations finished on 8000/34354 queries. users per second: 22900.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 9000/34354 queries. users per second: 23067.3
" ], "text/plain": [ "recommendations finished on 9000/34354 queries. users per second: 23067.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 10000/34354 queries. users per second: 22887.2
" ], "text/plain": [ "recommendations finished on 10000/34354 queries. users per second: 22887.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 11000/34354 queries. users per second: 22713
" ], "text/plain": [ "recommendations finished on 11000/34354 queries. users per second: 22713" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 12000/34354 queries. users per second: 22595.1
" ], "text/plain": [ "recommendations finished on 12000/34354 queries. users per second: 22595.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 13000/34354 queries. users per second: 22631.4
" ], "text/plain": [ "recommendations finished on 13000/34354 queries. users per second: 22631.4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 14000/34354 queries. users per second: 22749.6
" ], "text/plain": [ "recommendations finished on 14000/34354 queries. users per second: 22749.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 15000/34354 queries. users per second: 22609.7
" ], "text/plain": [ "recommendations finished on 15000/34354 queries. users per second: 22609.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 16000/34354 queries. users per second: 22638.4
" ], "text/plain": [ "recommendations finished on 16000/34354 queries. users per second: 22638.4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 17000/34354 queries. users per second: 22764.3
" ], "text/plain": [ "recommendations finished on 17000/34354 queries. users per second: 22764.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 18000/34354 queries. users per second: 22809.6
" ], "text/plain": [ "recommendations finished on 18000/34354 queries. users per second: 22809.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 19000/34354 queries. users per second: 22919.8
" ], "text/plain": [ "recommendations finished on 19000/34354 queries. users per second: 22919.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 20000/34354 queries. users per second: 22935.8
" ], "text/plain": [ "recommendations finished on 20000/34354 queries. users per second: 22935.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 21000/34354 queries. users per second: 22884.6
" ], "text/plain": [ "recommendations finished on 21000/34354 queries. users per second: 22884.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 22000/34354 queries. users per second: 22859.4
" ], "text/plain": [ "recommendations finished on 22000/34354 queries. users per second: 22859.4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 23000/34354 queries. users per second: 22748.8
" ], "text/plain": [ "recommendations finished on 23000/34354 queries. users per second: 22748.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 24000/34354 queries. users per second: 22678.2
" ], "text/plain": [ "recommendations finished on 24000/34354 queries. users per second: 22678.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 25000/34354 queries. users per second: 22568.9
" ], "text/plain": [ "recommendations finished on 25000/34354 queries. users per second: 22568.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 26000/34354 queries. users per second: 22427.1
" ], "text/plain": [ "recommendations finished on 26000/34354 queries. users per second: 22427.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 27000/34354 queries. users per second: 22358.6
" ], "text/plain": [ "recommendations finished on 27000/34354 queries. users per second: 22358.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 28000/34354 queries. users per second: 22262.1
" ], "text/plain": [ "recommendations finished on 28000/34354 queries. users per second: 22262.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 29000/34354 queries. users per second: 22079
" ], "text/plain": [ "recommendations finished on 29000/34354 queries. users per second: 22079" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 30000/34354 queries. users per second: 22018.1
" ], "text/plain": [ "recommendations finished on 30000/34354 queries. users per second: 22018.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 31000/34354 queries. users per second: 21629.5
" ], "text/plain": [ "recommendations finished on 31000/34354 queries. users per second: 21629.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 32000/34354 queries. users per second: 21548.6
" ], "text/plain": [ "recommendations finished on 32000/34354 queries. users per second: 21548.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 33000/34354 queries. users per second: 21540.2
" ], "text/plain": [ "recommendations finished on 33000/34354 queries. users per second: 21540.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 34000/34354 queries. users per second: 21499.5
" ], "text/plain": [ "recommendations finished on 34000/34354 queries. users per second: 21499.5" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Precision and recall summary statistics by cutoff\n", "+--------+------------------------+------------------------+\n", "| cutoff | mean_recall | mean_precision |\n", "+--------+------------------------+------------------------+\n", "| 1 | 4.3383582709425655e-05 | 0.00032019561040927034 |\n", "| 2 | 9.351370595195784e-05 | 0.0003493043022646556 |\n", "| 3 | 0.00013332475867271565 | 0.00032989850769439354 |\n", "| 4 | 0.00025157207340778813 | 0.0003638586481923528 |\n", "| 5 | 0.0003743018484379922 | 0.00043663037783082004 |\n", "| 6 | 0.00044921257061878193 | 0.00042207603190312675 |\n", "| 7 | 0.0005172658393736786 | 0.00041583845507697374 |\n", "| 8 | 0.000573334927644493 | 0.0004038830994935098 |\n", "| 9 | 0.0008801308762376106 | 0.0005304250515870728 |\n", "| 10 | 0.0009133251742113642 | 0.0005035803690982172 |\n", "+--------+------------------------+------------------------+\n", "[10 rows x 3 columns]\n", "\n", "\n", "Overall RMSE: 6.339345574168611\n", "\n", "Per User RMSE (best)\n", "+-------------------------------+------+-------+\n", "| user_id | rmse | count |\n", "+-------------------------------+------+-------+\n", "| 6d61c9b3678aa6c015ea9fd502... | 0.0 | 1 |\n", "+-------------------------------+------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per User RMSE (worst)\n", "+-------------------------------+-------------------+-------+\n", "| user_id | rmse | count |\n", "+-------------------------------+-------------------+-------+\n", "| 38767872c514c1b43bab5c7b21... | 341.2071760874715 | 2 |\n", "+-------------------------------+-------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per Item RMSE (best)\n", "+--------------------+---------------------+-------+\n", "| music_id | rmse | count |\n", "+--------------------+---------------------+-------+\n", "| SOXDPFW12A81C2319B | 0.07352941176470584 | 6 |\n", "+--------------------+---------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per Item RMSE (worst)\n", "+--------------------+--------------------+-------+\n", "| music_id | rmse | count |\n", "+--------------------+--------------------+-------+\n", "| SOLGIWB12A58A77A05 | 109.15045476689721 | 35 |\n", "+--------------------+--------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "PROGRESS: Evaluate model M1\n" ] }, { "data": { "text/html": [ "
recommendations finished on 1000/34354 queries. users per second: 18663.7
" ], "text/plain": [ "recommendations finished on 1000/34354 queries. users per second: 18663.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 2000/34354 queries. users per second: 21804.3
" ], "text/plain": [ "recommendations finished on 2000/34354 queries. users per second: 21804.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 3000/34354 queries. users per second: 22501.7
" ], "text/plain": [ "recommendations finished on 3000/34354 queries. users per second: 22501.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 4000/34354 queries. users per second: 22946.8
" ], "text/plain": [ "recommendations finished on 4000/34354 queries. users per second: 22946.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 5000/34354 queries. users per second: 23156.1
" ], "text/plain": [ "recommendations finished on 5000/34354 queries. users per second: 23156.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 6000/34354 queries. users per second: 23361.5
" ], "text/plain": [ "recommendations finished on 6000/34354 queries. users per second: 23361.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 7000/34354 queries. users per second: 23118
" ], "text/plain": [ "recommendations finished on 7000/34354 queries. users per second: 23118" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 8000/34354 queries. users per second: 23054.1
" ], "text/plain": [ "recommendations finished on 8000/34354 queries. users per second: 23054.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 9000/34354 queries. users per second: 22947
" ], "text/plain": [ "recommendations finished on 9000/34354 queries. users per second: 22947" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 10000/34354 queries. users per second: 22859.2
" ], "text/plain": [ "recommendations finished on 10000/34354 queries. users per second: 22859.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 11000/34354 queries. users per second: 22138.5
" ], "text/plain": [ "recommendations finished on 11000/34354 queries. users per second: 22138.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 12000/34354 queries. users per second: 22029.6
" ], "text/plain": [ "recommendations finished on 12000/34354 queries. users per second: 22029.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 13000/34354 queries. users per second: 22098.2
" ], "text/plain": [ "recommendations finished on 13000/34354 queries. users per second: 22098.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 14000/34354 queries. users per second: 22204
" ], "text/plain": [ "recommendations finished on 14000/34354 queries. users per second: 22204" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 15000/34354 queries. users per second: 22239.7
" ], "text/plain": [ "recommendations finished on 15000/34354 queries. users per second: 22239.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 16000/34354 queries. users per second: 22323
" ], "text/plain": [ "recommendations finished on 16000/34354 queries. users per second: 22323" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 17000/34354 queries. users per second: 22380.5
" ], "text/plain": [ "recommendations finished on 17000/34354 queries. users per second: 22380.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 18000/34354 queries. users per second: 22421.7
" ], "text/plain": [ "recommendations finished on 18000/34354 queries. users per second: 22421.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 19000/34354 queries. users per second: 22465.5
" ], "text/plain": [ "recommendations finished on 19000/34354 queries. users per second: 22465.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 20000/34354 queries. users per second: 22521.1
" ], "text/plain": [ "recommendations finished on 20000/34354 queries. users per second: 22521.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 21000/34354 queries. users per second: 22402.5
" ], "text/plain": [ "recommendations finished on 21000/34354 queries. users per second: 22402.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 22000/34354 queries. users per second: 22338.5
" ], "text/plain": [ "recommendations finished on 22000/34354 queries. users per second: 22338.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 23000/34354 queries. users per second: 21869.3
" ], "text/plain": [ "recommendations finished on 23000/34354 queries. users per second: 21869.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 24000/34354 queries. users per second: 21574.6
" ], "text/plain": [ "recommendations finished on 24000/34354 queries. users per second: 21574.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 25000/34354 queries. users per second: 21291.7
" ], "text/plain": [ "recommendations finished on 25000/34354 queries. users per second: 21291.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 26000/34354 queries. users per second: 20909
" ], "text/plain": [ "recommendations finished on 26000/34354 queries. users per second: 20909" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 27000/34354 queries. users per second: 20723.1
" ], "text/plain": [ "recommendations finished on 27000/34354 queries. users per second: 20723.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 28000/34354 queries. users per second: 20666.2
" ], "text/plain": [ "recommendations finished on 28000/34354 queries. users per second: 20666.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 29000/34354 queries. users per second: 20559.6
" ], "text/plain": [ "recommendations finished on 29000/34354 queries. users per second: 20559.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 30000/34354 queries. users per second: 20340.9
" ], "text/plain": [ "recommendations finished on 30000/34354 queries. users per second: 20340.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 31000/34354 queries. users per second: 20157.3
" ], "text/plain": [ "recommendations finished on 31000/34354 queries. users per second: 20157.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 32000/34354 queries. users per second: 19851.3
" ], "text/plain": [ "recommendations finished on 32000/34354 queries. users per second: 19851.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 33000/34354 queries. users per second: 19819
" ], "text/plain": [ "recommendations finished on 33000/34354 queries. users per second: 19819" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 34000/34354 queries. users per second: 19781
" ], "text/plain": [ "recommendations finished on 34000/34354 queries. users per second: 19781" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Precision and recall summary statistics by cutoff\n", "+--------+----------------------+----------------------+\n", "| cutoff | mean_recall | mean_precision |\n", "+--------+----------------------+----------------------+\n", "| 1 | 0.014688842060795695 | 0.050445362985387564 |\n", "| 2 | 0.03291712354999962 | 0.06248180706759065 |\n", "| 3 | 0.05399142375515901 | 0.07436300479323134 |\n", "| 4 | 0.06963924374087777 | 0.07609012050998376 |\n", "| 5 | 0.08384375244888208 | 0.07552541188798938 |\n", "| 6 | 0.0959100718474003 | 0.07364499039413211 |\n", "| 7 | 0.10643883706242792 | 0.07136619566031029 |\n", "| 8 | 0.11604275927620446 | 0.06902398556208861 |\n", "| 9 | 0.1246532903037569 | 0.06660392126422279 |\n", "| 10 | 0.13280279585995652 | 0.06440006986086082 |\n", "+--------+----------------------+----------------------+\n", "[10 rows x 3 columns]\n", "\n", "\n", "Overall RMSE: 7.041096333660663\n", "\n", "Per User RMSE (best)\n", "+-------------------------------+----------------------+-------+\n", "| user_id | rmse | count |\n", "+-------------------------------+----------------------+-------+\n", "| 714c577dfeaa6ffaf778286302... | 0.022276699542999268 | 1 |\n", "+-------------------------------+----------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per User RMSE (worst)\n", "+-------------------------------+--------------------+-------+\n", "| user_id | rmse | count |\n", "+-------------------------------+--------------------+-------+\n", "| 38767872c514c1b43bab5c7b21... | 343.85311015265717 | 2 |\n", "+-------------------------------+--------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per Item RMSE (best)\n", "+--------------------+--------------------+-------+\n", "| music_id | rmse | count |\n", "+--------------------+--------------------+-------+\n", "| SOBHIJM12AB018194F | 0.7032955339939242 | 6 |\n", "+--------------------+--------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per Item RMSE (worst)\n", "+--------------------+--------------------+-------+\n", "| music_id | rmse | count |\n", "+--------------------+--------------------+-------+\n", "| SOLGIWB12A58A77A05 | 109.83254923449184 | 35 |\n", "+--------------------+--------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "PROGRESS: Evaluate model M2\n" ] }, { "data": { "text/html": [ "
recommendations finished on 1000/34354 queries. users per second: 14762.3
" ], "text/plain": [ "recommendations finished on 1000/34354 queries. users per second: 14762.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 2000/34354 queries. users per second: 16166.7
" ], "text/plain": [ "recommendations finished on 2000/34354 queries. users per second: 16166.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 3000/34354 queries. users per second: 16291.6
" ], "text/plain": [ "recommendations finished on 3000/34354 queries. users per second: 16291.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 4000/34354 queries. users per second: 16418.9
" ], "text/plain": [ "recommendations finished on 4000/34354 queries. users per second: 16418.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 5000/34354 queries. users per second: 16427.5
" ], "text/plain": [ "recommendations finished on 5000/34354 queries. users per second: 16427.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 6000/34354 queries. users per second: 16329.2
" ], "text/plain": [ "recommendations finished on 6000/34354 queries. users per second: 16329.2" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 7000/34354 queries. users per second: 16405.7
" ], "text/plain": [ "recommendations finished on 7000/34354 queries. users per second: 16405.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 8000/34354 queries. users per second: 16508
" ], "text/plain": [ "recommendations finished on 8000/34354 queries. users per second: 16508" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 9000/34354 queries. users per second: 16428.6
" ], "text/plain": [ "recommendations finished on 9000/34354 queries. users per second: 16428.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 10000/34354 queries. users per second: 16403.8
" ], "text/plain": [ "recommendations finished on 10000/34354 queries. users per second: 16403.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 11000/34354 queries. users per second: 16274.9
" ], "text/plain": [ "recommendations finished on 11000/34354 queries. users per second: 16274.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 12000/34354 queries. users per second: 16310.9
" ], "text/plain": [ "recommendations finished on 12000/34354 queries. users per second: 16310.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 13000/34354 queries. users per second: 16293.5
" ], "text/plain": [ "recommendations finished on 13000/34354 queries. users per second: 16293.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 14000/34354 queries. users per second: 16244.3
" ], "text/plain": [ "recommendations finished on 14000/34354 queries. users per second: 16244.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 15000/34354 queries. users per second: 16212
" ], "text/plain": [ "recommendations finished on 15000/34354 queries. users per second: 16212" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 16000/34354 queries. users per second: 16201.7
" ], "text/plain": [ "recommendations finished on 16000/34354 queries. users per second: 16201.7" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 17000/34354 queries. users per second: 16228.6
" ], "text/plain": [ "recommendations finished on 17000/34354 queries. users per second: 16228.6" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 18000/34354 queries. users per second: 16249.9
" ], "text/plain": [ "recommendations finished on 18000/34354 queries. users per second: 16249.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 19000/34354 queries. users per second: 16250.9
" ], "text/plain": [ "recommendations finished on 19000/34354 queries. users per second: 16250.9" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 20000/34354 queries. users per second: 16246
" ], "text/plain": [ "recommendations finished on 20000/34354 queries. users per second: 16246" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 21000/34354 queries. users per second: 16212.5
" ], "text/plain": [ "recommendations finished on 21000/34354 queries. users per second: 16212.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 22000/34354 queries. users per second: 16218.8
" ], "text/plain": [ "recommendations finished on 22000/34354 queries. users per second: 16218.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 23000/34354 queries. users per second: 16218.1
" ], "text/plain": [ "recommendations finished on 23000/34354 queries. users per second: 16218.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 24000/34354 queries. users per second: 16230.1
" ], "text/plain": [ "recommendations finished on 24000/34354 queries. users per second: 16230.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 25000/34354 queries. users per second: 16172.3
" ], "text/plain": [ "recommendations finished on 25000/34354 queries. users per second: 16172.3" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 26000/34354 queries. users per second: 16175.4
" ], "text/plain": [ "recommendations finished on 26000/34354 queries. users per second: 16175.4" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 27000/34354 queries. users per second: 16188.5
" ], "text/plain": [ "recommendations finished on 27000/34354 queries. users per second: 16188.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 28000/34354 queries. users per second: 16199.1
" ], "text/plain": [ "recommendations finished on 28000/34354 queries. users per second: 16199.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 29000/34354 queries. users per second: 16199.1
" ], "text/plain": [ "recommendations finished on 29000/34354 queries. users per second: 16199.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 30000/34354 queries. users per second: 16217
" ], "text/plain": [ "recommendations finished on 30000/34354 queries. users per second: 16217" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 31000/34354 queries. users per second: 16228.5
" ], "text/plain": [ "recommendations finished on 31000/34354 queries. users per second: 16228.5" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 32000/34354 queries. users per second: 16176.8
" ], "text/plain": [ "recommendations finished on 32000/34354 queries. users per second: 16176.8" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 33000/34354 queries. users per second: 16184.1
" ], "text/plain": [ "recommendations finished on 33000/34354 queries. users per second: 16184.1" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "
recommendations finished on 34000/34354 queries. users per second: 16170.4
" ], "text/plain": [ "recommendations finished on 34000/34354 queries. users per second: 16170.4" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "\n", "Precision and recall summary statistics by cutoff\n", "+--------+------------------------+------------------------+\n", "| cutoff | mean_recall | mean_precision |\n", "+--------+------------------------+------------------------+\n", "| 1 | 7.0023278723497e-05 | 0.0004075216859754317 |\n", "| 2 | 0.00015701647350617692 | 0.0004220760319031288 |\n", "| 3 | 0.00025150526145133087 | 0.00041722458326056295 |\n", "| 4 | 0.00034565751961335053 | 0.00043663037783081874 |\n", "| 5 | 0.00046127750964837765 | 0.0004424521162018989 |\n", "| 6 | 0.0006061722786786824 | 0.0004899963128990292 |\n", "| 7 | 0.00070561257944388 | 0.0005197980688462193 |\n", "| 8 | 0.0008535975421092137 | 0.0005457879722885229 |\n", "| 9 | 0.0009773205690967743 | 0.0005433622479672466 |\n", "| 10 | 0.0011201566127395915 | 0.0005647086219945271 |\n", "+--------+------------------------+------------------------+\n", "[10 rows x 3 columns]\n", "\n", "\n", "Overall RMSE: 7.780049286375036\n", "\n", "Per User RMSE (best)\n", "+-------------------------------+------------------------+-------+\n", "| user_id | rmse | count |\n", "+-------------------------------+------------------------+-------+\n", "| 80495441caacdc7e069b441047... | 5.1963096963536515e-05 | 1 |\n", "+-------------------------------+------------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per User RMSE (worst)\n", "+-------------------------------+--------------------+-------+\n", "| user_id | rmse | count |\n", "+-------------------------------+--------------------+-------+\n", "| 38767872c514c1b43bab5c7b21... | 338.99132097019395 | 2 |\n", "+-------------------------------+--------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per Item RMSE (best)\n", "+--------------------+---------------------+-------+\n", "| music_id | rmse | count |\n", "+--------------------+---------------------+-------+\n", "| SOCOZST12A67020452 | 0.06951240175355755 | 1 |\n", "+--------------------+---------------------+-------+\n", "[1 rows x 3 columns]\n", "\n", "\n", "Per Item RMSE (worst)\n", "+--------------------+--------------------+-------+\n", "| music_id | rmse | count |\n", "+--------------------+--------------------+-------+\n", "| SOVQSQZ12A8C13F960 | 113.92735214599614 | 17 |\n", "+--------------------+--------------------+-------+\n", "[1 rows x 3 columns]\n", "\n" ] } ], "source": [ "result = tc.recommender.util.compare_models(test_set, \n", " [popularity_model, item_sim_model, factorization_machine_model],\n", " user_sample=.5, skip_set=train_set)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T16:29:22.874873Z", "start_time": "2019-06-14T16:29:22.451971Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [], "source": [ "K = 10\n", "users = gl.SArray(sf['user_id'].unique().head(100))" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2019-06-14T16:29:24.466111Z", "start_time": "2019-06-14T16:29:24.410860Z" }, "slideshow": { "slide_type": "slide" } }, "outputs": [ { "data": { "text/html": [ "
\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
user_idmusic_idscorerank
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOXUQNR12AF72A69D63.0224226514498391
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOUFAZA12AC3DFAB201.33684277534484862
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOSFSTC12A8C1412191.0919821262359623
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOVIWFP12A58A7D1BD1.0451638698577884
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOBMTQD12AB01833D01.02945168813069655
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOCMNRG12AB0189D3F0.97564379374186196
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOXOHUM12A67ADC8260.95068732897440597
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOWBFVW12A6D4F612B0.90923706690470378
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOXFYTY127E9433E7D0.89772780736287449
279292bb36dbfc7f505e36ebf
038c81eb1d1d63e ...
SOYBLYP12A58A79D320.897092819213867210
\n", "[10 rows x 4 columns]
\n", "
" ], "text/plain": [ "Columns:\n", "\tuser_id\tstr\n", "\tmusic_id\tstr\n", "\tscore\tfloat\n", "\trank\tint\n", "\n", "Rows: 10\n", "\n", "Data:\n", "+-------------------------------+--------------------+--------------------+------+\n", "| user_id | music_id | score | rank |\n", "+-------------------------------+--------------------+--------------------+------+\n", "| 279292bb36dbfc7f505e36ebf0... | SOXUQNR12AF72A69D6 | 3.022422651449839 | 1 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOUFAZA12AC3DFAB20 | 1.3368427753448486 | 2 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOSFSTC12A8C141219 | 1.091982126235962 | 3 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOVIWFP12A58A7D1BD | 1.045163869857788 | 4 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOBMTQD12AB01833D0 | 1.0294516881306965 | 5 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOCMNRG12AB0189D3F | 0.9756437937418619 | 6 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOXOHUM12A67ADC826 | 0.9506873289744059 | 7 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOWBFVW12A6D4F612B | 0.9092370669047037 | 8 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOXFYTY127E9433E7D | 0.8977278073628744 | 9 |\n", "| 279292bb36dbfc7f505e36ebf0... | SOYBLYP12A58A79D32 | 0.8970928192138672 | 10 |\n", "+-------------------------------+--------------------+--------------------+------+\n", "[10 rows x 4 columns]" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "recs = item_sim_model.recommend(users=users, k=K)\n", "recs.head()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "celltoolbar": "Slideshow", "kernelspec": { "display_name": "Python [conda env:anaconda]", "language": "python", "name": "conda-env-anaconda-py" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.4" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 0, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": false, "sideBar": false, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": { "height": "48px", "left": "930px", "top": "110.398px", "width": "159px" }, "toc_section_display": false, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 1 }