In [1]:
%pylab inline
In [2]:
log_folder = 'ik-learning/logs/grid-gridsearch/'
tc = load('ik-learning/tc-grid.npy')
In [3]:
names = ['rm-knn-default', 'rg-knn-default', 'dpg-knn-default']
for xc in map(lambda x: x ** 3, [2, 3, 5, 7, 10, 16]):
for ws in [5, 10, 20, 50, 75, 100, 200]:
name = '{}-xcard-{}-winsize-{}'.format('dpg-knn', xc, ws)
names.append(name)
In [4]:
import os
import glob
import pickle
from collections import defaultdict
logs = {}
for name in names:
xps = glob.glob('{}/{}-*.logs'.format(log_folder, name))
l = []
for xp in xps:
with open(xp) as f:
l.append(pickle.load(f))
logs[name] = l
print len(l), 'log(s) found for', name
In [5]:
from mpltools import special
def plot_one(name):
err = [xp.eval_errors for xp in logs[name]]
if not err:
return
err = array(err)
special.errorfill(x=xp.eval_at, y=err.mean(axis=-1).mean(axis=0),
yerr=err.std(axis=-1).mean(axis=0) / sqrt(len(err)))
ylim(0, 0.5)
def plot_compare(*poss):
[plot_one(n) for n in poss]
labels = ['{}'.format(n) for n in poss]
legend(labels)
In [6]:
plot_compare(('rm-knn-default'),
('rg-knn-default'),
('dpg-knn-default'))
#xlim(0, 250)
In [7]:
from IPython.html.widgets import interact
interact(plot_one, name=names)
Out[7]:
In [8]:
names = ['dpg-knn-default', ]
for xc in map(lambda x: x ** 3, [2, 3, 5, 7, 10, 16]):
names.append('dpg-knn-xcard-{}-winsize-10'.format(xc))
plot_compare(*names)
xlim(0, 1000)
Out[8]:
In [9]:
names = ['dpg-knn-default', ]
for ws in [5, 10, 20, 50, 75, 100, 200]:
names.append('dpg-knn-xcard-343-winsize-{}'.format(ws))
plot_compare(*names)
xlim(0, 1000)
Out[9]:
In [10]:
def heat(eval_i):
names = []
XC = map(lambda x: x ** 3, [2, 3, 5, 7, 10, 16])
WS = [5, 10, 20, 50, 75, 100, 200]
ee = zeros((len(XC), len(WS)))
for i, xc in enumerate(XC):
for j, ws in enumerate(WS):
name = 'dpg-knn-xcard-{}-winsize-{}'.format(xc, ws)
err = [xp.eval_errors for xp in logs[name]]
err = array(err)
err = err.mean(axis=-1).mean(axis=0)
e = err[eval_i]
ee[i, j] = e
ee[ee == -10] = ee.max()
ax = axes()
ax.imshow(ee.T, interpolation='nearest')
ax.set_ylabel('win size')
ax.set_yticklabels([0] + WS)
ax.set_xlabel('x card')
ax.set_xticklabels([0] + XC)
print 'Evaluation at', xp.eval_at[eval_i]
print 'Mean dist min', ee.min(), 'at', unravel_index(ee.argmin(), ee.shape)
print 'Mean dist max', ee.max(), 'at', unravel_index(ee.argmax(), ee.shape)
xp = logs.values()[0][0]
interact(heat, eval_i=(0, len(xp.eval_at) - 1))
In [11]:
plot_compare(('rm-knn-default'),
('rg-knn-default'),
('dpg-knn-default'),
('dpg-knn-xcard-1000-winsize-5'))
xlim(0, 250)
Out[11]:
In [12]:
with open(glob.glob(log_folder + 'dpg-knn-xcard-1000-winsize-5-*.logs')[0]) as f:
goal_xp = pickle.load(f)
ax = axes()
goal_xp.scatter_plot(ax, (('sensori', [0, 1]), ), color='b')
goal_xp.scatter_plot(ax, (('choice', [0, 1]), ), color='r', marker='+')
ax.scatter(tc[:, 0], tc[:, 1], color='g', s=40)
Out[12]:
In [13]:
with open(glob.glob(log_folder + 'rg-knn-default-*.logs')[0]) as f:
goal_xp = pickle.load(f)
ax = axes()
goal_xp.scatter_plot(ax, (('sensori', [0, 1]), ), color='b')
goal_xp.scatter_plot(ax, (('choice', [0, 1]), ), color='r', marker='+')
ax.scatter(tc[:, 0], tc[:, 1], color='g', s=40)
In [ ]:
plot_compare(('rm-knn-default'),
('rg-knn-default'),
('dpg-knn-default'),
('dpg-knn-xcard-1000-winsize-5'))
xlim(2500, 3000)
ylim(0, 0.1)
In [ ]: