def plot1(gp, ngrid=100, lim=None, k=range(-3, 4)): k = sorted(k) if lim is None: lim = (np.amin(gp.x[:, 1]), np.amax(gp.x[:, 1])) x = np.linspace(lim[0], lim[1], ngrid).T (m, v) = gp.inf(x) m = np.asarray(m).squeeze() v = np.asarray(v).squeeze() plt.plot(x, m, color=DARKBLUE, linewidth=2) for i in k: if i == 0: continue lo = m - i*np.sqrt(v) hi = m + i*np.sqrt(v) plt.fill_between(x, lo, hi, linestyle='solid', edgecolor=DARKGRAY, facecolor=LIGHTGRAY, alpha=0.2) plt.plot(gp.x, gp.y, 'o', markersize=8, markeredgewidth=1, markeredgecolor=DARKGRAY, markerfacecolor=LIGHTBLUE) plt.xlim(lim)
def __init__(self, kernel, fun=None, data=None, h=0, name='untitled'): if not fun and not data: raise Exception('Need to provide either fun or data') self.kernel = kernel if fun: self.type = 'fun' self.fun = fun self.lim = fun.lim xtrain = np.zeros((0, 2)) ytrain = np.zeros((0, 1)) else: self.type = 'data' self.data = data self.lim = {} self.lim['x1'] = (np.amin(self.data['x'][:,0]), np.amax(self.data['x'][:,0])) self.lim['x2'] = (np.amin(self.data['x'][:,1]), np.amax(self.data['x'][:,1])) xtrain = self.data['x'] ytrain = self.data['y'] self.model = gp.GP(kernel) self.model.add(xtrain, ytrain) self.name = name self.h = h
def __init__(self, kernel, fun=None, data=None, h=0, name='untitled'): if not fun and not data: raise Exception('Need to provide either fun or data') self.kernel = kernel if fun: self.type = 'fun' self.fun = fun self.lim = fun.lim xtrain = np.zeros((0, 2)) ytrain = np.zeros((0, 1)) else: self.type = 'data' self.data = data self.lim = {} self.lim['x1'] = (np.amin(self.data['x'][:, 0]), np.amax(self.data['x'][:, 0])) self.lim['x2'] = (np.amin(self.data['x'][:, 1]), np.amax(self.data['x'][:, 1])) xtrain = self.data['x'] ytrain = self.data['y'] self.model = gp.GP(kernel) self.model.add(xtrain, ytrain) self.name = name self.h = h
def almostEqual(A, B, eps=0.01): return np.amax(abs(A - B)) < eps
def softmax(self, y): maxy = np.amax(y) probas = np.exp(y-maxy) probas = probas / probas.sum(axis=0) return np.array(probas)