Bgplvm_stick demo with rbf_inv

This commit is contained in:
Andreas 2013-07-17 17:05:11 +01:00
parent 1c9227fd14
commit 27b3ad62df

View file

@ -150,7 +150,7 @@ def BGPLVM_oil(optimize=True, N=200, Q=10, num_inducing=15, max_iters=50, plot=F
m.data_labels = data['Y'][:N].argmax(axis=1) m.data_labels = data['Y'][:N].argmax(axis=1)
# m.constrain('variance|leng', logexp_clipped()) # m.constrain('variance|leng', logexp_clipped())
m['.*lengt'] = 1. # m.X.var(0).max() / m.X.var(0) m['.*lengt'] = 1. # 5./((np.max(m.X,0)-np.min(m.X,0))**2) # m.X.var(0).max() / m.X.var(0)
m['noise'] = Yn.var() / 100. m['noise'] = Yn.var() / 100.
@ -327,6 +327,7 @@ def brendan_faces():
# Y = data['Y'] # Y = data['Y']
Yn = Y - Y.mean() Yn = Y - Y.mean()
Yn /= Yn.std() Yn /= Yn.std()
m.plot_latent()
m = GPy.models.GPLVM(Yn, Q) m = GPy.models.GPLVM(Yn, Q)
# m = GPy.models.BayesianGPLVM(Yn, Q, num_inducing=100) # m = GPy.models.BayesianGPLVM(Yn, Q, num_inducing=100)
@ -373,11 +374,12 @@ def stick():
def stick_bgplvm(model=None): def stick_bgplvm(model=None):
data = GPy.util.datasets.stick() data = GPy.util.datasets.stick()
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_inv(Q, ARD=True) + GPy.kern.bias(Q, np.exp(-2)) + GPy.kern.white(Q, np.exp(-2))
m = BayesianGPLVM(data['Y'], Q, init="PCA", num_inducing=20,kernel=kernel) m = BayesianGPLVM(data['Y'], Q, init="PCA", num_inducing=35,kernel=kernel)
# optimize # optimize
m.ensure_default_constraints() m.ensure_default_constraints()
m.optimize(messages=1, max_f_eval=3000,xtol=1e-300,ftol=1e-300) m.constrain_bounded('.*rbf_inv',1e-5, 100)
m.optimize(messages=1, max_iters=3000,xtol=1e-300,ftol=1e-300)
m._set_params(m._get_params()) m._set_params(m._get_params())
plt.clf, (latent_axes, sense_axes) = plt.subplots(1, 2) plt.clf, (latent_axes, sense_axes) = plt.subplots(1, 2)
plt.sca(latent_axes) plt.sca(latent_axes)