TEST: Modifying tests so that their ruunig time is shorter.

This commit is contained in:
Alexander Grigorievskiy 2015-10-15 11:23:35 +03:00
parent 4f835f0b21
commit f70cfb3362
2 changed files with 28 additions and 19 deletions

View file

@ -9,6 +9,8 @@ import GPy.models.state_space_model as SS_model
from .state_space_main_tests import generate_x_points, generate_sine_data, \ from .state_space_main_tests import generate_x_points, generate_sine_data, \
generate_linear_data, generate_brownian_data, generate_linear_plus_sin generate_linear_data, generate_brownian_data, generate_linear_plus_sin
#from state_space_main_tests import generate_x_points, generate_sine_data, \
# generate_linear_data, generate_brownian_data, generate_linear_plus_sin
class StateSpaceKernelsTests(np.testing.TestCase): class StateSpaceKernelsTests(np.testing.TestCase):
def setUp(self): def setUp(self):
@ -16,7 +18,7 @@ class StateSpaceKernelsTests(np.testing.TestCase):
def run_for_model(self, X, Y, ss_kernel, kalman_filter_type = 'regular', def run_for_model(self, X, Y, ss_kernel, kalman_filter_type = 'regular',
use_cython=False, check_gradients=True, use_cython=False, check_gradients=True,
optimize = True, predict_X=None, optimize=True, optimize_max_iters=1000,predict_X=None,
compare_with_GP=True, gp_kernel=None, compare_with_GP=True, gp_kernel=None,
mean_compare_decimal=10, var_compare_decimal=7): mean_compare_decimal=10, var_compare_decimal=7):
@ -30,8 +32,8 @@ class StateSpaceKernelsTests(np.testing.TestCase):
#import pdb; pdb.set_trace() #import pdb; pdb.set_trace()
if optimize: if optimize:
m1.optimize(optimizer='bfgs') m1.optimize(optimizer='bfgs',max_iters=optimize_max_iters)
if compare_with_GP and (predict_X is None): if compare_with_GP and (predict_X is None):
predict_X = X predict_X = X
@ -41,7 +43,7 @@ class StateSpaceKernelsTests(np.testing.TestCase):
if compare_with_GP: if compare_with_GP:
m2 = GPy.models.GPRegression(X,Y, gp_kernel) m2 = GPy.models.GPRegression(X,Y, gp_kernel)
m2.optimize(optimizer='bfgs') m2.optimize(optimizer='bfgs', max_iters=optimize_max_iters)
#print(m2) #print(m2)
x_pred_reg_2 = m2.predict(predict_X) x_pred_reg_2 = m2.predict(predict_X)
@ -213,24 +215,24 @@ class StateSpaceKernelsTests(np.testing.TestCase):
# Cython is available only with svd. # Cython is available only with svd.
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd', self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd',
use_cython=True, check_gradients=False, use_cython=True, optimize_max_iters=10, check_gradients=False,
predict_X=X, predict_X=X,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=4, var_compare_decimal=4) mean_compare_decimal=6, var_compare_decimal=5)
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'regular', self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'regular',
use_cython=False, check_gradients=True, use_cython=False, optimize_max_iters=10, check_gradients=True,
predict_X=X, predict_X=X,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=4, var_compare_decimal=4) mean_compare_decimal=6, var_compare_decimal=5)
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd', self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd',
use_cython=False, check_gradients=False, use_cython=False, optimize_max_iters=10, check_gradients=False,
predict_X=X, predict_X=X,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=4, var_compare_decimal=4) mean_compare_decimal=6, var_compare_decimal=5)
def test_kernel_multiplication(self,): def test_kernel_multiplication(self,):
@ -248,28 +250,28 @@ class StateSpaceKernelsTests(np.testing.TestCase):
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd', self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd',
use_cython=True, check_gradients=True, use_cython=True, optimize_max_iters=10, check_gradients=True,
predict_X=X, predict_X=X,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=-1, var_compare_decimal=0) mean_compare_decimal=-1, var_compare_decimal=0)
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'regular', self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'regular',
use_cython=False, check_gradients=True, use_cython=False, optimize_max_iters=10, check_gradients=True,
predict_X=X, predict_X=X,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=-1, var_compare_decimal=0) mean_compare_decimal=-1, var_compare_decimal=0)
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd', self.run_for_model(X, Y, ss_kernel, kalman_filter_type = 'svd',
use_cython=False, check_gradients=True, use_cython=False, optimize_max_iters=10, check_gradients=True,
predict_X=X, predict_X=X,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=-1, var_compare_decimal=0) mean_compare_decimal=-1, var_compare_decimal=0)
def test_forecast(self,): def test_forecast(self,):
""" """
Test time series forecasting. Test time-series forecasting.
""" """
# Generate data -> # Generate data ->
@ -312,25 +314,32 @@ class StateSpaceKernelsTests(np.testing.TestCase):
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X_train, Y_train, ss_kernel, kalman_filter_type = 'regular', self.run_for_model(X_train, Y_train, ss_kernel, kalman_filter_type = 'regular',
use_cython=False, check_gradients=True, use_cython=False, optimize_max_iters=20, check_gradients=True,
predict_X=X_test, predict_X=X_test,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=0, var_compare_decimal=0) mean_compare_decimal=0, var_compare_decimal=0)
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X_train, Y_train, ss_kernel, kalman_filter_type = 'svd', self.run_for_model(X_train, Y_train, ss_kernel, kalman_filter_type = 'svd',
use_cython=False, check_gradients=False, use_cython=False, optimize_max_iters=30, check_gradients=False,
predict_X=X_test, predict_X=X_test,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=0, var_compare_decimal=-1) mean_compare_decimal=0, var_compare_decimal=-1)
ss_kernel, gp_kernel = get_new_kernels() ss_kernel, gp_kernel = get_new_kernels()
self.run_for_model(X_train, Y_train, ss_kernel, kalman_filter_type = 'svd', self.run_for_model(X_train, Y_train, ss_kernel, kalman_filter_type = 'svd',
use_cython=True, check_gradients=False, use_cython=True, optimize_max_iters=30, check_gradients=False,
predict_X=X_test, predict_X=X_test,
gp_kernel=gp_kernel, gp_kernel=gp_kernel,
mean_compare_decimal=0, var_compare_decimal=-1) mean_compare_decimal=0, var_compare_decimal=-1)
if __name__ == "__main__": if __name__ == "__main__":
print("Running state-space inference tests...") print("Running state-space inference tests...")
unittest.main() unittest.main()
#tt = StateSpaceKernelsTests('test_forecast')
#tt.test_forecast()
#tt.test_kernel_addition()
#tt.test_kernel_multiplication()
#tt.test_periodic_kernel()
#tt.test_quasi_periodic_kernel()

View file

@ -309,7 +309,7 @@ class StateSpaceKernelsTests(np.testing.TestCase):
def test_discrete_ss_first(self,plot=False): def test_discrete_ss_first(self,plot=False):
""" """
Tests discrete State-Space model with different data dimensions. Tests discrete State-Space model - first test.
""" """
np.random.seed(235) # seed the random number generator np.random.seed(235) # seed the random number generator