In [1]:
%matplotlib inline
%load_ext autoreload
%autoreload 2
import os, sys, time, gzip
import pickle as pkl
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
In [10]:
datasets = ['aotm2011', '30music']
TOPs = [5, 10, 20, 30, 50, 100, 200, 300, 500]#, 1000]
In [13]:
dix = 0
In [14]:
dataset_name = datasets[dix]
data_mlr = 'data/%s/setting1' % dataset_name
data_pla = 'data/%s/setting2' % dataset_name
In [15]:
perf_br1 = pkl.load(open(os.path.join(data_mlr, 'perf-br1.pkl'), 'rb'))
perf_br1
Out[15]:
In [18]:
hitrates_br1 = perf_br1[dataset_name]['Test']['Hit-Rate']
#assert np.all(TOPs == sorted(hitrates_br1.keys()))
ax = plt.subplot(111)
ax.plot(TOPs, [hitrates_br1[t] for t in TOPs], ls='--', c='g', marker='o', label='BR')
ax.legend(loc='upper left')
ax.set_xlabel('#Recommendation')
ax.set_ylabel('Hit Rate')
ax.set_xscale('log')
In [19]:
perf_br2 = pkl.load(open(os.path.join(data_pla, 'perf-br2.pkl'), 'rb'))
perf_br2
Out[19]:
In [20]:
perf_pop = pkl.load(open(os.path.join(data_pla, 'perf-pop.pkl'), 'rb'))
perf_pop
Out[20]:
In [21]:
hitrates_br2 = perf_br2[dataset_name]['Test']['Hit-Rate']
hitrates_pop = perf_pop[dataset_name]['Test']['Hit-Rate']
#assert np.all(TOPs == sorted(hitrates_br2.keys()))
#assert np.all(TOPs == sorted(hitrates_pop.keys()))
ax = plt.subplot(111)
ax.plot(TOPs, [hitrates_br2[t] for t in TOPs], ls='--', c='g', marker='o', label='BR')
ax.plot(TOPs, [hitrates_pop[t] for t in TOPs], ls=':', c='r', marker='D', label='PopRank')
ax.legend(loc='upper left')
ax.set_xlabel('#Recommendation')
ax.set_ylabel('Hit Rate')
ax.set_xscale('log')
plt.savefig('pla_hitrate_%s.svg' % dataset_name)