new: added ploy basis kernel tests and import

This commit is contained in:
mzwiessele 2016-10-13 12:31:39 +01:00
parent 460757c048
commit 7977a69dca
3 changed files with 11 additions and 4 deletions

View file

@ -32,7 +32,7 @@ from .src.trunclinear import TruncLinear,TruncLinear_inf
from .src.splitKern import SplitKern,DEtime
from .src.splitKern import DEtime as DiffGenomeKern
from .src.spline import Spline
from .src.basis_funcs import LogisticBasisFuncKernel, LinearSlopeBasisFuncKernel, BasisFuncKernel, ChangePointBasisFuncKernel, DomainKernel
from .src.basis_funcs import LogisticBasisFuncKernel, LinearSlopeBasisFuncKernel, BasisFuncKernel, ChangePointBasisFuncKernel, DomainKernel, PolynomialBasisFuncKernel
from .src.grid_kerns import GridRBF
from .src.sde_matern import sde_Matern32

View file

@ -102,8 +102,8 @@ class BasisFuncKernel(Kern):
phi2 = phi2[:, None]
return phi1.dot(phi2.T)
class PolinomialBasisFuncKernel(BasisFuncKernel):
def __init__(self, input_dim, degree, variance=1., active_dims=None, ARD=True, name='polinomial_basis'):
class PolynomialBasisFuncKernel(BasisFuncKernel):
def __init__(self, input_dim, degree, variance=1., active_dims=None, ARD=True, name='polynomial_basis'):
"""
A linear segment transformation. The segments start at start, \
are then linear to stop and constant again. The segments are
@ -114,7 +114,7 @@ class PolinomialBasisFuncKernel(BasisFuncKernel):
Behaviour of start stop is as np.where(X<start) would do.
"""
self.degree = degree
super(PolinomialBasisFuncKernel, self).__init__(input_dim, variance, active_dims, ARD, name)
super(PolynomialBasisFuncKernel, self).__init__(input_dim, variance, active_dims, ARD, name)
@Cache_this(limit=3, ignore_args=())
def _phi(self, X):

View file

@ -495,6 +495,13 @@ class KernelGradientTestsContinuous(unittest.TestCase):
k = GPy.kern.Add(ks)
self.assertTrue(check_kernel_gradient_functions(k, X=self.X, X2=self.X2, verbose=verbose))
def test_basis_func_poly(self):
ks = []
for i in range(self.X.shape[1]):
ks.append(GPy.kern.PolynomialBasisFuncKernel(1, 5, ARD=i%2==0, active_dims=[i]))
k = GPy.kern.Add(ks)
self.assertTrue(check_kernel_gradient_functions(k, X=self.X, X2=self.X2, verbose=verbose))
def test_basis_func_domain(self):
start_stop = np.random.uniform(self.X.min(0), self.X.max(0), (4, self.X.shape[1])).T
start_stop.sort(axis=1)