mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-04-28 06:16:24 +02:00
optional plotting of inducing inputs added
This commit is contained in:
parent
7325e319b4
commit
c0d514b6c0
1 changed files with 24 additions and 35 deletions
|
|
@ -2,7 +2,7 @@ import pylab as pb
|
||||||
import numpy as np
|
import numpy as np
|
||||||
from .. import util
|
from .. import util
|
||||||
|
|
||||||
def plot_latent(model, labels=None, which_indices=None, resolution=50, ax=None, marker='o', s=40, fignum=None):
|
def plot_latent(model, labels=None, which_indices=None, resolution=50, ax=None, marker='o', s=40, fignum=None, plot_inducing=False, legend=True):
|
||||||
"""
|
"""
|
||||||
:param labels: a np.array of size model.num_data containing labels for the points (can be number, strings, etc)
|
:param labels: a np.array of size model.num_data containing labels for the points (can be number, strings, etc)
|
||||||
:param resolution: the resolution of the grid on which to evaluate the predictive variance
|
:param resolution: the resolution of the grid on which to evaluate the predictive variance
|
||||||
|
|
@ -67,26 +67,15 @@ def plot_latent(model, labels=None, which_indices=None, resolution=50, ax=None,
|
||||||
ax.set_xlabel('latent dimension %i' % input_1)
|
ax.set_xlabel('latent dimension %i' % input_1)
|
||||||
ax.set_ylabel('latent dimension %i' % input_2)
|
ax.set_ylabel('latent dimension %i' % input_2)
|
||||||
|
|
||||||
if not np.all(labels==1.):
|
if not np.all(labels == 1.) and legend:
|
||||||
ax.legend(loc=0, numpoints=1)
|
ax.legend(loc=0, numpoints=1)
|
||||||
|
|
||||||
ax.set_xlim(xmin[0], xmax[0])
|
ax.set_xlim(xmin[0], xmax[0])
|
||||||
ax.set_ylim(xmin[1], xmax[1])
|
ax.set_ylim(xmin[1], xmax[1])
|
||||||
ax.grid(b=False) # remove the grid if present, it doesn't look good
|
ax.grid(b=False) # remove the grid if present, it doesn't look good
|
||||||
ax.set_aspect('auto') # set a nice aspect ratio
|
ax.set_aspect('auto') # set a nice aspect ratio
|
||||||
return ax
|
|
||||||
|
if plot_inducing:
|
||||||
|
ax.plot(model.Z[:, input_1], model.Z[:, input_2], '^w')
|
||||||
def plot_latent_indices(Model, which_indices=None, *args, **kwargs):
|
|
||||||
|
|
||||||
if which_indices is None:
|
|
||||||
try:
|
|
||||||
input_1, input_2 = np.argsort(Model.input_sensitivity())[:2]
|
|
||||||
except:
|
|
||||||
raise ValueError, "cannot Automatically determine which dimensions to plot, please pass 'which_indices'"
|
|
||||||
else:
|
|
||||||
input_1, input_2 = which_indices
|
|
||||||
ax = plot_latent(Model, which_indices=[input_1, input_2], *args, **kwargs)
|
|
||||||
# TODO: Here test if there are inducing points...
|
|
||||||
ax.plot(Model.Z[:, input_1], Model.Z[:, input_2], '^w')
|
|
||||||
return ax
|
return ax
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue