{ "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": [ "
user_id | \n", "music_id | \n", "score | \n", "rank | \n", "
---|---|---|---|
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOXUQNR12AF72A69D6 | \n", "3.022422651449839 | \n", "1 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOUFAZA12AC3DFAB20 | \n", "1.3368427753448486 | \n", "2 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOSFSTC12A8C141219 | \n", "1.091982126235962 | \n", "3 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOVIWFP12A58A7D1BD | \n", "1.045163869857788 | \n", "4 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOBMTQD12AB01833D0 | \n", "1.0294516881306965 | \n", "5 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOCMNRG12AB0189D3F | \n", "0.9756437937418619 | \n", "6 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOXOHUM12A67ADC826 | \n", "0.9506873289744059 | \n", "7 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOWBFVW12A6D4F612B | \n", "0.9092370669047037 | \n", "8 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOXFYTY127E9433E7D | \n", "0.8977278073628744 | \n", "9 | \n", "
279292bb36dbfc7f505e36ebf 038c81eb1d1d63e ... | \n",
" SOYBLYP12A58A79D32 | \n", "0.8970928192138672 | \n", "10 | \n", "