Пример #1
0
    def testGDelta(self):

        # usually, Gdelta==G
        GP = GaussianProcess(GaussianKernel_iso([0.05]))
        X = lhcSample([[0., 1.]], 5, seed=10)
        Y = [x**2 for x in X]
        GP.train(X, Y)

        G = (Y[0] - max(Y)) / (Y[0] - 1)
        self.failUnlessEqual(G, Gdelta(GP, [[0., 1.]], Y[0], 1.0, 0.01))

        # sometimes, though, Gdelta > G -- this GP has a very high confidence
        # prediction of a very good point at x ~ .65
        GP = GaussianProcess(GaussianKernel_iso([0.1]))
        X = array([[.5], [.51], [.59], [.6]])
        Y = array([1., 2., 2., 1.])
        GP.train(X, Y)
        # figure(1)
        # A = arange(0, 1, 0.01)
        # post = [GP.posterior(x) for x in A]
        # plot(A, [p[0] for p in post], 'k-')
        # plot(A, [p[0]+p[1] for p in post], 'k:')
        # show()
        G = (Y[0] - max(Y)) / (Y[0] - 4.0)
        Gd = Gdelta(GP, [[0., 1.]], Y[0], 4.0, 0.01)
        self.failUnless(G < Gd)

        # however, if there is more variance, we will collapse back to G
        GP = GaussianProcess(GaussianKernel_iso([.001]))
        GP.train(X, Y)
        G = (Y[0] - max(Y)) / (Y[0] - 4.0)
        self.failUnlessEqual(G, Gdelta(GP, [[0., 1.]], Y[0], 4.0, 0.01))
Пример #2
0
 def testGDelta(self):
     
     # usually, Gdelta==G
     GP = GaussianProcess(GaussianKernel_iso([0.05]))
     X = lhcSample([[0., 1.]], 5, seed=10)
     Y = [x**2 for x in X]
     GP.train(X, Y)
     
     G = (Y[0]-max(Y)) / (Y[0]-1)
     self.failUnlessEqual(G, Gdelta(GP, [[0.,1.]], Y[0], 1.0, 0.01))
     
     # sometimes, though, Gdelta > G -- this GP has a very high confidence
     # prediction of a very good point at x ~ .65
     GP = GaussianProcess(GaussianKernel_iso([0.1]))
     X = array([[.5], [.51], [.59], [.6]])
     Y = array([1., 2., 2., 1.])
     GP.train(X, Y)
     # figure(1)
     # A = arange(0, 1, 0.01)
     # post = [GP.posterior(x) for x in A]
     # plot(A, [p[0] for p in post], 'k-')
     # plot(A, [p[0]+p[1] for p in post], 'k:')
     # show()
     G = (Y[0]-max(Y)) / (Y[0]-4.0)
     Gd = Gdelta(GP, [[0., 1.]], Y[0], 4.0, 0.01)
     self.failUnless(G < Gd)
     
     # however, if there is more variance, we will collapse back to G
     GP = GaussianProcess(GaussianKernel_iso([.001]))
     GP.train(X, Y)
     G = (Y[0]-max(Y)) / (Y[0]-4.0)
     self.failUnlessEqual(G, Gdelta(GP, [[0., 1.]], Y[0], 4.0, 0.01))