In [1]:
%pylab inline


Populating the interactive namespace from numpy and matplotlib

In [2]:
log_folder = 'ik-learning/logs/gridsearch/'
tc = load('ik-learning/tc-150.npy')

In [3]:
import os
import glob
import pickle

from collections import defaultdict

logs = defaultdict(lambda: defaultdict(lambda: defaultdict(list)))

for im in IM:    
    for bab in BAB:        
        for sm in SM:
            xps = glob.glob('{}/ik-xp-{}-{}-with-{}-*.logs'.format(log_folder, im, bab, sm))
                
            l = []
            for xp in xps:
                with open(xp) as f:
                    l.append(pickle.load(f))  
                    
            logs[im][bab][sm] = l
            print len(l), 'log(s) found for', im, bab, sm


51 log(s) found for random motor knn
25 log(s) found for random motor ilo-gmm
0 log(s) found for random motor imle
34 log(s) found for random goal knn
37 log(s) found for random goal ilo-gmm
0 log(s) found for random goal imle
0 log(s) found for discretized_progress motor knn
0 log(s) found for discretized_progress motor ilo-gmm
0 log(s) found for discretized_progress motor imle
25 log(s) found for discretized_progress goal knn
42 log(s) found for discretized_progress goal ilo-gmm
0 log(s) found for discretized_progress goal imle

In [4]:
%pylab inline

from mpltools import special

def plot_one(im, bab, sm):
    err = [xp.eval_errors for xp in logs[im][bab][sm]]
    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)
    
from IPython.html.widgets import interact
    
interact(plot_one, **param)



In [15]:
def plot_compare(*poss):
    [plot_one(im, bab, sm) for (im, bab, sm) in poss]
    
    labels = ['{} {} using {}'.format(im, bab, sm) for (im, bab, sm) in poss]
    legend(labels, loc='lower left')

In [16]:
plot_compare(('random', 'goal', 'knn'), 
             ('random', 'motor', 'knn'),
             ('discretized_progress', 'goal', 'knn'))



In [17]:
plot_compare(('random', 'goal', 'ilo-gmm'), 
             ('random', 'motor', 'ilo-gmm'),
             ('discretized_progress', 'goal', 'ilo-gmm'))



In [18]:
with open(log_folder + '/ik-xp-random-goal-with-knn-10.logs') as f:
    goal_xp = pickle.load(f)
    
ax = axes()
#motor_xp.scatter_plot(ax, (('sensori', [1, 2]), ), color='r')
goal_xp.scatter_plot(ax, (('sensori', [0, 1]), ),  color='b')
goal_xp.scatter_plot(ax, (('choice', [0, 1]), ),  color='r', marker='+')
scatter(tc[:, 0], tc[:, 1], color='r', s=40)


Out[18]:
<matplotlib.collections.PathCollection at 0x11fbf8d50>

In [20]:
with open(log_folder + '/ik-xp-discretized_progress-goal-with-knn-3.logs') as f:
    goal_xp = pickle.load(f)
    
ax = axes()
#motor_xp.scatter_plot(ax, (('sensori', [1, 2]), ), color='r')
goal_xp.scatter_plot(ax, (('sensori', [0, 1]), ),  color='b')
goal_xp.scatter_plot(ax, (('choice', [0, 1]), ),  color='r', marker='+')
scatter(tc[:, 0], tc[:, 1], color='r', s=40)


Out[20]:
<matplotlib.collections.PathCollection at 0x11fc5d210>

In [21]:
with open('logs/ik-xp-random-motor-with-knn-12.logs') as f:
    goal_xp = pickle.load(f)
    
ax = axes()
#motor_xp.scatter_plot(ax, (('sensori', [1, 2]), ), color='r')
goal_xp.scatter_plot(ax, (('sensori', [0, 1]), ),  color='b')
#goal_xp.scatter_plot(ax, (('choice', [1, 2]), ),  color='r')
scatter(tc[:, 0], tc[:, 1], color='r', s=40)


Out[21]:
<matplotlib.collections.PathCollection at 0x11fe8e7d0>