mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-04 09:12:38 +02:00
adding docstring for symmetric kern
This commit is contained in:
parent
b37dd01299
commit
e7c7ae8ff4
2 changed files with 17 additions and 5 deletions
|
|
@ -450,6 +450,18 @@ def prod(k1,k2,tensor=False):
|
||||||
def symmetric(k):
|
def symmetric(k):
|
||||||
"""
|
"""
|
||||||
Construct a symmetric kernel from an existing kernel
|
Construct a symmetric kernel from an existing kernel
|
||||||
|
|
||||||
|
The symmetric kernel works by adding two GP functions together, and computing the overall covariance.
|
||||||
|
|
||||||
|
Let f ~ GP(x | 0, k(x, x')). Now let g = f(x) + f(-x).
|
||||||
|
|
||||||
|
It's easy to see that g is a symmetric function: g(x) = g(-x).
|
||||||
|
|
||||||
|
by construction, g, is a gaussian Process with mean 0 and covariance
|
||||||
|
|
||||||
|
k(x, x') + k(-x, x') + k(x, -x') + k(-x, -x')
|
||||||
|
|
||||||
|
This constructor builds a covariance function of this form from the initial kernel
|
||||||
"""
|
"""
|
||||||
k_ = k.copy()
|
k_ = k.copy()
|
||||||
k_.parts = [symmetric.Symmetric(p) for p in k.parts]
|
k_.parts = [symmetric.Symmetric(p) for p in k.parts]
|
||||||
|
|
|
||||||
|
|
@ -133,12 +133,12 @@ class Prod(Kernpart):
|
||||||
self.k1.K(X[:,self.slice1],X2[:,self.slice1],self._K1)
|
self.k1.K(X[:,self.slice1],X2[:,self.slice1],self._K1)
|
||||||
self.k2.K(X[:,self.slice2],X2[:,self.slice2],self._K2)
|
self.k2.K(X[:,self.slice2],X2[:,self.slice2],self._K2)
|
||||||
|
|
||||||
def __getstate__(self):
|
#def __getstate__(self):
|
||||||
return [self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params]
|
#return [self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params]
|
||||||
|
|
||||||
def __setstate__(self, state):
|
#def __setstate__(self, state):
|
||||||
self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params = state
|
#self.k1, self.k2, self.slice1, self.slice2, self.name, self.input_dim, self.num_params = state
|
||||||
self._X, self._X2, self._params = np.empty(shape=(3,1))
|
#self._X, self._X2, self._params = np.empty(shape=(3,1))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue