Minor changes to naming of signitures

This commit is contained in:
Alan Saul 2013-11-29 14:45:44 +00:00
parent 98074e1e6c
commit 9e6cc7ea6e

View file

@ -3,23 +3,23 @@
import numpy as _np import numpy as _np
default_seed = _np.random.seed(123344) default_seed = _np.random.seed(123344)
def bgplvm_test_model(seed=default_seed, optimize=0, verbose=1, plot=0): def bgplvm_test_model(seed=default_seed, optimize=False, verbose=1, plot=False):
""" """
model for testing purposes. Samples from a GP with rbf kernel and learns model for testing purposes. Samples from a GP with rbf kernel and learns
the samples with a new kernel. Normally not for optimization, just model cheking the samples with a new kernel. Normally not for optimization, just model cheking
""" """
from GPy.likelihoods.gaussian import Gaussian from GPy.likelihoods.gaussian import Gaussian
import GPy import GPy
num_inputs = 13 num_inputs = 13
num_inducing = 5 num_inducing = 5
if plot: if plot:
output_dim = 1 output_dim = 1
input_dim = 2 input_dim = 2
else: else:
input_dim = 2 input_dim = 2
output_dim = 25 output_dim = 25
# generate GPLVM-like data # generate GPLVM-like data
X = _np.random.rand(num_inputs, input_dim) X = _np.random.rand(num_inputs, input_dim)
lengthscales = _np.random.rand(input_dim) lengthscales = _np.random.rand(input_dim)
@ -43,7 +43,7 @@ def bgplvm_test_model(seed=default_seed, optimize=0, verbose=1, plot=0):
import matplotlib.pyplot as pb import matplotlib.pyplot as pb
m.plot() m.plot()
pb.title('PCA initialisation') pb.title('PCA initialisation')
if optimize: if optimize:
m.optimize('scg', messages=verbose) m.optimize('scg', messages=verbose)
if plot: if plot:
@ -52,7 +52,7 @@ def bgplvm_test_model(seed=default_seed, optimize=0, verbose=1, plot=0):
return m return m
def gplvm_oil_100(optimize=1, verbose=1, plot=1): def gplvm_oil_100(optimize=True, verbose=1, plot=True):
import GPy import GPy
data = GPy.util.datasets.oil_100() data = GPy.util.datasets.oil_100()
Y = data['X'] Y = data['X']
@ -64,7 +64,7 @@ def gplvm_oil_100(optimize=1, verbose=1, plot=1):
if plot: m.plot_latent(labels=m.data_labels) if plot: m.plot_latent(labels=m.data_labels)
return m return m
def sparse_gplvm_oil(optimize=1, verbose=0, plot=1, N=100, Q=6, num_inducing=15, max_iters=50): def sparse_gplvm_oil(optimize=True, verbose=0, plot=True, N=100, Q=6, num_inducing=15, max_iters=50):
import GPy import GPy
_np.random.seed(0) _np.random.seed(0)
data = GPy.util.datasets.oil() data = GPy.util.datasets.oil()
@ -77,12 +77,12 @@ def sparse_gplvm_oil(optimize=1, verbose=0, plot=1, N=100, Q=6, num_inducing=15,
m.data_labels = data['Y'][:N].argmax(axis=1) m.data_labels = data['Y'][:N].argmax(axis=1)
if optimize: m.optimize('scg', messages=verbose, max_iters=max_iters) if optimize: m.optimize('scg', messages=verbose, max_iters=max_iters)
if plot: if plot:
m.plot_latent(labels=m.data_labels) m.plot_latent(labels=m.data_labels)
m.kern.plot_ARD() m.kern.plot_ARD()
return m return m
def swiss_roll(optimize=1, verbose=1, plot=1, N=1000, num_inducing=15, Q=4, sigma=.2): def swiss_roll(optimize=True, verbose=1, plot=True, N=1000, num_inducing=15, Q=4, sigma=.2):
import GPy import GPy
from GPy.util.datasets import swiss_roll_generated from GPy.util.datasets import swiss_roll_generated
from GPy.models import BayesianGPLVM from GPy.models import BayesianGPLVM
@ -131,16 +131,16 @@ def swiss_roll(optimize=1, verbose=1, plot=1, N=1000, num_inducing=15, Q=4, sigm
if optimize: if optimize:
m.optimize('scg', messages=verbose, max_iters=2e3) m.optimize('scg', messages=verbose, max_iters=2e3)
if plot: if plot:
fig = plt.figure('fitted') fig = plt.figure('fitted')
ax = fig.add_subplot(111) ax = fig.add_subplot(111)
s = m.input_sensitivity().argsort()[::-1][:2] s = m.input_sensitivity().argsort()[::-1][:2]
ax.scatter(*m.X.T[s], c=c) ax.scatter(*m.X.T[s], c=c)
return m return m
def bgplvm_oil(optimize=1, verbose=1, plot=1, N=200, Q=7, num_inducing=40, max_iters=1000, **k): def bgplvm_oil(optimize=True, verbose=1, plot=True, N=200, Q=7, num_inducing=40, max_iters=1000, **k):
import GPy import GPy
from GPy.likelihoods import Gaussian from GPy.likelihoods import Gaussian
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
@ -164,7 +164,7 @@ def bgplvm_oil(optimize=1, verbose=1, plot=1, N=200, Q=7, num_inducing=40, max_i
m.plot_latent(ax=latent_axes) m.plot_latent(ax=latent_axes)
data_show = GPy.util.visualize.vector_show(y) data_show = GPy.util.visualize.vector_show(y)
lvm_visualizer = GPy.util.visualize.lvm_dimselect(m.X[0, :], # @UnusedVariable lvm_visualizer = GPy.util.visualize.lvm_dimselect(m.X[0, :], # @UnusedVariable
m, data_show, latent_axes=latent_axes, sense_axes=sense_axes) m, data_show, latent_axes=latent_axes, sense_axes=sense_axes)
raw_input('Press enter to finish') raw_input('Press enter to finish')
plt.close(fig) plt.close(fig)
return m return m
@ -227,12 +227,12 @@ def _simulate_sincos(D1, D2, D3, N, num_inducing, Q, plot_sim=False):
# from GPy.util.datasets import simulation_BGPLVM # from GPy.util.datasets import simulation_BGPLVM
# from GPy import kern # from GPy import kern
# from GPy.models import BayesianGPLVM # from GPy.models import BayesianGPLVM
# #
# sim_data = simulation_BGPLVM() # sim_data = simulation_BGPLVM()
# Y = sim_data['Y'] # Y = sim_data['Y']
# mu = sim_data['mu'] # mu = sim_data['mu']
# num_inducing, [_, Q] = 3, mu.shape # num_inducing, [_, Q] = 3, mu.shape
# #
# k = kern.linear(Q, ARD=True) + kern.bias(Q, _np.exp(-2)) + kern.white(Q, _np.exp(-2)) # k = kern.linear(Q, ARD=True) + kern.bias(Q, _np.exp(-2)) + kern.white(Q, _np.exp(-2))
# m = BayesianGPLVM(Y, Q, init="PCA", num_inducing=num_inducing, kernel=k, # m = BayesianGPLVM(Y, Q, init="PCA", num_inducing=num_inducing, kernel=k,
# _debug=False) # _debug=False)
@ -241,8 +241,8 @@ def _simulate_sincos(D1, D2, D3, N, num_inducing, Q, plot_sim=False):
# m['linear_variance'] = .01 # m['linear_variance'] = .01
# return m # return m
def bgplvm_simulation(optimize=1, verbose=1, def bgplvm_simulation(optimize=True, verbose=1,
plot=1, plot_sim=False, plot=True, plot_sim=False,
max_iters=2e4, max_iters=2e4,
): ):
from GPy import kern from GPy import kern
@ -268,7 +268,7 @@ def mrd_simulation(optimize=True, verbose=True, plot=True, plot_sim=True, **kw):
from GPy import kern from GPy import kern
from GPy.models import MRD from GPy.models import MRD
from GPy.likelihoods import Gaussian from GPy.likelihoods import Gaussian
D1, D2, D3, N, num_inducing, Q = 60, 20, 36, 60, 6, 5 D1, D2, D3, N, num_inducing, Q = 60, 20, 36, 60, 6, 5
_, _, Ylist = _simulate_sincos(D1, D2, D3, N, num_inducing, Q, plot_sim) _, _, Ylist = _simulate_sincos(D1, D2, D3, N, num_inducing, Q, plot_sim)
likelihood_list = [Gaussian(x, normalize=True) for x in Ylist] likelihood_list = [Gaussian(x, normalize=True) for x in Ylist]
@ -290,7 +290,7 @@ def mrd_simulation(optimize=True, verbose=True, plot=True, plot_sim=True, **kw):
def brendan_faces(optimize=True, verbose=True, plot=True): def brendan_faces(optimize=True, verbose=True, plot=True):
import GPy import GPy
data = GPy.util.datasets.brendan_faces() data = GPy.util.datasets.brendan_faces()
Q = 2 Q = 2
Y = data['Y'] Y = data['Y']
@ -315,7 +315,7 @@ def brendan_faces(optimize=True, verbose=True, plot=True):
def olivetti_faces(optimize=True, verbose=True, plot=True): def olivetti_faces(optimize=True, verbose=True, plot=True):
import GPy import GPy
data = GPy.util.datasets.olivetti_faces() data = GPy.util.datasets.olivetti_faces()
Q = 2 Q = 2
Y = data['Y'] Y = data['Y']
@ -350,7 +350,7 @@ def stick_play(range=None, frame_rate=15, optimize=False, verbose=True, plot=Tru
def stick(kernel=None, optimize=True, verbose=True, plot=True): def stick(kernel=None, optimize=True, verbose=True, plot=True):
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
import GPy import GPy
data = GPy.util.datasets.osu_run1() data = GPy.util.datasets.osu_run1()
# optimize # optimize
m = GPy.models.GPLVM(data['Y'], 2, kernel=kernel) m = GPy.models.GPLVM(data['Y'], 2, kernel=kernel)
@ -362,13 +362,13 @@ def stick(kernel=None, optimize=True, verbose=True, plot=True):
data_show = GPy.util.visualize.stick_show(y[None, :], connect=data['connect']) data_show = GPy.util.visualize.stick_show(y[None, :], connect=data['connect'])
GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax) GPy.util.visualize.lvm(m.X[0, :].copy(), m, data_show, ax)
raw_input('Press enter to finish') raw_input('Press enter to finish')
return m return m
def bcgplvm_linear_stick(kernel=None, optimize=True, verbose=True, plot=True): def bcgplvm_linear_stick(kernel=None, optimize=True, verbose=True, plot=True):
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
import GPy import GPy
data = GPy.util.datasets.osu_run1() data = GPy.util.datasets.osu_run1()
# optimize # optimize
mapping = GPy.mappings.Linear(data['Y'].shape[1], 2) mapping = GPy.mappings.Linear(data['Y'].shape[1], 2)
@ -387,7 +387,7 @@ def bcgplvm_linear_stick(kernel=None, optimize=True, verbose=True, plot=True):
def bcgplvm_stick(kernel=None, optimize=True, verbose=True, plot=True): def bcgplvm_stick(kernel=None, optimize=True, verbose=True, plot=True):
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
import GPy import GPy
data = GPy.util.datasets.osu_run1() data = GPy.util.datasets.osu_run1()
# optimize # optimize
back_kernel=GPy.kern.rbf(data['Y'].shape[1], lengthscale=5.) back_kernel=GPy.kern.rbf(data['Y'].shape[1], lengthscale=5.)
@ -407,7 +407,7 @@ def bcgplvm_stick(kernel=None, optimize=True, verbose=True, plot=True):
def robot_wireless(optimize=True, verbose=True, plot=True): def robot_wireless(optimize=True, verbose=True, plot=True):
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
import GPy import GPy
data = GPy.util.datasets.robot_wireless() data = GPy.util.datasets.robot_wireless()
# optimize # optimize
m = GPy.models.GPLVM(data['Y'], 2) m = GPy.models.GPLVM(data['Y'], 2)
@ -422,7 +422,7 @@ def stick_bgplvm(model=None, optimize=True, verbose=True, plot=True):
from GPy.models import BayesianGPLVM from GPy.models import BayesianGPLVM
from matplotlib import pyplot as plt from matplotlib import pyplot as plt
import GPy import GPy
data = GPy.util.datasets.osu_run1() data = GPy.util.datasets.osu_run1()
Q = 6 Q = 6
kernel = GPy.kern.rbf(Q, ARD=True) + GPy.kern.bias(Q, _np.exp(-2)) + GPy.kern.white(Q, _np.exp(-2)) kernel = GPy.kern.rbf(Q, ARD=True) + GPy.kern.bias(Q, _np.exp(-2)) + GPy.kern.white(Q, _np.exp(-2))
@ -445,7 +445,7 @@ def stick_bgplvm(model=None, optimize=True, verbose=True, plot=True):
def cmu_mocap(subject='35', motion=['01'], in_place=True, optimize=True, verbose=True, plot=True): def cmu_mocap(subject='35', motion=['01'], in_place=True, optimize=True, verbose=True, plot=True):
import GPy import GPy
data = GPy.util.datasets.cmu_mocap(subject, motion) data = GPy.util.datasets.cmu_mocap(subject, motion)
if in_place: if in_place:
# Make figure move in place. # Make figure move in place.