Source code for infpy.gp.test.gp_test

#
# Copyright John Reid 2006
#


from infpy.gp import *
import unittest



[docs]class GPTest( unittest.TestCase ):
[docs] def setUp( self ): # # Set up some training data # self.training_points = [ ( [ 1.05 ], 0 ), ( [ 2.0 ], 0.3 ), ( [ 2.5 ], 0.5 ), ( [ 2.7 ], 0.4 ), ( [ 3.0 ], 0 ), ( [ 4.0 ], 1.0 ) ] # make the data's mean 0 mean = sum( x[0] for (x, v) in self.training_points ) / len( self.training_points ) for x, v in self.training_points: x[0] -= mean # # Create a gaussian process # X = [ x for x,v in self.training_points ] y = numpy.array( [ v for x,v in self.training_points ] ) K = SumKernel( SquaredExponentialKernel( params = [ 1.0 ] ), noise_kernel( 0.3 ) ) self.gp = GaussianProcess( X, y, K ) # # Some parameters we can test the gradients at # self.test_kernel_parameters = [ [ 0.53501393, 0.29317574], ]
[docs] def tearDown( self ): self.gp = self.training_points = self.test_kernel_parameters = None
[docs] def testSampleFrom( self ): gp_sample_from( self.gp, [ [ 2.78 ], [ 3.78 ], [ 4.78 ], [ 5.78 ], [ 6.78 ], ] )
[docs] def testLearn( self ): gp_learn_hyperparameters( self.gp, disp = False )
[docs] def testGradients( self ): for x0 in self.test_kernel_parameters: # print x0 ll = GP_LL_fn( self.gp ) ll_deriv = GP_LL_deriv_fn( self.gp, needs_to_set_params = True ) infpy.check_gradients( ll, ll_deriv, x0 )
if __name__ == "__main__": unittest.main()